【Linux】 rpm安装包保存到本地并批量安装

news2024/12/23 18:55:19

目录

一、开启rpm安装包缓存到本地仓库

1. 修改yum.conf文件

2. 清理yum缓存

 3. yum命令安装软件包

二、如何将rpm安装包保存到指定目录

方法一:yumdownloader

1. 安装yum-utils 

2. yumdownloader命令参数说明

3. yumdownloader安装示例

方法二:yum --downloadonly

方法三:reposync

1. reposync命令参数说明

2. 查看yum源对应的仓库

3. 下载对应仓库下的rpm包到指定目录

4. reposync其他命令

三、rpm包批量安装


Linux系统的时候大家都有一个烦恼,用yum安装的软件包不知道去哪里了,不像windows那样直观可以将安装包放到一个地方保存起来,接下来为大家介绍yum安装后如果保存rpm包到本地。

一、开启rpm安装包缓存到本地仓库

1. 修改yum.conf文件

sed -i "s/keepcache=0/keepcache=1/g" /etc/yum.conf  修改配置文件中的keepcache参数

如果没有keepcache参数,需要手动加到配置文件yum.conf

2. 清理yum缓存

yum clean all

 3. yum命令安装软件包

yum install -y httpd

可以看到已经安装到BaseOS仓库和AppStream仓库

查看安装目录如下,根据提示可以在具体的仓库找到对应的rpm包: 

可以发现安装一个httpd相关依赖安装在不同的仓库:BaseOS仓库和AppStream仓库

如何可以指定所安装的rpm包保存到一个指定的文件下?下面是具体方法。

二、如何将rpm安装包保存到指定目录

方法一:yumdownloader

如果只想通过yum下载软件的软件包,但是不需要进行安装的话,可以使用yumdownloader命令;


1. 安装yum-utils 

yumdownloader命令在软件包【yum-utils】里面,需要安装yum-utils

# yum install -y yum-utils

2. yumdownloader命令参数说明

 
 

usage: dnf download [-c [config file]] [-q] [-v] [--version]

[--installroot [path]] [--nodocs] [--noplugins]

[--enableplugin [plugin]] [--disableplugin [plugin]]

[--releasever RELEASEVER] [--setopt SETOPTS]

[--skip-broken] [-h] [--allowerasing] [-b | --nobest] [-C]

[-R [minutes]] [-d [debug level]] [--debugsolver]

[--showduplicates] [-e ERRORLEVEL] [--obsoletes]

[--rpmverbosity [debug level name]] [-y] [--assumeno]

[--enablerepo [repo]] [--disablerepo [repo] | --repo

[repo]] [--enable | --disable] [-x [package]]

[--disableexcludes [repo]] [--repofrompath [repo,path]]

[--noautoremove] [--nogpgcheck] [--color COLOR]

[--refresh] [-4] [-6] [--destdir DESTDIR] [--downloadonly]

[--comment COMMENT] [--bugfix] [--enhancement]

[--newpackage] [--security] [--advisory ADVISORY]

[--bz BUGZILLA] [--cve CVES]

[--sec-severity {Critical,Important,Moderate,Low}]

[--forcearch ARCH] [--source] [--debuginfo]

[--debugsource] [--arch [arch]] [--resolve] [--alldeps]

[--url] [--urlprotocols {http,https,rsync,ftp}]

packages [packages ...]

General DNF options:

  • -c [config file], --config [config file]
  • 配置文件位置
  • -q, --quiet 静默执行
  • -v, --verbose 详尽执行
  • --version 显示 DNF 的版本并退出
  • --installroot [path] 设置目标根目录
  • --nodocs 不要安装文档
  • --noplugins 禁用所有插件
  • --enableplugin [plugin]
  • 启用指定名称的插件
  • --disableplugin [plugin]
  • 禁用指定名称的插件
  • --releasever RELEASEVER
  • 覆盖在配置文件和仓库文件中 $releasever 的值
  • --setopt SETOPTS 设置任意配置和仓库选项
  • --skip-broken 通过跳过软件包来解决依赖问题
  • -h, --help, --help-cmd
  • 显示命令帮助
  • --allowerasing 允许解决依赖关系时删除已安装软件包
  • -b, --best 在事务中尝试最佳软件包版本。
  • --nobest 不将事务限制在最佳候选
  • -C, --cacheonly 完全从系统缓存运行,不升级缓存
  • -R [minutes], --randomwait [minutes]
  • 最大命令等待时间
  • -d [debug level], --debuglevel [debug level]
  • 调试输出级别
  • --debugsolver 转储详细解决结果至文件
  • --showduplicates 在 list/search 命令下,显示仓库里重复的条目
  • -e ERRORLEVEL, --errorlevel ERRORLEVEL
  • 错误输出级别
  • --obsoletes 对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery
  • 启用软件包过期的显示功能
  • --rpmverbosity [debug level name]
  • rpm调试输出等级
  • -y, --assumeyes 全部问题自动应答为是
  • --assumeno 全部问题自动应答为否
  • --enablerepo [repo] 启用附加仓库。列出选项。支持通配符,可以指定多次。
  • --disablerepo [repo] 停用仓库。列出选项。支持通配符,可指定多次。
  • --repo [repo], --repoid [repo]
  • 启用指定 id 或 glob 的仓库,可以指定多次
  • --enable 使用 config-manager 命令启用 repos (自动保存)
  • --disable 使用 config-manager 命令禁用 repos (自动保存)
  • -x [package], --exclude [package], --excludepkgs [package]
  • 用全名或通配符排除软件包
  • --disableexcludes [repo], --disableexcludepkgs [repo]
  • 禁用 excludepkgs
  • --repofrompath [repo,path]
  • 附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。
  • --noautoremove 禁用删除不再被使用的依赖软件包
  • --nogpgcheck 禁用 gpg 签名检查 (如果 RPM 策略允许)
  • --color COLOR 配置是否使用颜色
  • --refresh 在运行命令之前将元数据标记为过期
  • -4 仅解析 IPv4 地址
  • -6 仅解析 IPv6 地址
  • --destdir DESTDIR, --downloaddir DESTDIR
  • 设置软件包要复制到的目录
  • --downloadonly 仅下载软件包
  • --comment COMMENT 为事务添加一个注释
  • --bugfix 在更新中包括与 bug 修复有关的软件包
  • --enhancement 在更新中包括与功能增强有关的软件包
  • --newpackage 在更新中包括与新软件包有关的软件包
  • --security 在更新中包括与安全有关的软件包
  • --advisory ADVISORY, --advisories ADVISORY
  • 在更新中包括修复指定公告所必须的软件包
  • --bz BUGZILLA, --bzs BUGZILLA
  • 在更新中包括修复给定 BZ 所必须的软件包
  • --cve CVES, --cves CVES
  • 在更新中包括修复给定 CVE 所必须的软件包
  • --sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
  • 在更新中包括匹配给定安全等级的安全相关的软件包
  • --forcearch ARCH 强制使用一个架构
  • Download command-specific options:
  • --source 取而代之下载源代码软件包 src.rpm
  • --debuginfo 取而代之下载 -debuginfo 软件包
  • --debugsource 取而代之下载 -debugsource 软件包
  • --arch [arch], --archlist [arch]
  • 限定查询指定架构的软件包。
  • --resolve 解析并下载所需的依赖关系
  • --alldeps 当运行时使用 --resolve,下载所有依赖软件包 (不排除已安装的软件包)
  • --url, --urls 打印 rpm 可被下载的 url 列表而不是直接下载
  • --urlprotocols {http,https,rsync,ftp}
  • 当执行时带有 --url 参数,则限制使用指定协议

3. yumdownloader安装示例

# yumdownloader --destdir=/tmp --resolve lrzsz

在tmp目录下可以看到下载的文件 

方法二:yum --downloadonly

 yum命令的参数有很多,其中就有只是下载而不需要安装的命令,并且也会自动解决依赖;通常和【–downloaddir】参数一起使用

# yum install --downloadonly --downloaddir=/tmp/ vsftpd(安装包)
# yum reinstall --downloadonly --downloaddir=/tmp/ vsftpd (安装包)

说明:如果该服务器已经安装了需要下载的软件包,那么使用【install】下载就不行,可以用【reinstall】下载。放心(不会真的安装或重新安装,因为后面加了【–downloadonly】,表明只是下载。)

如果提示没有【–downloadonly】选项则需要安装【yum-plugin-downloadonly】软件包

# yum install -y yum-plugin-downloadonly

方法三:reposync

该命令更为强大,可以将远端yum仓库里面的包全部下载到本地。这样构建自己的yum仓库,就不会遇到没有网络导致更新包无法下载的问题。该命令也是来自于【yum-utils】里面。

1. reposync命令参数说明

[root@master02 ~]# reposync --help

usage: dnf reposync [-c [config file]] [-q] [-v] [--version]

[--installroot [path]] [--nodocs] [--noplugins]

[--enableplugin [plugin]] [--disableplugin [plugin]]

[--releasever RELEASEVER] [--setopt SETOPTS]

[--skip-broken] [-h] [--allowerasing] [-b | --nobest] [-C]

[-R [minutes]] [-d [debug level]] [--debugsolver]

[--showduplicates] [-e ERRORLEVEL] [--obsoletes]

[--rpmverbosity [debug level name]] [-y] [--assumeno]

[--enablerepo [repo]] [--disablerepo [repo] | --repo

[repo]] [--enable | --disable] [-x [package]]

[--disableexcludes [repo]] [--repofrompath [repo,path]]

[--noautoremove] [--nogpgcheck] [--color COLOR]

[--refresh] [-4] [-6] [--destdir DESTDIR] [--downloadonly]

[--comment COMMENT] [--bugfix] [--enhancement]

[--newpackage] [--security] [--advisory ADVISORY]

[--bz BUGZILLA] [--cve CVES]

[--sec-severity {Critical,Important,Moderate,Low}]

[--forcearch ARCH] [-a [arch]] [--delete]

[--download-metadata] [-g] [-m]

[--metadata-path METADATA_PATH] [-n] [--norepopath]

[-p DOWNLOAD_PATH] [--remote-time] [--source] [-u]

下载远程仓库中的全部软件包

General DNF options:

  • -c [config file], --config [config file]
  • 配置文件位置
  • -q, --quiet 静默执行
  • -v, --verbose 详尽执行
  • --version 显示 DNF 的版本并退出
  • --installroot [path] 设置目标根目录
  • --nodocs 不要安装文档
  • --noplugins 禁用所有插件
  • --enableplugin [plugin]
  • 启用指定名称的插件
  • --disableplugin [plugin]
  • 禁用指定名称的插件
  • --releasever RELEASEVER
  • 覆盖在配置文件和仓库文件中 $releasever 的值
  • --setopt SETOPTS 设置任意配置和仓库选项
  • --skip-broken 通过跳过软件包来解决依赖问题
  • -h, --help, --help-cmd
  • 显示命令帮助
  • --allowerasing 允许解决依赖关系时删除已安装软件包
  • -b, --best 在事务中尝试最佳软件包版本。
  • --nobest 不将事务限制在最佳候选
  • -C, --cacheonly 完全从系统缓存运行,不升级缓存
  • -R [minutes], --randomwait [minutes]
  • 最大命令等待时间
  • -d [debug level], --debuglevel [debug level]
  • 调试输出级别
  • --debugsolver 转储详细解决结果至文件
  • --showduplicates 在 list/search 命令下,显示仓库里重复的条目
  • -e ERRORLEVEL, --errorlevel ERRORLEVEL
  • 错误输出级别
  • --obsoletes 对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery
  • 启用软件包过期的显示功能
  • --rpmverbosity [debug level name]
  • rpm调试输出等级
  • -y, --assumeyes 全部问题自动应答为是
  • --assumeno 全部问题自动应答为否
  • --enablerepo [repo] 启用附加仓库。列出选项。支持通配符,可以指定多次。
  • --disablerepo [repo] 停用仓库。列出选项。支持通配符,可指定多次。
  • --repo [repo], --repoid [repo]
  • 启用指定 id 或 glob 的仓库,可以指定多次
  • --enable 使用 config-manager 命令启用 repos (自动保存)
  • --disable 使用 config-manager 命令禁用 repos (自动保存)
  • -x [package], --exclude [package], --excludepkgs [package]
  • 用全名或通配符排除软件包
  • --disableexcludes [repo], --disableexcludepkgs [repo]
  • 禁用 excludepkgs
  • --repofrompath [repo,path]
  • 附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。
  • --noautoremove 禁用删除不再被使用的依赖软件包
  • --nogpgcheck 禁用 gpg 签名检查 (如果 RPM 策略允许)
  • --color COLOR 配置是否使用颜色
  • --refresh 在运行命令之前将元数据标记为过期
  • -4 仅解析 IPv4 地址
  • -6 仅解析 IPv6 地址
  • --destdir DESTDIR, --downloaddir DESTDIR
  • 设置软件包要复制到的目录
  • --downloadonly 仅下载软件包
  • --comment COMMENT 为事务添加一个注释
  • --bugfix 在更新中包括与 bug 修复有关的软件包
  • --enhancement 在更新中包括与功能增强有关的软件包
  • --newpackage 在更新中包括与新软件包有关的软件包
  • --security 在更新中包括与安全有关的软件包
  • --advisory ADVISORY, --advisories ADVISORY
  • 在更新中包括修复指定公告所必须的软件包
  • --bz BUGZILLA, --bzs BUGZILLA
  • 在更新中包括修复给定 BZ 所必须的软件包
  • --cve CVES, --cves CVES
  • 在更新中包括修复给定 CVE 所必须的软件包
  • --sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
  • 在更新中包括匹配给定安全等级的安全相关的软件包
  • --forcearch ARCH 强制使用一个架构
  • Reposync command-specific options:
  • -a [arch], --arch [arch]
  • 只下载这个 ARCH 的软件包
  • --delete 删除已不在仓库中的本地软件包
  • --download-metadata 下载所有元数据。
  • -g, --gpgcheck 下载后删除无法通过 GPG 签名检查的软件包
  • -m, --downloadcomps 同时下载并解压 comps.xml
  • --metadata-path METADATA_PATH
  • 存储下载的仓库元数据的位置。默认为 --download-path 的值。
  • -n, --newest-only 只下载最新的软件包 per-repo
  • --norepopath 不要在下载路径中添加仓库名(reponame)。
  • -p DOWNLOAD_PATH, --download-path DOWNLOAD_PATH
  • 在何处存储已下载的仓库
  • --remote-time 根据服务器上的文件设置本地文件的本地时间戳
  • --source 只下载源软件包
  • -u, --urls 只列出要下载内容的 url,不实际下载

常用参数

--repo 指定已经本地配置的yum仓库的repo源的名称
-p 指定下载的路径

2. 查看yum源对应的仓库

#yum repolist

仓库如下: 

3. 下载对应仓库下的rpm包到指定目录

以openresty为例

# reposync --downloadonly --repo openresty -p /tmp

下载后以仓库名称为文件目录,openresty所有的安装包保存到/tmp/openresty目录下,如下所示:

reposync强大的功能解决了局域网机房在无互联网环境下的软件安装问题,只需要将事先通过reposync下载好的rpm安装包拷贝到目标服务器下,一键安装即可。

4. reposync其他命令

#1. 同步整个源到指定目录
# reposync -p /tmp/repo/

# 2. 同步指定源到指定目录
# reposync  --repo=openresty -p /tmp/repo/ 

# 3. 更新同步过的源
# reposync -n --repo=openresty -p /tmp/repo/ 

对于每个仓库的yum源阶段性的都有版本更新,要保证通过reposync下载的yum源都是最新的,需要构建job,通过crontab构建一个任务,如下:

#每星期六晚上23 : 00 执行yum仓库openresty rpm包更新
0 23 * * 6 root reposync --downloadonly --repo openresty -p /tmp

三、rpm包批量安装

我们通过yum或者yumdownloader或者reposync下载后的rpm安装包到局域网的一台服务器上安装时发现安装包几十个,甚至上百个rpm包,总不能一个一个安装,需要批量安装。命令如下:

# cd /tmp/repo/ #保存rpm安装包的目录
# rpm -Uvh *.rpm --nodeps --force

参数说明: 

-U:升级软件,若未软件尚未安装,则安装软件。

-v:表示显示详细信息。

-h:以"#"号显示安装进度。

--force:强制安装

--nodeps:不考虑安装依赖的关系

参考资料

【精选】reposync命令详解--reposync同步aliyunyum库到本地_repo sync_风情客家__的博客-CSDN博客

通过yum命令只下载rpm包不安装
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Notepad++写java代码

步骤 1.新建,写代码 2.写好之后存为java文件 3.打开命令行 cd 对应位置 javac xxx.java (如有中文) java xxxdebug 1.错误: 编码utf-8的不可映射字符 这是代码里有中文,编译时加上-encoding utf-8即可 2.错误: 程序包xxx不存在…

ETO制造商目前面临的六大挑战,如何应对?

与离散制造、库存制造不同,按订单设计制造(ETO)行业面临着一系列独特的挑战。从复杂的产品设计到与客户的密切联系,按订单生产的每件产品都不尽相同。 如果采用按订单生产方式制造产品,管理者总是会想方设法采购最好的…

基于springboot实现书籍学习平台管理系统项目【项目源码+论文说明】

基于springboot实现书籍学习平台管理系统演示 摘要 首先,论文一开始便是清楚的论述了平台的研究内容。其次,剖析平台需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确平台的需求。然后在明白了平台的需求基础上需要进一步地设计平台,主要…

礼品家居建材行业出口管理ERP解决方案

根据“一带一路”白皮书显示,2013至2022年,中国与共建国家进出口总额累计19.1万亿美元,年均增长6.4%;与共建国家双向投资累计超过3800亿美元。随着“一带一路”高质量共建,第134届广交会第二期打造的“大家居”主体概念…

Python教程:csv如何保存字典数据

下面是一个示例代码,它将字典数据保存到CSV文件中: #我的Python教程 #微信公众号:wdPython首先创建了一个包含字典数据的列表dict_data。然后,我们使用csv.DictWriter()函数创建一个CSV写入对象,指定了字典中的键作为…

智慧燃气,如何能够防患于未“燃”!

关键词:智慧燃气、智慧燃气建设、智慧燃气平台、智慧燃气系统、燃气数字化 天然气作为一种优质的清洁能源,在改善大气污染中起到非常重要的作用。国家也在将天然气发展成为我国主体能源之一。天然气的快速发展也给智慧燃气带来了光明的前途,…

【python】乱码的处理总结

Python 系列 如果你在Python中遇到了乱码问题,可能是由于字符编码不匹配导致的。以下是一些可能的解决方法: (1) 确认编码格式:首先要确认你的数据的实际编码格式。常见的编码格式包括UTF-8、GBK、GB2312等。确定正确…

goland无法调试问题解决

goland 无法调试问题解决 golang 版本升级后,goland 无法进行调试了 首先请看自己下载的版本是否有误 1.apple系 M系列芯片的 arm64版本 2.apple系 intel系列芯片的x86_64 3.windows系 intel解决如下: 查看gopath ericsanchezErics-Mac-mini gww-api…

一克商评|未来向外输出自动驾驶技术和解决方案的中国企业会越来越多

封面新闻记者 孟梅 欧阳宏宇 雷强 蔡世奇 付文超 小马智行获沙特新未来城1亿美元投资,并将成立合资公司 小马智行宣布获得沙特阿拉伯王国新未来城(NEOM)及旗下投资基金NIF(NEOM Investment Fund)的1亿美元投资。同时…

生成树协议:监控 STP 端口和交换机

什么是生成树协议 生成树协议 (STP) 用于网络交换机,以防止循环和广播风暴。在局域网 (LAN) 中,两条或多条冗余路径可以连接到同一网段。当交换机或网桥从所有可用端口传输帧时,这些帧开始在网…

金属纳米颗粒通过水基剥离方案使用嵌段共聚物模板

引言 随着纳米结构表面和界面在广泛的科学和技术应用中变得越来越重要,确定可扩展和廉价的方法来实现这些变成了一个关键的挑战。特别是有序、非密集、表面支撑的金属纳米颗粒的大面积阵列的制造,由于其在不同领域如等离子体增强薄膜太阳能电池中的应用…

基于java+springboot的人事招聘信息网站

运行环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven 项目介绍 开发过程…

RK3588使用npu运行onnx模型推理

文章目录 前言1.安装rknn-toolkit22.将onnx模型转为rknn模型3.通过rknpu2加载rknn模型执行推理 前言 先说总体流程: 1.在x86主机上安装【rknn-toolkit2】 2.使用【rknn-toolkit2】,把onnx模型转换成rknn格式的模型。 3.在板子部署【rknpu2】&#xff0c…

2023年【北京市安全员-A证】考试及北京市安全员-A证考试内容

题库来源:安全生产模拟考试一点通公众号小程序 北京市安全员-A证考试根据新北京市安全员-A证考试大纲要求,安全生产模拟考试一点通将北京市安全员-A证模拟考试试题进行汇编,组成一套北京市安全员-A证全真模拟考试试题,学员可通过…

内网穿透的应用-Linux JumpServer堡垒机:安全远程访问解决方案

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…

快速掌握linux性能监控的相关命令及工具

在linux系统环境的测试开发过程中,我们常常需要评估系统性能,尤其在性能测试工作中,我们需要通过系统资源的监控,从而分析定位系统的性能瓶颈。 首先,我们要知道从哪些维度来评估系统的性能好坏: CPU利用率…

“文本界面”(Python插值字符串格式化打造)

Python插值字符串格式,打造程序文本界面。 (本笔记适合熟悉Python字符串的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么…

华为云服务器 Ping 延迟

参考 检查云服务器的内核参数。 检查文件/etc/sysctl.conf中配置项“net.ipv4.icmp_echo_ignore_all”的值,0表示允许Ping,1表示禁止Ping。 允许PING设置。 临时允许PING操作的命令: #echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all永…

《健康界》深度报道:阿基米德医疗设备精细化管理,助力降本增效

“给我一个支点,我就能撬动整个地球。”古希腊著名物理学家阿基米德两千多年前的这句“狂言”,让杠杆原理广为流传并被普遍接受,成为力学的基本原理之一。 在今天的苏州,有一家叫苏州阿基米德网络科技有限公司(下称阿…