通过yum展示安装包依赖关系

背景

平时测试环境中,服务器是可以访问外网的,而在内网环境,想要安装一些软件,比如docker,就需要离线安装,需要提前准备好需要的rpm安装包以及其依赖包

本文记录下如何使用yum展示软件包的依赖关系,以及使用yum下载这些软件包

展示软件包依赖关系

比如我现在查了下yum可以装的docker版本

yum list | grep <package_name>
[root@web01 /]# mkdir /pack
[root@web01 /]# cd /pack/
[root@web01 pack]# yum list| grep docker
cockpit-docker.x86_64                     195.6-1.el7.centos           extras   
docker.x86_64                             2:1.13.1-162.git64e9980.el7.centos
docker-client.x86_64                      2:1.13.1-162.git64e9980.el7.centos
docker-client-latest.x86_64               1.13.1-58.git87f2fab.el7.centos
docker-common.x86_64                      2:1.13.1-162.git64e9980.el7.centos
docker-compose.noarch                     1.18.0-4.el7                 epel     
docker-distribution.x86_64                2.6.2-2.git48294d9.el7       extras   
docker-latest.x86_64                      1.13.1-58.git87f2fab.el7.centos
docker-latest-logrotate.x86_64            1.13.1-58.git87f2fab.el7.centos
docker-latest-v1.10-migrator.x86_64       1.13.1-58.git87f2fab.el7.centos
docker-logrotate.x86_64                   2:1.13.1-162.git64e9980.el7.centos
...

再去使用这个包名展示依赖关系:

yum deplist <package_name>

[root@web01 /]# yum deplist ostree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
package: ostree.x86_64 2019.1-2.el7
dependency: /bin/bash
provider: bash.x86_64 4.2.46-34.el7
dependency: /bin/sh
provider: bash.x86_64 4.2.46-34.el7
...


yum下载软件包以及其依赖

有两种方式,一种是使用yum,另一种是安装一个软件yumdownloader

1.yum下载未安装的软件包

语法

yum install --downloadonly --downloaddir=<directory> <package>

#注意,该命令仅下载、不安装,并将其相关依赖的软件包一并下载到'指定目录'
#如果本机已经安装了某个依赖,那么这个依赖将不会下载
#使用该命令最好在一个全新的环境下,否则,可能导致依赖漏下

示例

[root@web01 pack]# yum install --downloadonly --downloaddir=/pack docker.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package docker.x86_64 2:1.13.1-162.git64e9980.el7.centos will be installed
...

[root@web01 pack]# ll |wc -l
51

2.使用yumdownloader

安装yum-utils包,内部包含yumdownloader等命令

yum install yum-utils

语法

yumdownloader [--resolve] [--destdir=<directory>] <package_name>
--resolve 解析依赖关系下载安装软件必要的依赖
--destdir 下载软件包的目录

#注意,下载软件包,不管当前系统是否安装,都会下载,不安装

示例

[root@web01 pack]# yumdownloader --resolve --destdir=/pack docker.x86_64
...
[root@web01 pack]# ll |wc -l
51
posted @ 2020-09-13 16:30  看萝卜在飘  阅读(2645)  评论(0编辑  收藏  举报