目录
[1. yum (dnf ------Dandified yum)概述](#1. yum (dnf ——Dandified yum)概述)
[2. yum( dnf ) 命令](#2. yum( dnf ) 命令)
[2.1 通用选项](#2.1 通用选项)
[2.2 yum(dnf)命令概述](#2.2 yum(dnf)命令概述)
[2.3 插件和yum-utils插件](#2.3 插件和yum-utils插件)
1. yum (dnf ------Dandified yum)概述
yum(Yellowdog Updater Modified)( Yellowdog 更新修改版 )(注:使用时使用小写 yum) 是一个用于管理 RPM(Redhat Package Management) 软件包的系统,涵盖了软件包的安装、更新、移除及维护等功能 ,并能自动处理软件包之间的依赖关系 。yum 衍生自 yup(Y ellow dog Up dater------YUP),后者是为 Yellow Dog Linux(一种基于 RPM 的 PowerPC 发行版)编写的更新系统,现在它又有一个别名 dnf ( Dandified yum ------ 简称 dnf**,这个简称有点莫名其妙,无助于记忆)。(注:** Yellow Dog Linux是一款已停止开发的免费开源操作系统,专为基于多核处理器架构的高性能计算而设计,重点支持 GPU 系统及采用 POWER7 处理器的计算机 。其最初的开发商是 Terra Soft Solutions,该公司于 2008 年 10 月被 Fixstars 收购。Yellow Dog Linux 于 1999 年春季首次发布,适用于基于 PowerPC 架构的 Apple Macintosh 计算机。其最后一个版本 Yellow Dog Linux 7 于 2012 年 8 月 6 日发布。著名的 Linux 软件包管理器 YUM 便是得名于 Yellow Dog Linux;YUM 源自 YDL 的 YUP(Yellowdog Updater),全称为"Yellowdog Updater, Modified"(Yellowdog 更新器修改版 )。Yum 会将软件包头信息下载到系统中的某个目录,并利用这些信息来决定后续的操作步骤。 Yum 从服务器上的软件包集合(即"软件仓库"或 repository**)** 中获取这些头信息以及 RPM 软件包本身。
软件仓库由一组 RPM 软件包及其包头信息组成,这些文件存储在可通过 FTP 、 HTTP 、 NFS 服务器或本地文件系统访问的服务器上 。单台服务器可以包含一个或多个软件仓库;软件仓库通常会在多台服务器上进行镜像,你也可以配置 yum 以使用多个软件仓库。当这些文件被下载到你的系统时,包头和软件包文件会保存在 /var/cache/yum 目录下。
/etc/yum.conf 配置文件用于自定义 yum 的设置。该文件包含两类配置段:第一类是 main 段,用于设定 yum 运行时的默认配置;紧随其后的是 server 段,其中的每个段都根据其指定的软件仓库进行命名。例如,对于 Fedora,可能会有用于基础 Fedora 仓库的 base 段,以及用于开发版仓库的 development 段。
各个软件源配置段也可以分别存放在 /etc/yum.repos.d 目录下的独立文件中。yum 附带了一个默认的 yum.conf 文件,你可以直接使用它,也可以将其作为基础,在此之上添加额外的软件源。
2 . yum( dnf ) 命令
yum 命令是一个用于更新基于 RPM 的软件包的自动化系统,主要应用于 Fedora 和 Red Hat Enterprise Linux。Yum 能够自动安装、升级和移除软件包。除了处理单个软件包或软件包列表外,yum 还可以一次性对整组软件包进行操作。
运行 yum 时,它首先会更新缓存(除非使用 -C 选项指定不更新),随后执行请求的操作。
yum 命令之格式为:
yum options command *package*...
(说明:\[\] 号表示可选参数 。 )
首先指定通用选项 ,接着是告知 yum 具体操作的命令 ,随后通常跟有一个或多个软件包的列表。除使用 --help、-h 和 --version 选项外,必须指定命令。
软件包名称可以通过名称、架构、版本和发布号的各种组合来指定。例如,你可以将 bash 软件包称为 bash、bash.x86_64、bash-3.2、bash-3.2-30 或 bash-3.2-30.fc10.x86_64。
2 .1 通用选项
以下通用选项可在命令行中设置。对于那些也可以在 yum.conf 配置文件 main 部分中设置的选项,此处列出了相应的配置选项名称。
-c** config-file** ------ 指定 yum 配置文件所在的位置。该文件既可以是本地文件路径,也可以是 HTTP 或 FTP URL。默认值为 /etc/yum.conf。
-C(可以看成 Cache 之首字母) ------ 完全从本地缓存运行。除非为完成请求的操作所必需,否则不要下载或更新标头(headers)。
-d ** num**(可以看成debug之首字母)------将调试级别设置为 num( 通常为 0 到 10 之间的数字),以指定打印多少调试信息。该配置选项为 debuglevel。
--disableexcludes= option------ 禁用 yum.conf 中定义的排除项。可选参数包括:all(禁用所有排除项)、main(仅禁用 yum.conf 中 main 部分定义的排除项)或 repoid(禁用针对指定软件源定义的排除项)。
--disableplugin=plugin ------ 在禁用指定插件(plugins)的情况下运行,其中 plugin 是以逗号分隔的插件列表。
--disablerepo=repoid ------ 禁用由 repoid 指定的软件仓库,以便 yum 在本次操作中不使用它。该配置选项处于启用状态。
-e num(e可看成 error 之首字母) ------ 将错误级别设置为 num(num 为数值,通常在 0 到 10 之间)。如果值为 0,则仅输出严重错误;如果值为 1,则输出所有错误。若值大于 1,则会输出更多类型的错误(如有)。对应的配置选项为 errorlevel。
-enablerepo=repoid ------ 启用配置文件中标记为禁用(enable=0)的指定软件仓库,从而允许在本次操作中使用该仓库。该配置选项现已启用。
-h command, --help command ------ 显示帮助信息并退出。若指定了命令,则显示该命令的帮助信息。
--installroot =root ------ 指定用于安装软件包的另一个根目录(相对于默认而言)。所有软件包都将相对于该根目录进行安装。对应的配置选项为 installroot。
--nogpgcheck ------ 禁用 GPG 签名检查。该配置选项为 gpgcheck。
--noplugins **------**禁用所有插件。对应的配置选项是 plugins。
--obsoletes **------**启用"废弃包"处理逻辑,即考虑仓库中被其他软件包废弃的软件包。该选项仅在执行 yum update 命令时有效。对应的配置选项为 obsoletes。
-q , --quiet **------**运行但不产生输出。另见 -y。
-Rminutes ------ 设置 yum 在执行命令前等待的最长时间(以分钟为单位)。
--showduplicates **------**对于 info、list 和 search 命令,显示所有匹配的软件包,而不仅仅是最新版本。
--skipbroken **------**如果 yum 在事务处理过程中发现依赖关系问题,可以通过移除导致问题的软件包来解决。相关的配置选项是 skip_broken。
-t , --tolerant **------**目前该选项不起作用。它最初的设计意图是允许 yum 在命令行出现软件包错误时继续运行(即保持容错性)。该配置选项即为 tolerant(容错)。
-v , --verbose ( verbose 本意为"冗余"之意,调试信息相对于程序而言是冗余信息**)------ 显示调试信息。**
--version **------**显示 yum 之版本信息并退出。
-x package(前述 e 已简记作他用,所以使用exclude之第二字母 x 作简记)**, --exclude=**package ------ 将指定软件包从所有软件源的更新中排除。软件包既可以指定为具体名称,也可以使用通配符(glob)指定。对应的配置选项为 exclude。
-y(y es**)** **------**假设对任何问题的回答均为"yes"。该配置选项为 assumeyes。
2 .2 yum(dnf)命令概述
此处列出了各项 yum 命令。
check-update check-update
检查是否有可用更新,且无需以交互方式运行 yum。如果有可用的软件包更新,则返回退出码 100 并列出相关软件包;如果没有更新,则返回 0;若发生错误,则返回 1。
clean cleanoptions
清理 yum 缓存目录。
选项:
all **------**清理全部: 头文件、包、逾数据(metadata) 、和缓存。
dbcache **------**清除 sqlite 数据库缓存,强制 yum 在其下次运行时重新创建该数据库。
headers **------**移除所有头文件,强制 yum 在其下次运行时下载新头文件。
metadata **------**移除逾数据文件,这些逾数据文件维护了关于包的信息(如包名、文件大小、描述、依赖关系、等),强制 yum 在其下次运行时重新下载。
packages **------**从系统移除缓存包。
deplist deplist packages
为指定的包生成一个依赖列表,包括哪些软件包满足依赖关系。
groupinfo groupinfo groups
同 info, 但基于包分组而不是单个包。
groupinstall groupinstall groups
groupupdate groups
同 install, 但基于包分组而不是单个包。
grouplist grouplist
将已安装和可用组的列表输出到标准输出。你可以将这些组作为其他组命令的输入参数,组名用引号括起来。
groupremove groupremove groups
同 remove, 但基于包分组而不是单个包。
help help *command*
显示指定命令的帮助信息, 或若无指定命令,则显示全部命令的帮助信息。
info info *options* *packages*
显示版本信息, 摘要信息、和每一个包的描述信息(或若无指定包信息,则显示所有包信息)。对于选项描述,见 list命令。
install install packages
安装一个或多个软件包的最新版本,并确保满足所有依赖关系。如果没有软件包与指定的名称完全匹配,该名称将被视为 shell 通配符模式,系统会安装所有匹配的软件包。
list list *options* *packages*
显示符合软件包规范且已安装或可供安装的软件包列表。
选项说明:
all **------**列出所有已安装或可用的软件包。
available **------**列出仓库中可供安装的软件包。
extras **------**列出系统中那些在配置文件指定的任何软件源中均不可用的软件包。
installed ------ 列出已安装的软件包。
obsoletes **------**列出已安装的软件包,这些软件包已被配置文件中任一软件源内的任意软件包废弃。
recent **------**列出配置文件中任意软件源内最近新增的软件包。
updates **------**列出有可用更新的软件包。
localinstall localinstall packages
安装位于本地系统上的指定软件包,而不是从软件仓库下载它们。
localupdate localupdate packages
更新位于本地系统上的指定软件包,而不是从软件仓库下载它们。
makecache makecache
从仓库下载并缓存逾数据文件。缓存构建完成后,你可以使用 -C 选项,直接利用缓存来运行那些依赖元数据的命令(包括 check-update、info、list、provides 和 search)。
provides provides feature1 *feature2*...
whatprovides feature1 *feature2*...
列出提供指定功能的可用或已安装软件包。指定功能时可以使用名称,也可以使用文件通配符(glob)语法的通配符;此外,还支持使用 Perl 或 Python 正则表达式。
reinstall reinstall package1 *package2*...
重新安装指定的软件包。这些软件包必须已存在于系统中。
remove remove package1 *package2*...
erasepackage1 *package2*...
从系统中移除指定的软件包。同时移除任何依赖于这些指定软件包的软件包。
repolist repolist *option*
生成已配置仓库的列表。若不指定选项或指定 all,则列出所有仓库;使用 disabled 选项可列出已禁用的仓库,使用 enabled 选项可列出已启用的仓库。
resolvedep resolvedep dep1 *dep2*...
列出提供指定依赖项的软件包。
search search string1 *string2*...
查找在描述、摘要、打包者或软件包名称字段中匹配指定字符串的软件包。这些字符串可以使用 Perl 或 Python 正则表达式。当你不知道软件包名称时,此功能非常有用。
shell shell *filename*
运行交互式 yum shell,允许在单次 yum 执行过程中运行多条命令。可以指定一个包含待执行命令的文件。
update update *packages*
若未指定具体软件包,则更新所有已安装的软件包;否则,仅更新指定的软件包。无论哪种情况,yum 都会确保满足所有依赖关系。如果未找到匹配的软件包,系统会将指定的名称视为 shell 通配符模式,并安装所有匹配的软件包。
带上 --obsoletes 选项, yum在其计算中会包含废弃包。
upgrade upgrade *packages*
相当于 update --obsoletes.
2 .3 插件和 yum-utils插件
你可以安装插件来扩展 yum 的功能。这些插件是 Python 程序,安装在/etc/yum.conf 文件中 pluginpath 选项所指定的目录下。此外,若要启用插件,需将 /etc/yum.conf 中的 plugins 选项设置为 1。
yum-utils 就是这样一套插件,它包含了一系列用于管理软件包和软件仓库的工具。下文简要介绍了其中的各个工具;如需了解某个工具的更多信息,可在运行该工具时使用 -h 或 --help 选项。
debuginfo-install ------ 安装 debuginfo包, 其包含程序的调试信息。
package-cleanup **------**清理包, 处理重复项、孤立软件包及依赖关系问题。
repoclosure **------**读取一个或多个仓库的元数据,检查依赖关系,并显示所有未解决依赖关系的列表。
repodiff **------**比较两个或多个软件仓库,并列出新增、移除或变更的软件包。
repo-graph ------ 以 dot 格式显示完整的软件包依赖列表**。**
repomanage **------**管理 RPM 软件包目录,并返回该目录中最新或最旧的软件包列表。
repoquery **------**查询 yum 软件源以获取更多信息 。
repo-rss ------ 从一个或多个仓库生成 RSS 订阅源**。**
reposync **------**将远程仓库同步到本地目录,并使用 yum 获取软件包。
repotrack **------**追踪软件包及其依赖项,并进行下载。
yum-builddep **------**安装构建指定软件包所需的缺失依赖项。
yum-complete-transaction **------**查找未完成或已中止的交易,并尝试完成它们。
yumdownloader **------**从 yum 仓库下载指定软件包的二进制包和源码包。