在 Ubuntu 中安装 yum2025年03月17日 | 阅读 9 分钟 Yum 简介YUM (Yellowdog Updater Modified) 是一个开源免费的命令行包管理实用程序,用于借助 RPM 包管理器执行 Linux 操作系统的系统。许多其他工具为 YUM 功能提供了 GUI,因为 YUM 包含一个命令行界面。 YUM 允许在基于 RPM 的发行版上进行自动更新和包依赖管理。YUM 实现了软件存储库(包的集合),这些存储库可以在本地或通过网络连接使用,类似于 Debian 的 高级包工具。 - YUM 在底层依赖于 RPM,RPM 是一种用于软件数字分发的打包标准,它自动应用 数字签名 和 哈希值 来验证所述软件的完整性和作者身份,与一些提供相同功能的应用程序商店不同,RPM 和 YUM 都不提供对最终用户复制包的基本限制的内置支持。
- YUM 作为使用 Python 编程语言的库运行,其中包含少量提供命令行程序的程序。
- 基于图形用户界面的包装器,如 YUM Extender 也可用,并在 Fedora Linux 的 22 版本之前被接受。
- 在 Fedora 的 22 版本中,名为 DNF 的 YUM 重写取代了 YUM 成为默认的包管理器。这是因为 Fedora 将转移到 Python 3,这意味着 YUM 将无法在此修改后继续存在。
- DNF 可以使用 Python 3 或 2 执行。
- 此外,DNF 的建立是为了在许多方面改进 YUM - 更好的依赖冲突解决和改进的性能,以及与其他应用软件更简单的集成。
YUM 的历史在 1999 年至 2001 年期间,Yellowdog Updater(或 YUP)(真正的包管理器)由 Dan Burcaw、Troy Bengegerdes、Stephen Edie 和 Bryan Stillwell 在 Terra Soft Solutions 集成,作为 Yellow Dog Linux 图形安装程序的后端引擎。 最初,YUM 发展用于更新和管理杜克大学物理系由 Michael Stenner 和 Seth Vidal 使用的 Red Hat Linux 系统,作为 YUM 的完整重写。Vidal 一直致力于 YUM,直到 2013 年 7 月 8 日他在北卡罗来纳州达勒姆的自行车事故中去世。 Yum 旨在解决以前 APT-RPM 中预期的缺陷和工具的限制,即 Red Hat up2date 包管理。YUM 在 Red Hat Enterprise Linux 的 5 及更高版本中取代了 up2date。一些作者将 YUM 介绍为 Yellowdog Update Manager 或建议 “Your Update Manager” 更为合适。 YUM 的常识被认为是 Linux 系统管理员的需求,在遵守其他许可条款的情况下,修改和分发无需版税。Yum 已移植到包括 ArcaOS、IBM 和 AIX 在内的多个其他操作系统,而它最初是为 Linux 制作的。 YUM 的操作YUM 可以执行以下操作: - 列出已安装的包
- 列出存在的包
- 更新可用的已安装包
- 删除包
- 安装包
YUM 的扩展在 Python 中,YUM 2.x 版本为几个编程扩展提供了一个额外的接口,允许修改 YUM 的行为。默认情况下安装了几个插件。yum-utils 是一个常用安装的包,它包括应用 YUM API 和几个插件的命令。 称为 “前端” 的图形用户界面允许更轻松地使用 YUM。YUM Extender 和 PackageKit 是两个例子。YUM Extender 在 Fedora 迁移到 DNF 后被弃用了一段时间,它用 Gtk 3 和 Python 3 进行了重写,并且一直在开发中。这个新的 YUM Extender 适用于 Fedora 的 34 或更高版本。 YUM 的元数据包信息(而不是包本身)称为 元数据。此元数据与所有包中的详细信息结合,用于确定包之间的依赖关系。希望避免一种称为 依赖地狱 的情况。一个独立的工具,即 createrepo 修复了 YUM 的软件存储库,以经典的 XML 格式生成必要的元数据。mrepo 工具(以前称为 Yam)可以帮助维护和创建存储库。 YUM 的 XML 存储库,是在其他几位开发人员的协助下创建的,成为基于 RPM 的存储库的标准。SUSE Linux 10.1 在 YaST 中支持 YUM 存储库,并且存储库(即 Open Build Service)应用 YUM XML 存储库格式的元数据。 YUM 自动将远程元数据与本地客户端集成,而其他工具则选择仅在用户请求时集成。自动同步定义了 YUM 不会失败,因为用户未能在适当的间隔执行命令。 YUM 命令标签一些重要的命令标签及其描述如下:  - 安装
它用于安装一组包的最新包版本,同时确保每个依赖项都得到满足。这些包被假定为一个小范围的通配符,如果它们与给定的包名称不匹配,则安装匹配项。 如果名称以 @ 字符开头,则其他名称将用于传递给命令,即 groupinstall。如果名称是文件,则安装行为类似于 localinstall。如果名称不匹配任何包,则搜索包的 “provides”。
注意:通配符将匹配文件列表的多个包。- update(更新)
如果没有指定包,则更新标签将更新所有当前安装的包。如果指定了多个包或包通配符,YUM 将仅更新指定的包。YUM 将确保在更新任何包时满足每个依赖项。如果描述的通配符或包与当前未安装的包匹配,则更新标签不会安装它们。 更新适用于文件列表、provides、文件和组,类似于命令 “install”。如果标志,即 --obsoletes 可用或主 obsolete 配置选项为 true,yum 将在计算中添加包 obsolete。这使得它更适合分发版本修改。 - check-update
可以实现它,以便我们可以在不交互式执行的情况下知道我们的机器是否有需要使用的更新。如果存在可更新的包,它返回 100 的退出值。它还以列表格式返回要更新的 pkgs 列表。如果没有包可更新,它返回 0 值。如果出现错误,它返回 1 值。此外,在详细模式下执行会显示 obsoletes。 - upgrade
它与命令相同,即带有平面集 --obsoletes 的更新。 - erase 或 remove
它用于通过系统删除指定的包,并删除依赖于正在删除的包的包。remove 标签适用于文件列表、provides、文件和组,类似于命令 “install”。 - list
它用于列出有关现有包的信息。 - whatprovides 或 provides
它用于找出哪些包提供了某些文件或功能。只需使用 file-glob-syntax 通配符或特定名称来列出已安装或可用的提供该文件或功能的包。 - search
它用于查找与 rpm 的包、摘要和描述名称字段中的字符串相同的包。这有助于查找我们不知道其名称但知道其一些相关单词的包。 - info
它用于列出有关现有包的摘要和描述信息。 - clean
它用于清理随着时间在 yum 缓存目录中累积的几样东西。 - makecache
它用于为当前激活的 yum 存储库创建和下载可用的元数据。 - groupinstall
它用于安装指定类型的组内的每个单独包。配置选项,即 group-package-types 描述了将安装的类型。 - groupupdate
对于 groupinstall,它只是一个别名,它将执行正确的事情,因为 “yum update X” 和 “yum install X” 命令执行类似的事情。其中 X 已经安装。 - grouplist
它用于列出所有 yum 存储库中的现有组。如果每个必要的包都已安装,或者如果组没有任何必要的包,则如果安装了任何默认或可选包,则认为组为 “已安装”。此外,可选参数 “hidden” 将列出被认为不 “用户可见” 的组。如果传递 -v 选项以启用详细模式,则显示 groupid。 - shell
它用于进入 “yum shell”,如果指定了文件名,则文件内容将在 yum shell 模式下运行。 - resolvedep
它用于列出提供指定依赖项的包,每个依赖项最多列出一个包。 - localinstall
它用于安装一组本地 rpm 文件。如果需要,将使用启用的存储库来解决依赖项。
注意:如果提供了文件名,则 install 命令将执行本地安装。- localupdate
它用于通过描述本地 rpm 文件来更新系统。将只安装描述的 rpm 文件,其以前的版本已安装,其他描述的包将被避免。如果需要,将使用启用的存储库来解决依赖项。
注意:如果提供了文件名,则 update 命令将执行本地安装。- reinstall
它将重新安装版本相同的包。像内核一样,它不适用于 “installonly” 包。reinstall 标签适用于文件列表、provides、文件和组,类似于 “install” 命令。 - downgrade
它将尝试将包从当前安装的版本降级到较旧的最高版本(或描述的版本)。像内核一样,它不适用于 “installonly” 包。downgrade 标签适用于文件列表、provides、文件和组,类似于 “install” 命令。 - repolist
它生成配置的存储库列表。默认是列出每个启用的存储库。如果传递 -v 选项,则在详细模式下会列出更多详细信息。 - deplist
它为每个依赖项以及提供这些依赖项的包生成一个列表。 - help
它为每个命令生成帮助,或者如果给定命令名称,则会显示该特定命令的帮助。
YUM 的通用选项大多数命令行选项都可以通过配置文件进行修复。描述表示要修复的基本配置选项。 - --help, -h
它显示帮助消息并退出。 - -c [配置文件]
它指定冲突文件的位置。它可以接受本地文件、ftp url 和 http 路径。 - -y
它假设对将要提出的问题的答案是肯定的。配置选项是 assumeyes。 - --quiet, -q
它在没有输出的情况下执行。 重要: 我们可能希望同时应用 -y 选项。 - -d [数字]
它将调试级别设置为一个数字。它减少或增加打印内容的数量。其实际范围是 0-10,配置选项是 debuglevel。 - --verbose, -v
它执行时有几个调试输出。 - -e [数字]
它将错误级别设置为一个数字。其实际范围是 0-10。0 定义它只打印我们必须知道的严重错误。1 打印所有错误,甚至那些不太重要的错误。1+ 打印更多错误。配置选项是 errorlevel。 - -R [时间(分钟)]
它设置 yum 在执行命令之前等待的最长时间。 - -C
它告诉 yum 完全从缓存运行。除非它必须执行请求的操作,否则它不会更新或下载任何头文件。 - --showduplicates
它不会将包限制在搜索命令、列表和信息中的当前版本。 - --version
它显示 yum 的版本号并退出。 - --installroot=[根]
它描述了一个替代的 installroot。 - --enablerepo=repoidglob
它通过 glob 或 id 启用已在配置文件中通过 enabled=0 选项禁用的特定存储库。配置选项是 enabled。 - --disablerepo=repoidglob
它通过 glob 或 id 禁用特定存储库。配置选项是 enabled。 - --obsoletes
它只影响更新。它启用 yum 的 obsoletes 处理逻辑。配置选项是 obsolete。 - --exclude, -x=package
它通过 glob 或名称从每个存储库的更新中排除特定包。配置选项是 exclude。 - --color=[always|auto|never]
它根据输出终端自动显示颜色输出,从不或总是。配置选项是 color。
注意:如果启用了颜色,某些命令将稍微多做一些工作。- --disableplugin=plugin
它执行时禁用一个或多个插件。参数是一个逗号分隔的通配符列表,用于匹配插件的名称。 - --noplugins
它在禁用所有插件的情况下执行。配置选项是 plugins。 - --nogpgcheck
它在禁用 gpg 签名检查的情况下执行。配置选项是 gpgcheck。 - --skip-broken
它通过从事务中删除导致问题的包来解决 depsolve 问题。配置选项是 skip_broken。 - --tolerant, -t
目前,此选项不起作用。
在 Ubuntu 中安装 YUM步骤 1 - 更新系统 我们需要执行更新命令以获取最新的包信息并更新包存储库
 步骤 2 - 安装 YUM 我们需要执行安装命令以快速安装包及其依赖项

|