linux自动下载rpm的依赖包的方法

背景

rpm安装包是存在依赖关系的。通常在离线安装的时候,没有下全依赖包,安装就会失败。

 

分析

1.首先我们要使用yumdownloader来下载指定的包。

yumdownloader --disablerepo=* --enablerepo=base,epel,extras --releasever=7 --arch=x86_64  --downloaddir=.  sqlite sqlite-devel sqlite-tcl

如果提示yumdownloader命令不存在,需要手动安装yumdownloader:

 

 

yum install yum-plugin-downloadonly

 

 

--disablerepo用于禁用下载的仓库名,--enablerepo用于指定下载的仓库名,--releasever用于指定centos的版本,--arch用于指定系统的硬件型号,--downloaddir用于指定下载rpm包存放的路径。随后跟着rpm包的包名。

rpm包一般都由一系列组成:基础包、基础包-devel、基础包-其他工具等。

查看rpm包包含哪些包的方法如下(例如sqlite包):

 

 

yum list | grep ^sqlite-

 

 

结果:

497240ba696d4e7ea21b3493a16469a5.png

 

grep ^sqlite-的^表示过滤的结果以sqlite开头,在后面加一个-用于过滤sqlite相关的包,这样就可以过滤出来除基础包以外的包,然后就得到了完整的包。

如果最右一列有installed,表示系统已经安装,否则就是显示的仓库名,表示可以从这个仓库下载和安装。

当然,我们可以给yumdownloader加一个--resolve参数,这样可以自动解析rpm包依赖的包。

 

2.删除硬件型号不一致的包

假如我们的机器是x86_64的机器,那么就只需要x86_64结尾的,i686结尾的就不是我们需要的,可以删掉。noarch表示和硬件架构无关的,通用的。

rm -f *i686*

3.下载到我们要安装的rpm包,然后下载相关的依赖包

 

 

yum install *.rpm --downloadonly --downloaddir=.

这个命令是将当前下载的rpm包进行安装检测,并下载需要的依赖包。后面两个参数不要,则是安装所有的rpm包。 --downloadonly用于说明只下载rpm包,不安装。--downloaddir用于指定下载rpm包存放的路径

4.删除硬件架构不一致的包

和第2步一样,下载的依赖包因为是没有区分系统架构的,所以都下载下来了。根据我们的系统硬件架构,删掉不需要的。

rm -f *i686*

到此,我们就下载完了我们需要的rpm包以及依赖的rpm包。

 

如果需要安装,只需要:

yum install *.rpm

rpm -ivh *.rpm

上述两个命令都可以安装所有的rpm包,且都可以离线把这些rpm包安装上。

 

总结

yumdownloader只能下载指定的包,不指定版本号则下载最新的版本的包。加上--resolve可以下载依赖包。

yum下载包则可以指定*.rpm来下载所有依赖的包。所以这个可以用于最终检测所有的rpm包的依赖包,防止缺失。

 

来源: http://www.yu7s.com/article/20230519143422246.html

相关推荐

  1. 同步艺术:Conda依赖自动同步策略

    2024-04-07 02:16:02       32 阅读
  2. jenkins 自动下载 环境依赖下载超时、报错

    2024-04-07 02:16:02       41 阅读
  3. 智能警卫:Conda依赖自动监控之道

    2024-04-07 02:16:02       33 阅读
  4. npm安装依赖多种镜像及方法

    2024-04-07 02:16:02       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 02:16:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 02:16:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 02:16:02       82 阅读
  4. Python语言-面向对象

    2024-04-07 02:16:02       91 阅读

热门阅读

  1. 力扣经典150题第三题:删除有序数组中的重复项

    2024-04-07 02:16:02       48 阅读
  2. yolov8训练流程

    2024-04-07 02:16:02       92 阅读
  3. 【物联网】Qinghub opc-da 连接协议

    2024-04-07 02:16:02       44 阅读
  4. 蓝桥杯算法基础(38)c++ STL

    2024-04-07 02:16:02       32 阅读
  5. UI python 中的basePage 类元素的最全的相关公共方法

    2024-04-07 02:16:02       108 阅读
  6. 数据库第四次作业

    2024-04-07 02:16:02       43 阅读
  7. linux命令大全(涵盖所有命令)

    2024-04-07 02:16:02       42 阅读
  8. ffplay用硬件进行编解码的命令的探索:

    2024-04-07 02:16:02       35 阅读
  9. 通过 ffmpeg命令行 调节视频播放速度

    2024-04-07 02:16:02       144 阅读