centos利用yumdownloader获取含依赖的rpm安装包

工作经常会遇到需要离线安装软件的情况,特此记录下来,避免每次都得去翻笔记。解决思路为:1.使用docker提供目标包洁净隔离环境(如centos7、centos8)。2.使用yumdownloader -resolve下载完整依赖。3.在目标环境使用yum -y localinstall 一键安装

一 构造运行环境

1 使用docker提供目标操作系统

在本地创建data目录并挂载到容器里,方便将生成的依赖取出。
如果想将容器当linux远程主机使用,将22端口映射出来即可: -p 5022:22

  1. centos7
mkdir -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

  1. centos8
mkdir -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/bash

2 更新yum镜像仓库

参考阿里的开源镜像站:https://developer.aliyun.com/mirror/
以centos7为例:

mv /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

二 使用yumdownloader

1. 安装yumdownloader

yum install yum-utils -y

2. 下载依赖包

命令为格式为 yumdownloader --resolve 需要的包

# 进入挂载文件夹
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 netstat 

一般下载的安装rpm包都是带有x86_64的,某些旧一点的软件会支持32位,为了后面可以直接一键安装,这里推荐把不需要的32位版本的依赖删掉

rm -f *.i386*
rm -f *.i586*
rm -f *.i686*
rm -f *.noarch*

3. localinstall 安装

将生成的文件夹拷贝到目标集群上,使用localinstall 进行安装

yum -y localinstall *.rpm

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值