如何在 CentOS 中下载包含所有依赖项的 RPM 包

2023-11-20

【翻译于ostechnix.com 上 Senthil Kumar的《How To Download A RPM Package With All Dependencies In CentOS》】

我们可以使用curl或wget命令下载任何包,对吗?但是,这些命令不会下载所需的依赖项。您可能需要花一些时间手动搜索并下载安装包所需的依赖项。好吧,不再!在这个简短的教程中,让我们看看如何在 CentOS 中下载包含所有依赖项的 RPM 包。我在 CentOS 7 上测试了本指南,尽管相同的步骤可能适用于其他基于 RPM 的系统,例如 RHEL、Fedora 和 Scientific Linux。

内容

  • 在 CentOS 中下载一个包含所有依赖项的 RPM 包
    • 1.使用“Downloadonly”插件下载包含所有依赖项的RPM包
    • 2.使用“Yumdownloader”工具下载所有依赖的 RPM 包

在 CentOS 中下载一个包含所有依赖项的 RPM 包

我们可以通过两种方法来做到这一点。这里是第一种方法。

1.使用“Downloadonly”插件下载包含所有依赖项的RPM包

我们可以使用yum 命令的“Downloadonly”插件轻松下载具有所有依赖项的任何 RPM 包。

要安装 Downloadonly 插件,请以root用户身份运行以下命令。

# yum install yum-plugin-downloadonly

现在,运行以下命令下载 RPM 包。

# yum install --downloadonly <package-name>

默认情况下,此命令将下载包并将其保存在 **/var/cache/yum/**位置。但是,您可以使用 “–downloaddir” 选项将软件包下载并保存在您选择的任何位置。

# yum install --downloadonly --downloaddir=<directory> <package-name>

例子:

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd

示例输出:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* epel: epel.mirror.angkasa.id
* extras: centos.excellmedia.net
* updates: centos.excellmedia.net
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================
Installing:
httpd x86_64 2.4.6-40.el7.centos.4 updates 2.7 M
Installing for dependencies:
apr x86_64 1.4.8-3.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd-tools x86_64 2.4.6-40.el7.centos.4 updates 83 k
mailcap noarch 2.1.41-2.el7 base 31 k

Transaction Summary
=======================================================================================================================================
Install 1 Package (+4 Dependent packages)

Total download size: 3.0 M
Installed size: 10 M
Background downloading packages, then exiting:
(1/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:01 
(2/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 
(3/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:01 
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:01 
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:09 
---------------------------------------------------------------------------------------------------------------------------------------
Total 331 kB/s | 3.0 MB 00:00:09 
exiting because "Download Only" specified

使用“Downloadonly”插件下载包含所有依赖项的 RPM 包

现在转到您在上述命令中指定的位置。您将在那里看到包含所有依赖项的下载包。就我而言,我已将软件包下载到 /root/mypackages/ 目录中。

让我们验证一下内容。

# ls /root/mypackages/

示例输出:

apr-1.4.8-3.el7.x86_64.rpm 
apr-util-1.5.2-6.el7.x86_64.rpm 
httpd-2.4.6-40.el7.centos.4.x86_64.rpm 
httpd-tools-2.4 .6-40.el7.centos.4.x86_64.rpm 
mailcap-2.1.41-2.el7.noarch.rpm

列出下载的包

正如您在上面的输出中看到的,已经下载了包含所有依赖项的包httpd

请注意,此插件适用于“yum install/yum update”,而不适用于“yum groupinstall”。默认情况下,此插件将下载存储库中最新的可用包。但是,您可以通过指定版本来下载特定版本。

例子:

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7

此外,您可以一次下载多个包,如下所示。

# yum install --downloadonly --downloaddir=/root/mypackages/ httpd vsftpd

2.使用“Yumdownloader”工具下载所有依赖的 RPM 包

Yumdownloader 是一个简单而有用的命令行实用程序,可以一次性下载任何 RPM 包以及所有必需的依赖项。

root用户身份使用以下命令安装 Yumdownloader 。

# yum install yum-utils

安装后,运行以下命令下载软件包,例如httpd

# yumdownloader httpd

要下载包含所有依赖项的包,请使用 –resolve 选项:

# yumdownloader --resolve httpd

默认情况下,Yumdownloader 将下载当前工作目录中的包。

要将软件包和所有依赖项一起下载到特定位置,请使用 –destdir 选项:

# yumdownloader --resolve --destdir=/root/mypackages/ httpd

或者

# yumdownloader --resolve --destdir /root/mypackages/ httpd

示例输出:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* epel: epel.mirror.angkasa.id
* extras: centos.excellmedia.net
* updates: centos.excellmedia.net
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 
(2/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:02 
(3/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:02 
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:03 
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:19

使用 Yumdownloader 实用程序下载包含所有依赖项的 RPM 包

让我们验证包是否已在指定位置下载。

# ls /root/mypackages/

示例输出:

apr-1.4.8-3.el7.x86_64.rpm 
apr-util-1.5.2-6.el7.x86_64.rpm 
httpd-2.4.6-40.el7.centos.4.x86_64.rpm 
httpd-tools-2.4 .6-40.el7.centos.4.x86_64.rpm 
mailcap-2.1.41-2.el7.noarch.rpm

列出下载的包
与“Downloadonly”插件不同,Yumdownload 可以下载与特定组相关的包

# yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/

就个人而言,我更喜欢 Yumdownloader 而不是 yum 的“Downloadonly”插件。但是,两者都很容易,并且可以完成相同的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 中下载包含所有依赖项的 RPM 包 的相关文章

  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • linux x86 汇编语言 sys_read 调用的第一个参数应为 0 (stdin)

    我正在编写一个简单的汇编程序来从标准输入读取 如 scanf 这是我的代码 section bss num resb 5 section txt global start start mov eax 3 sys read mov ebx 0
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟

随机推荐

  • [动态系统的建模与分析]8_频率响应_详细数学推导 G(jw)_滤波器

    运放滤波器 3 反相同相比例放大电路 Multisim电路仿真 运放滤波器 2 运放反馈原理 运放滤波器 1 理想运放 虚短虚断 现代控制理论 11 现代控制理论串讲 完结 pdf获取 信号与系统在工程中 里面的一些工具应该是奠基石 电路
  • 杂七杂八的小知识

    杂七杂八的小知识 前端知识 Node js安装注意事项 Vue学习文档 Mysql数据库小知识 安装数据库后使用数据库所需步骤 MySQL远程连接 常用数据库命令 mysql数据库导入查询 StarUML使用教程 docker小知识 cma
  • 2023备战金三银四,自动化软件测试面试宝典合集(一)

    马上就又到了程序员们躁动不安 蠢蠢欲动的季节 这不 金三银四已然到了家门口 新年一过后台就有不少人问我 现在外边大厂面试都问啥 想去大厂又怕面试挂 面试应该怎么准备 测试开发前景如何 面试 一个程序员成长之路永恒绕不过的话题 每每到这个时期
  • Flutter FutureBuilder 示例

    通过示例 可以重点对FutureBuilder的各个属性的了解
  • 使用MobaXterm发布前端代码到服务器

    1 准备 先获得服务器的必须信息 如下表 序号 参数名 参数值 描述 1 服务器IP 81 71 87 37 2 登录用户名 root 3 用户私钥 如下 可保存为一个文件如pri key 一定确保格式与下面代码一样 不能有多余的空格 换行
  • 位运算——异或运算

    目录 按位异或运算 异或运算的应用 镜子田地 镜子 按位异或运算 按位异或运算将两个运算分量的对应位按位遵照以下规则进行计算 0 0 0 0 1 1 1 0 1 1 1 0 即相应位的值相同的 结果为 0 不相同的结果为 1 例如 2 6结
  • 万众瞩目--腾讯云数据库TDSQL第一届征文正式大赛开启

    首届腾讯云数据库TDSQL征文大赛开启啦 只要您对腾讯云数据库TDSQL有兴趣 有研究 有想法 皆可参加 腾讯云数据库诚挚邀请您参与活动 分享和TDSQL邂逅的若干趣事 领取精美礼品 腾讯云数据库TDSQL是腾讯自研的企业级分布式数据库 在
  • PTP简介

    PTP简介 在通信网络中 许多业务的正常运行都要求网络时钟同步 即整个网络各设备之间的时间或频率差保持在合理的误差水平内 网络时钟同步包括以下两个概念 l 时间同步 也叫相位同步 Phase synchronization 是指信号之间的频
  • 【openvpn简介】

    openvpn简介 简单原理 脚本实现一键安装 增加 注销 第六周作业 简单原理 VPN Virual Private Network 虚拟私有网络 或称为虚拟专用网络 常用于在公用网络上建立专用网络 进行加密通讯 VPN网关通过对数据包的
  • Linux 字体安装

    java系统生成PDF 二维码增加标题等场景都会使用到Font 但是linux服务器上又没有这些字体 这个时候就需要自己安装字体到服务器 以下是安装步骤 1 安装插件 yum install y fontconfig mkfontscale
  • java 使用rabbitmq_java操作RabbitMQ整个过程介绍

    一 环境安装 1 安装java工具 IntelliJ IDEA 2019 3 x64 2 安装erl10 7 并配置好path等环境变量 同时验证是否安装成功 见图1 图2 图1 图2 3 安装RabbitMQ3 8 3 图3 cmd进入上
  • 后台-husky提交代码规范使用

    husky是一个git hook工具 可以帮助我们触发git提交的各个阶段 pre commit commit msg pre push 1 如何使用husky呢 npx husky init npm install Windows安装不成
  • 一个基于SpringBoot2+Vue+Redis的企业级聚合支付系统可二次开发接私活

    点击关注 Java开发宝典 2022 01 20 08 50 收录于话题 项目分享28个 项目介绍 Jeepay是一套适合互联网企业使用的开源支付系统 支持多渠道服务商和普通商户模式 已对接微信支付 支付宝 云闪付官方接口 支持聚合码支付
  • 微信小程序读取服务器数据,微信小程序前端获取后端数据

    webMessage 测试 index js Page getMessage function var self this wx request url http localhost 8080 demo 仅为示例 需填写自己服务器的地址 d
  • word2vec深入理解及实践

    以前对于word2vec的理解就是通过训练能得到词向量 对应有两种方法 skip gram和CBOW 两者差别其实不大 但关于具体的细节也不是很了解 今天来深入理解并记录一下 理论方面 word2vec是一种基于神经网络的语言模型 是goo
  • 网络协议之ARP协议解析

    ARP协议简介 ARP Address Resolution Protocol 是个地址解析协议 最直白的说法是 在IP以太网中 当一个上层协议要发包时 有了该节点的IP地址 ARP就能提供该节点的MAC地址 OSI 模式把网络工作分为七层
  • Spring项目如何部署项目到Linux

    部署前先将项目所需的数据库添加到linux的mysql中 部署jar包到linux 修改项目pom文件 将打包方式改为jar 在pom中添加springboot插件
  • 春考计算机服务器配置,考试系统的服务器配置有什么要求?

    处理器 CPU类型 Intel 至强E5 2600 CPU型号 Xeon E5 2650 CPU频率 2GHz 智能加速主频 2 8GHz 标配CPU数量 1颗 最大CPU数量 2颗 制程工艺 32nm 三级缓存 20MB 总线规格 QPI
  • Matlab运行程序_暂停方法

    pause函数 官方文档 其调用格式为 pause 延迟数秒 必须启用暂停 此调用才能生效 暂停执行matlab 并等用户按下任意键 pause on 启用暂停设置 若想省略延迟时间 则直接使用pause函数 则将程序暂停 直到用户按任意键
  • 如何在 CentOS 中下载包含所有依赖项的 RPM 包

    翻译于ostechnix com 上 Senthil Kumar的 How To Download A RPM Package With All Dependencies In CentOS 我们可以使用curl或wget命令下载任何包 对