离线安装包及依赖处理
目录
很多内网环境需要离线安装软件,就需要我们在可以上网的服务器上将需要安装的软件的相应安装包及其依赖下载下来,传输到离线机器,再安装。其中下载和处理依赖关系可能比较麻烦,所以本文特做记录。
centos
查看依赖
# 查看依赖列表
yum deplist docker-ce
下载全量依赖
repotrack
是一个 yum-utils
包中的工具,用于下载指定软件包及其所有依赖关系,以便在没有网络连接的环境中安装它们。
yum install yum-utils -y
// 下载 docker-ce 全量依赖包
repotrack docker-ce
下载主软件包和基于你现在的操作系统所缺少的依赖关系包
如果依赖较多且在线环境和离线环境相同,就不需要下载全量依赖,只需要下载主软件包和基于你当前环境缺少的依赖。更多时候我们使用这种方法。
方法1:使用 yumdownloader
yum install yum-utils -y
// --resolve 下载依赖包 --destdir 指定目录,默认当前目录
yumdownloader --resolve --destdir=/tmp nginx
方法2:yum
的 downloadonly
插件
// 安装 yum 的 downloadonly 插件
yum install yum-download -y
yum -y install nginx --downloadonly --downloaddir=.
安装依赖
方法1:localinstall
可以尝试解决并安装所有依赖 (推荐)
yum localinstall ./rpm-path/*.rpm
方法2: rpm
rmp -ivh <package-name-1.rpm> <package-name-2.rpm> ...
# -U 升级或安装 -v 详细模式 -h 显示进度 --force 强制安装 --nodeps 忽略依赖性检查
rpm -Uvh --force --nodeps *.rpm
使用 rpm
请确保按照正确的顺序安装,以满足依赖关系。
如果缺少依赖,重复下载、传输、安装的步骤,直到所有依赖都被满足。
依赖问题排查
如果遇到如下问题
---> 软件包 audit-libs.x86_64.0.2.8.4-4.el7 将被 升级
--> 正在处理依赖关系 audit-libs(x86-64) = 2.8.4-4.el7,它被软件包 audit-2.8.4-4.el7.x86_64 需要
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
即,audit-libs-2.8.4 将被升级,但是缺少依赖,可以使用如下命令查看系统已经安装的软件包,
rpm -qa | grep audit
# output
audit-libs-python-2.8.4-4.el7.x86_64
audit-libs-2.8.4-4.el7.x86_64
audit-2.8.4-4.el7.x86_64
然后去这个网址下载升级后的软件包(注意对应的 centos 版本,这里是 centos 7):
https://centos.pkgs.org/7/centos-x86_64/audit-2.8.5-4.el7.x86_64.rpm.html
一般下载链接为: http://mirror.centos.org/centos/7/os/x86_64/Packages/audit-2.8.5-4.el7.x86_64.rpm
然后安装即可。