昨天在部署 zabbix 监控的时候,遇到一个问题:监控服务器处于无外网状态,在线安装不可用。而某些依赖包度娘或谷姐搜索起来也挺呛人的!于是想到一个办法,利用有外网的服务器的 yum 命令来安装这些软件,并自动保留安装包即可。
一、让 yum 命令下载 RPM 包,而不安装。
yum 是一个优秀的软件获取与系统更新的工具,主要应用于 redhat 系列的发行版本上。但是这样一个优秀的工具却没有原生提供只下载不安装的功能,而这样的功能在 pacman 与 aptitude 下都有。今天在 CentOS 的邮件列表上看到有人在讨论这个问题,了解到了这个问题要解决起来非常方便。
yum 有一个 plugin 叫做 yum-downloadonly,它就可以为用户实现只下载软件包的功能。
我们可以使用以下命令安装这个插件:
yum install yum-downloadonly
完成安装后,yum 就多了两个命令参数,分别是:
--downloadonly
--downloaddir=/path/to/dir
这两个命令参数的含义非常明确,不用多作解释了,这样,用户就可以做到使用 yum 只下载软件包,不自动安装了
示例:
yum install unixODBC --downloadonly --downloaddir=/usr/local/src
就会自动把对应系统的 unixODBC 版本下载到目录 /usr/local/src 下。
如果系统中已经安装了 unixODBC,那么就不会下载成功了!但我又需要这个安装包,咋办呢?办法也很直接,先使用 yum remove 卸载,再执行一次命令即可获得这个安装包了。
二、不使用 yum-downloadonly 插件,自动安装或升级的同时保留 RPM 包
yum 默认情况下,升级或者安装后,会删除下载的 rpm 包。
不过,我们也可以如下设置升级后不删除下载的 rpm 包
1
2
3
4
|
vim /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
|
将 keepcache=0 修改为 keepcache=1, 安装或者升级后,在目录 /var/cache/yum 下就会有下载的 rpm 包了。