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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587732.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter应用在苹果商店上架前的准备工作与注意事项

引言 🚀 Flutter作为一种跨平台的移动应用程序开发框架,为开发者提供了便利,使他们能够通过单一的代码库构建出高性能、高保真度的应用程序,同时支持Android和iOS两个平台。然而,完成Flutter应用程序的开发只是第一步…

Codeforces Round 932 (Div. 2) ---- E. Distance Learning Courses in MAC ---- 题解

E. Distance Learning Courses in MAC: 题目大意: 思路解析: // 对于这种二进制多个数计算答案,我们应该灵敏的想到是否可以通过枚举二进制位来计算答案。 就是对每一个查询找出或和的最大值,那我们想xi 和 yi中哪些…

爬虫 红网时刻 获取当月指定关键词新闻 并存储到CSV文件

目标网站:红网 爬取目的:为了获取某一地区更全面的在红网已发布的宣传新闻稿,同时也让自己的工作更便捷 环境:Pycharm2021,Python3.10, 安装的包:requests,csv,bs4&…

非关系型数据库(缓存数据库)redis的高可用(持久化)

目录 1.redis的高可用 2.Redis持久化 1.Redis 提供两种方式进行持久化 2.RDB持久化 2.1触发条件 2.1.1手动触发 2.1.2自动触发 2.1.3其他自动触发机制 2.2执行流程 ​编辑 2.3 启动时加载 3.AOF持久化 3.1开启AOF 3.2 执行流程 3.2.1append——命令追加 3.…

【OpenCV-颜色空间】

OpenCV-颜色空间 ■ RGB■ BGR■ HSV■ HSL■ HUE■ YUV ■ RGB ■ BGR BGR 就是RGB R和B调换位置。 OpenCV 默认使用BGR ■ HSV ■ HSL ■ HUE ■ YUV

Springboot集成knife4j (swagger)

1、添加依赖 在pom.xml 文件中添加 knife4j-spring-boot-starter 的依赖 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </depe…

【JavaScript】JS高级语法

目录 1.变量与函数 1.1作用域 1.2定义变量 1.3作用域链 1.4闭包 1.5预解析 1.6let提升 1.7函数参数 1.8箭头函数 2.解构赋值 3.1数组解构 3.2对象解构 3.对象 4.1字面量创建对象 4.2构造函数 4.2.1自定义构造函数 4.2.2静态成员和实例成员 4.数据类型 4.1引…

游戏引擎中的物理系统

一、物理对象与形状 1.1 对象 Actor 一般来说&#xff0c;游戏中的对象&#xff08;Actor&#xff09;分为以下四类&#xff1a; 静态对象 Static Actor动态对象 Dynamic Actor ---- 可能受到力/扭矩/冲量的影响检测器 TriggerKinematic Actor 运动学对象 ---- 忽略物理法则…

EFK(elasticsearch+filebeat+kibana)日志分析平台搭建

本文是记录一下EFK日志平台的搭建过程 项目背景&#xff1a; 此次搭建的日志分析平台主要是采集服务器上的java服务的log日志(输出的日志已经是json格式)&#xff0c;这些日志都已经按照不同环境输出到/home/dev /home/test1 /home/test2 目录下了&#xff0c;按照不同的应…

Taro + vue3 小程序封装标题组件

分为没有跳转页面的title组件和 有跳转页面的title组件 我们可以把这个封装成一个组件 直接上代码 <template><div class"fixed-title-container"><div class"box"><div class"icon" v-if"isShow" click"…

Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件

Topaz Video AI for Mac是一款功能强大的视频处理软件&#xff0c;专为Mac用户设计&#xff0c;旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术&#xff0c;能够自动识别和分析视频中的各个元素&#xff0c;并进行智能修复和增强&…

【JavaWeb】Day31.SpringBootWeb请求响应——分层解耦(二)

3.IOC&DI 3.1 IOC&DI入门 完成Controller层、Service层、Dao层的代码解耦 思路&#xff1a; 1. 删除Controller层、Service层中new对象的代码 2. Service层及Dao层的实现类&#xff0c;交给IOC容器管理 3. 为Controller及Service注入运行时依赖的对象 Controller程序…