yum 下载软件的安装包及依赖包 不安装方法

本文介绍如何使用YUM的--downloadonly选项下载依赖包并指定下载位置,以及使用PIP查看已安装的Python包和特定包的依赖详情。通过实例演示了YUM下载ntp服务依赖包的过程和PIP查询python包依赖的方法。
yum install --downloadonly --downloaddir=依赖包准备存放的位置 软件名
例如ntp服务
yum install --downloadonly --downloaddir=/root/my_rpm ntp

2.python查看软件包的依赖包查看安装了哪些python包

pip list

查看某个包的依赖包

pip show ...(服务名)

 

只安装 不下载

pip3 download -d /zwg/jsonschema/ jsonschema

 

<think>我们正在讨论如何使用YUM下载软件包及其依赖项。YUM(Yellowdog Updater Modified)是CentOS、Fedora等Linux发行版中的包管理器,它可以自动处理依赖关系并下载所需的软件包。 根据引用[1],YUM下载存储库中可用软件包的总列表(该列表包含存储库中的软件包名称、软件包详细信息等)。注意,它只会下载带有详细信息的软件包列表,而软件包本身。在下载列表后,如果YUM能够从存储库或其他存储库中获取所需软件包的所有依赖项,它将在确认后安装它。 但是,用户的需求是“下载软件包及其依赖项,而安装。因此,我们需要使用YUM下载功能,而进行安装。 在YUM中,我们可以使用`yumdownloader`命令来下载软件包及其依赖项。`yumdownloader`是yum-utils包的一部分,因此我们需要先安装yum-utils。 步骤: 1. 安装yum-utils(如果尚未安装): ```bash sudo yum install yum-utils ``` 2. 使用`yumdownloader`命令下载软件包及其依赖项: ```bash yumdownloader --resolve <package-name> ``` 其中,`--resolve`选项用于解析并下载依赖项。 3. 默认情况下,软件包会下载到当前目录。如果需要指定下载目录,可以使用`--destdir`选项: ```bash yumdownloader --resolve --destdir=/path/to/directory <package-name> ``` 4. 另外,如果只想下载软件包而下载依赖项,可以省略`--resolve`选项。 注意:`yumdownloader`只会下载当前系统架构(如x86_64)的软件包。如果需要下载其他架构的软件包,可以使用`--archlist`选项。 此外,YUM本身也提供了下载功能(通过`yum`命令),例如: ```bash yum install --downloadonly --downloaddir=/path/to/directory <package-name> ``` 但是,请注意: - `--downloadonly`选项要求软件包尚未安装。如果已经安装,则下载。 - 需要以root权限运行(因为它是`install`命令的变体)。 因此,推荐使用`yumdownloader`,因为它需要root权限(除了安装yum-utils时需要),并且会检查软件包是否已安装。 总结: - 安装yum-utils(如果未安装)。 - 使用`yumdownloader --resolve`下载软件包及其依赖项。 示例:下载nginx及其依赖项到当前目录 ```bash yumdownloader --resolve nginx ``` 或者,使用YUM的`--downloadonly`选项(需要root): ```bash sudo yum install --downloadonly --downloaddir=/path/to/directory nginx ``` 根据引用[2],我们知道创建RPM包需要.spec文件,但这里我们只是下载,所以需要。 引用[3]是关于安装Tomcat的教程,与下载软件包及其依赖项没有直接关系,因此可以忽略。 因此,我们提供两种方法,但推荐使用`yumdownloader`。 注意:在某些旧版本的CentOS/RHEL中,可能需要启用特定的存储库才能下载某些软件包。 相关问题: 1. 如何安装yum-utils? 2. 如何使用YUM下载软件包而安装? 3. 如何下载特定架构的软件包? 4. 如何下载所有依赖项而安装软件包? 5. 如何将下载软件包用于离线安装?</think>### 如何使用YUM下载软件包及其依赖项 在CentOS/RHEL系统中,使用YUM下载软件包及其依赖项有两种常用方法: --- #### 方法1:使用 `yumdownloader`(推荐) 1. **安装必要工具** 首先安装 `yum-utils` 包: ```bash sudo yum install yum-utils ``` 2. **下载软件包及依赖** 使用 `--resolve` 参数自动解析依赖: ```bash yumdownloader --resolve <package-name> ``` *示例:下载 `nginx` 及其依赖* ```bash yumdownloader --resolve nginx ``` 3. **指定下载目录**(可选) ```bash yumdownloader --resolve --destdir=/path/to/save <package-name> ``` --- #### 方法2:使用 `yum` 的 `--downloadonly` 选项 1. **仅下载安装** ```bash sudo yum install --downloadonly --downloaddir=/path/to/save <package-name> ``` *示例:下载 `httpd` 到指定目录* ```bash sudo yum install --downloadonly --downloaddir=~/packages httpd ``` 2. **关键注意事项** - 需要 `root` 权限 - 如果软件包已安装,需添加 `--reinstall` 参数 - 依赖项会自动解析下载 --- ### 操作原理 YUM 会先查询存储库元数据(包含包名、版本、依赖关系等),解析依赖树后下载所有需要的 RPM 包到本地[^1]。下载的 RPM 包可用于: - 离线安装:`sudo rpm -ivh *.rpm` - 创建本地仓库 - 依赖完整性检查 > ⚠️ **注意** > 下载依赖包包含**当前系统架构**(如 x86_64)的版本,跨架构需额外配置。 --- ### 相关问答 1. **如何验证下载的 RPM 包完整性?** 使用 `rpm -K <package>.rpm` 检查签名和哈希值。 2. **如何创建本地 YUM 仓库?** 将 RPM 包放入目录后运行: ```bash createrepo /path/to/rpms ``` 3. **为什么 `--downloadonly` 有时下载依赖?** 通常发生在软件包已安装时,需添加 `--reinstall` 参数强制重新下载。 4. **如何仅下载依赖项下载主包?** ```bash yum deplist <package> | awk '/provider:/ {print $2}' | xargs yumdownloader ``` 5. **如何下载开发版本的软件包?** 需先启用测试仓库: ```bash yum --enablerepo=updates-testing download <package> ``` [^1]: YUM下载存储库中所有可用包的元数据列表(包含包名、依赖关系等),但下载实际包文件。 [^2]: RPM 包的构建需要规范的 `.spec` 文件定义元数据和依赖关系。 [^3]: 第三方存储库(如 EPEL)需手动配置才能访问额外软件包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值