yum下载全量依赖 rpm 包及离线安装

简介

我们通常使用 `yum install` 命令来在线安装 linux系统的软件, 这种方式可以自动处理依赖性关系,并且一次安装所有依赖的软体包,但是经常会遇到从国外镜像下载速度慢,无法下载的情况。或者内网无法访问公网的情况,那么此时我们就需要一个稳定的yum 源作为我们日常使用的地址。

通常生产环境由于安全原因都无法访问互联网。此时就需要进行离线安装,主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。

centos的rpm文件下载地址:http://www.rpmfind.net/linux/RPM/index.html

验证环境

Centos 7.2

查看依赖包

可以使用“yum deplist”命令来查找 rpm 包的依赖列表。例如,要查找“ansible”rpm的依赖包:

复制代码
$ yum deplist ansible
软件包:ansible.noarch 2.9.3-1.el7
   依赖:/usr/bin/env
   provider: coreutils.x86_64 8.22-24.el7
   依赖:/usr/bin/python2
   provider: python.x86_64 2.7.5-86.el7
   依赖:PyYAML
   provider: PyYAML.x86_64 3.10-11.el7
   依赖:python(abi) = 2.7
   provider: python.x86_64 2.7.5-86.el7
   依赖:python-httplib2
   provider: python-httplib2.noarch 0.9.2-1.el7
   依赖:python-jinja2
   provider: python-jinja2.noarch 2.7.2-4.el7
   依赖:python-paramiko
   provider: python-paramiko.noarch 2.1.1-9.el7
   依赖:python-setuptools
   provider: python-setuptools.noarch 0.9.8-7.el7
   依赖:python-six
   provider: python-six.noarch 1.9.0-2.el7
   依赖:python2-cryptography
   provider: python2-cryptography.x86_64 1.7.2-2.el7
   依赖:python2-jmespath
   provider: python2-jmespath.noarch 0.9.0-3.el7
   依赖:sshpass
   provider: sshpass.x86_64 1.06-2.el7
复制代码

 

方案一(推荐):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

参数说明:

  • —destdir:指定 rpm 包下载目录(不指定时,默认为当前目录)
  • —resolve:下载依赖的 rpm 包。

注意

仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。

方案三:yum 的 downloadonly 插件

# 安装插件
$ yum -y install yum-download

# 下载 ansible 依赖包
$ yum -y install ansible --downloadonly --downloaddir=/tmp

 

注意

与 yumdownloader 命令一样,也是仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。

离线安装 rpm

1
2
# 离线安装
$ rpm -Uvh --force --nodeps *.rpm

参考资料

https://serverfault.com/questions/470964/yumdownloader-vs-repotrack

原文出处及转载信息见文内详细说明,如有侵权,请联系删除。

posted @   Ache96  阅读(514)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示