由yum保存rpm包

初衷

最近想做一个简单的自动化tool,公司的环境基本都是内网环境,而Linux上最便捷的安装方式是由yum安装,如何在主机管理员不那么配合的前提下,自己本地先保留一个rpm的包就格外重要。

实现

由类似下面的命令就可以,为了保证最快,最容易定位问题,所以操作系统一般是最小化安装。

 yum install --downloadonly --downloaddir=/root/downrpm zabbix-server-mysql zabbix-agent
[root@localhost downrpm]# pwd
/root/downrpm
[root@localhost downrpm]# ls -lrt
总用量 5524
-rw-r--r--. 1 root root  219068 7月   4 2014 libevent-2.0.21-4.el7.x86_64.rpm
-rw-r--r--. 1 root root   41292 11月  5 2014 fping-3.10-1.el7.x86_64.rpm
-rw-r--r--. 1 root root   50076 4月  13 2017 libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
-rw-r--r--. 1 root root  248708 8月  23 2019 OpenIPMI-2.0.27-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  535796 8月  23 2019 OpenIPMI-libs-2.0.27-1.el7.x86_64.rpm
-rw-r--r--. 1 root root   16368 8月  23 2019 OpenIPMI-modalias-2.0.27-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  423152 8月  23 2019 unixODBC-2.3.1-14.el7.x86_64.rpm
-rw-r--r--. 1 root root  769244 10月 15 02:56 net-snmp-libs-5.7.2-49.el7.x86_64.rpm
-rw-r--r--. 1 root root  463252 11月 30 20:40 zabbix-agent-5.0.6-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 2865928 11月 30 20:40 zabbix-server-mysql-5.0.6-1.el7.x86_64.rpm

皆大欢喜

### 使用 Yum 下载 RPM 保存到本地目录的方法 在 CentOS 或 RedHat 系统中,可以使用 `yum` 命令将 RPM 及其依赖项下载到本地指定目录。以下是具体实现方法: #### 方法一:使用 `--downloadonly` 和 `--downloaddir` 参数 可以通过安装 `yum-downloadonly` 插件来实现只下载而不安装 RPM 的功能。首先需要安装插件: ```bash yum -y install yum-plugin-downloadonly ``` 然后使用以下命令下载 RPM 到指定目录: ```bash yum install --downloadonly --downloaddir=/目标路径 软件名称 ``` 例如,下载 `libXScrnSaver` 到 `/usr/local` 目录: ```bash yum install --downloadonly --downloaddir=/usr/local libXScrnSaver ``` 此方法会将主软件和当前系统缺少的依赖关系一起下载到指定目录[^1]。 #### 方法二:修改 `yum.conf` 配置文件 通过编辑 `/etc/yum.conf` 文件,添加以下两行配置,使得下载RPM 保存到指定路径: ``` keepcache=1 cachedir=/自定义缓存路径 ``` 之后执行 `yum install xxxx` 命令时,RPM 会被下载到配置的路径下的 `packages` 子目录中。这种方法适合需要批量下载 RPM 的场景[^2]。 #### 方法三:使用 `repotrack` 工具 如果希望确保所有依赖项都被下载括可能已存在于系统的依赖项),可以使用 `repotrack` 工具。首先安装 `yum-utils` : ```bash yum -y install yum-utils ``` 然后使用以下命令下载指定软件及其所有依赖项: ```bash repotrack -a $(arch) -p /目标路径 软件名称 ``` 例如,下载 `gd` 及其依赖项到 `/usr/local/gd` 目录: ```bash repotrack -a $(arch) -p /usr/local/gd gd ``` 此方法适用于需要离线安装的场景,因为它会下载完整的依赖树[^4]。 #### 安装 RPM 下载完成后,可以通过以下命令进行安装: ```bash rpm -Uvh --force --nodeps /路径/*.rpm ``` 例如,安装 `/usr/local` 目录下的所有 RPM : ```bash rpm -Uvh --force --nodeps /usr/local/*.rpm ``` ### 注意事项 - 如果目标机器是离线环境,建议先在联网环境中下载所有必要的 RPM 及其依赖项,再将其复制到离线机器上安装[^3]。 - 在使用 `repotrack` 时,请确保目标路径有足够的存储空间,因为可能会下载大量依赖项[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值