文章目录
常用操作
列出rpm包的文件
rpm -qpl packetname.rpm
列出所有软件库
yum repolist all
更新元数据
yum使用xml来存储包的依赖信息,如果希望将元信息缓存到本地。
yum makecache
清除缓存包
yum clean all
Yum保存下载的rpm包不删除
yum下载的rpm文件包安装完全部自动清除安装文件。修改一下yum的设置,可以让他不删除下载的rpm。把/etc/yum.conf
文件中的keepcache=0
改为keepcache=1
即可。rpm文件包保存目录为:/var/cache/yum
/etc/yum.conf
包含yum更新软件需要用的URL.
[main]
cachedir=/var/cache/yum/$basearch/$releasever
# 是否缓存rpm包,默认情况下为0,即当安装成功时,会将下载的rpm包删除
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
yum只下载不安装
--downloadonly
选择
缺点是不会下载已经安装的包,如果说A机器上有个包装了,而离线机器B某个包没有装,那就不灵了。
yum -y install --downloadonly --downloaddir=/root perl
离线安装
在线机器下载rpm.*
文件,拷贝离线机器安装。安装方式还是使用yum,不过yum使用的是本地库。
- 下载本地库制作软件
createrepo
yum install yum-plugin-downloadonly yum-utils createrepo
- 添加两个文件夹用于下载,并下载rpm文件
创建下载文件夹
$ mkdir /var/rpm/repo
$ mkdir /var/rpm/repo-installroot
下载rpm(以docker为例)
yum install --downloadonly --installroot=/var/rpm/repo-installroot \
--releasever=7 --downloaddir=/var/rpm/repo docker-ce
- 制作本地库
将下载的rpm包变成本地库
createrepo --database /var/rpm/repo
rm -rf /var/rpm/repo-installroot
- 将
/var/rpm/repo
拷贝到离线机
在/etc/yum.repos.d
中添加一个文件(e.g. offline.repo
):
[offline-docker]
name=CentOS-$releasever - My Repository
baseurl=file:///var/rpm/repo
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
安装docker-ce
yum --disablerepo=\* --enablerepo=offline-docker install docker-ce
本地库多次改变需要清除yum缓存的元数据(比如加了一些rpm包)
yum --disablerepo=\* --enablerepo=offline-myrepo clean metadata
搭建本地yum私库
yum仓库只需要将带rpm包的本地目录(目录中含有repodata/repomd.xml)通过nginx暴露出来。
-
首先基于上面离线安装章节,在联网机器上下载所需rpm包并制作本地库。
-
在离线yum私库机器上安装nginx
-
配置nginx配置文件
server { listen 8080; server_name _; # 根目录指向 Yum 仓库的本地存储路径 root /data/yumrepos/repo; # 允许列出目录(方便查看仓库结构,可选) autoindex on; autoindex_exact_size off; autoindex_localtime on; # 日志配置(可选) access_log /var/log/nginx/yum-repo-access.log; error_log /var/log/nginx/yum-repo-error.log; # 处理请求的默认规则 location / { try_files $uri $uri/ =404; } }
/data/yumrepos/repo
目录结构如下所示:# ls -al /data/yumrepos/repo/* |grep -v rpm /data/yumrepos/repo/repodata: 总用量 924 -rw-r--r-- 1 root root 3096 8月 21 16:54 repomd.xml
-
其他离线机器配置从此离线yum私库拉取:
- /etc/yum.repos.d/base.repo
[local-base] name=Intranet Base Repository baseurl=http://<IP>:8080/ enabled=1 gpgcheck=0
- /etc/yum.repos.d/base.repo
troubleshooting
- 检查rpm的安装脚本
rpm --scripts -qlp xx.rpm