centos利用yumdownloader获取含依赖的rpm安装包
工作经常会遇到需要离线安装软件的情况,特此记录下来,避免每次都得去翻笔记。
零 思路
- 使用docker提供目标包洁净隔离环境(如centos7、centos8)。
- 使用yumdownloader -resolve下载完整依赖。
- 在目标环境使用yum -y localinstall一键安装
一 构造运行环境
1 使用docker提供目标操作系统
在本地创建data目录并挂载到容器里,方便将生成的依赖取出。
如果想将容器当linux远程主机使用,将22端口映射出来即可: -p 5022:22 
- centos71 
 2
 3
 4mkdir -p /home/lin/centos7/data
 docker run -d --name centos7 -v /home/lin/centos7/data:/data centos:7 /usr/sbin/init
 docker exec -it centos7 /bin/bash
- centos81 
 2
 3
 4mkdir -p /home/lin/centos8/data
 docker run -d --name centos8 -v /home/lin/centos8/data:/data centos:8 /usr/sbin/init
 docker exec -it centos8 /bin/bash2 更新yum镜像仓库参考阿里的开源镜像站:https://developer.aliyun.com/mirror/
 以centos7为例:1 
 2
 3
 4
 5mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
 sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
 yum makecache二 使用yumdownloader1. 安装yumdownloader1 
 2yum install yum-utils -y2. 下载依赖包命令为格式为 yumdownloader –resolve 需要的包一般下载的安装rpm包都是带有x86_64的,某些旧一点的软件会支持32位,为了后面可以直接一键安装,这里推荐把不需要的32位版本的依赖删掉1 
 2
 3
 4
 5
 6
 7
 8
 9# 进入挂载文件夹
 cd /data
 # 根据需要先添加对应的软件存储库源,如
 rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
 # 创建子目录
 mkdir packages && cd packages
 # 再使用yumdownloader --resolve取代yum install,这里以tar和netstat为例
 yumdownloader --resolve tar netstat1 
 2
 3
 4
 5rm -f *.i386*
 rm -f *.i586*
 rm -f *.i686*
 rm -f *.noarch*
3. localinstall 安装
将生成的文件夹拷贝到目标集群上,使用localinstall 进行安装
| 1 |  | 
centos利用yumdownloader获取含依赖的rpm安装包
      https://linshenkx.github.io/centos-yumdownloader-rpm-package/