当服务器离线状态下,需要安装软件,缺少相关依赖包,可以通过一台在线服务器,通过yum方式下载相关依赖包,在上传到目标服务器,进行软件以及依赖包的安装。
yum是基于Red Hat的系统(如CentOS、Fedora、RHEl)上的默认包管理器。使用yum,你可以安装或者更新一个RPM包,并且他会自动解决包依赖关系。但是如果你只想将一个RPM包下载到你的系统上该怎么办呢? 例如,你可能想要获取一些RPM包在以后使用,或者将他们安装在另外的机器上。
这里说明了如何从yum仓库上下载一个RPM包。
方案一(推荐):repotrack
# 安装yum-utils
$ yum -y install yum-utils
# 下载 ansible 全量依赖包
$ repotrack ansible
方案二:yumdownloader
# 安装yum-utils
$ yum -y install yum-utils
# 下载 ansible 依赖包
$ yumdownloader --resolve --destdir=/tmp ansible
参数说明:
注意
仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
方案三:yum 的 downloadonly 插件
# 安装插件
$ yum -y install yum-download
# 下载 ansible 依赖包
$ yum -y install ansible --downloadonly --downloaddir=/tmp
注意
与 yumdownloader 命令一样,也是仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
离线安装 rpm
# 离线安装 $ rpm -Uvh --force --nodeps *.rpm
参考:Linux 中yumdownloader 和 repotrack:下载yum软件离线环境的rpm依赖包_学亮编程手记的技术博客_51CTO博客
前提:
通常生产环境由于安全原因都无法访问互联网。此时就需要进行离线安装,主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。
必须先下载yum-utils
,才可以使用这两个命令。
yum -y install yum-utils
yumdownloader –resolve --destdir=/tmp ansible
用于解析所有依赖项并下载软件包
--resolve 下载依赖包
--destdir 指定下载目录
repotrack ansible
区别:
yumdownloader解决了ansible的依赖包,但是无法解决依赖包的依赖包;
repotrack不仅解决了ansible的依赖包,还解决了依赖包和依赖包之间的关系;