名称
yum - 黄狗更新器,修改版
概要
yum 【选项】 【命令】 【软件包……】
描述
yum 是一个交互性的,基于 rpm 的,软件包管理器。通过" repository(软件库)"的元数据,它能够自动完成系统更新,包括依赖性分析与过时包处理。它也能够新软件包的安装、旧软件包的卸载,还能完成对已安装的 和/或 可安装的软件包的查询,以及其他 命令/服务 (见下)。 yum 与其他高级软件包管理器(比如 apt-get 与 smart)是相似的。
有许多 yum 代码的图形界面,近来更多的图形界面开发工作在 PackageKit 与 gnome-packagekit 中。
命令为如下之一:
* install package1 [package2] [...] (安装 软件包1 【软件包2】 【……】)
* update [package1] [package2] [...] (更新 【软件包1】 【软件包2】 【……】)
* check-update (检查更新)
* upgrade [package1] [package2] [...] (升级 【软件包1】 【软件包2】【……】)
* distribution-synchronization [package1] [package2] [...] (发行版同步 【软件包1】 【软件包2】 【……】)
* remove | erase package1 [package2] [...] (卸载|清除 软件包1 【软件包2】 【……】)
* list [...] (列表 【……】)
* info [...] (信息 【……】)
* provides | whatprovides feature1 [feature2] [...] (提供|何者提供 特性1 【特性2】 【……】)
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] (清理 【软件包|元数据|过期缓存|rpm数据库|插件|全部】)
* makecache (生成缓存)
* groupinstall group1 [group2] [...] (安装组 组1 【组2】 【……】)
* groupupdate group1 [group2] [...] (更新组 组1 【组2】 【……】)
* grouplist [hidden] [groupwildcard] [...] (列举组 【隐藏的】 【组通配式】 【……】)
* groupremove group1 [group2] [...] (卸载组 组1 【组2】 【……】)
* groupinfo group1 [...] (组信息 组1 【组2】 【……】)
* search string1 [string2] [...] (搜索 字符串1 【字符串2】 【……】)
* shell [filename] (外壳 【文件名】)
* resolvedep dep1 [dep2] [...] (推解依赖 依赖1 【依赖2】 【……】)
* localinstall rpmfile1 [rpmfile2] [...] (本地安装 rpm文件1 【rpm文件2】 【……】
(maintained for legacy reasons only - use install) 保留只为兼容缘故-请用安装)
* localupdate rpmfile1 [rpmfile2] [...] (本地更新 rpm文件1 【rpm文件2】【……】
(maintained for legacy reasons only - use update) 保留只为兼容缘故-请用更新)
* reinstall package1 [package2] [...] (重装 软件包1 【软件包2】 【……】)
* downgrade package1 [package2] [...] (降级 软件包1 【软件包2】 【……】)
* deplist package1 [package2] [...] (依赖列表 软件包1 【软件包2】)
* repolist [all|enabled|disabled] (仓库列表 【全部|启用的|禁用的】)
* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ] (版本 【全部|安装的|可用的|某组的|非某组的|组列表|组信息】)
* history [info|list|packages-list|summary|redo|undo|new|addon-info] (历史 【信息|列表|软件包列表|摘要|重做|撤销|附加组件信息】)
* check (检查)
* help [command] (帮助 【命令】)
必须给出上面命令之一,除非使用 --help 或 -h 选项。
在所有操作中要求软件库正确配置。
install (安装)
用来安装一个软件包或软件组的最新版本,保证满足所有依赖关系。(更多见指定软件包的名字)如果所给名字不与任何软件包匹配,则将被视为通配式 ,然后所有匹配项将被安装。如果名字以 @ 字母开始,则名字其余部分将如同传递给 groupinstall (组安装) 命令。如果名字以 - 字符开始,则在执行中进行搜索,匹配项将取出。如果名字为文件,则 install 将像 localinstall 那样工作。如果名字不匹配软件包,则将其作为文件列表去搜索"提供"它的软件包。(如 "_sqlitecache.so()(64bit)" 或 "/usr/bin/yum")。还请注意对于文件列表的情况,通配符将匹配多个软件包。
update (更新)
如果不带任何软件包, update 将更新所有当前安装的软件包。如果指定了一个或多个软件包或通配式的软件包, Yum 将只更新所列软件包。更新软件包的过程中,yum 将保证满足所有依赖关系。(更多见指定软件包的名字)如果软件包或通配式所匹配的在当前并未安装,那么 update 将不会安装他们。如同 "install" 命令一样, update 操作于组,文件,提供,以及文件列表。
如果主过时配置选项为真(默认情况)或者有 --obsoletes (过时) 旗标, yum 将在其计算中包括过时软件包——这适用于发布版本变化,比如升级 *nix 8.0 到 *nix 9.0。
check-update (检查更新)
此命令使你能以非交互方式的得知你的机器是否有需要应用的更新。如果有可用更新软件包返回的退出值为100。同时以列表形式返回需更新的软件包列表。如果没有可用更新返回0。如果有错误出现返回1。在详情模式下也显示过时软件包。
upgrade (升级)
与带 --obsoletes (过时)旗标的 update 命令相同,详见 update 。
distributionn-synchronaization 或 distro-sync (同步发布版本)
以最新的可用软件包同步已安装软件,在此过程中将涉及过时标记,升级或降级。在"一般"情况下,将与 update 命令作用相同。但如果你已安装某个名为 FOO 版本为4的软件,而最新可用版本只是3,该命令将会将 FOO 版本降级为3。
remove (卸载)或 erase (清除)
用来卸载系统中指定软件包,同时卸载依赖这些软件包的软件包。remove 操作于组,文件,提供,以及文件列表,与 install 命令相同。(更多内容见 指定软件包的名字 )
注意,默认情况下,"yum" 是包含在受保护的设置中的。这使你不会意外卸载 yum 自身。
list (列表)
用列表来显示可用软件包的各种信息;更完整细节见下面 List Options (选项 列表)一节。
provides (提供) 或 whatprovides (何者提供)
用来查看那个软件包提供对应某特性,或某文件。使用指定名字或文件、通配式来得到可用软件包的列表,或者安装之。
search (搜索)
当你对所需软件包有所了解但仍不能确定其名字的时候,使用此命令。默认情况下,将在软件包的名字与摘要中进行搜索,若"失败"则将尝试在描述与网址中进行搜索。
Yum 记录搜索结果的精确度,匹配更多项的软件包将出现在前面。
你可以通过指定 "all" (所有)作为其第一个参数来强制其在所有信息中进行搜索。
info (信息)
用列表来显示可用软件包的描述与摘要信息;其参数同见下面 List Options (选项 列表)一节。
clean (清理)
用来清理随时间流逝而逐渐在 yum 缓存目录中累积的各项内容。更完整信息见下面 Clean Options (选项 清理)一节。
makecache (生成缓存)
用来从当前可用的 yum 仓库中下载元数据并令之可用。
groupinstall (安装组)
用来安装一个组中的所有个别软件包,在给定的类型中的(这如同你取出所有软件包名,然后将之置于 "yum install" 命令之后)。
group_package_types (组软件包类型)配置选项指定了所要安装的类型。
groupupdate (更新组)
只是 groupinstall (安装组) 的别名,因为如果软件包/组 X 已安装,命令 "yum install X" 与 "yum update X" 所做的事情是相同的。
grouplist (列举组)
用来列举所有 yum 仓库中的可用组。所有必备软件包都已安装的组将显示为"已安装"。如果一个组没有必备软件包,那么只要有可选或默认软件包被安装,则组将显示为"已安装"。可选参数 "Hidden" (隐藏)会将那些没有标记为"用户可见"的组也列举出来。如果你加了 -v 选项以启用详情模式,会显示组 id 。
groupremove (卸载组)
用来卸载一个组中的所有软件包。与 groupinstall (安装组)不同,它将无视 group_package_types (组软件包类型)而卸载全部。需要指出的是,一个软件包可以属于不同的组,因此在 "groupinstall X Y" (安装组 X、Y)之后用 "groupremove" (卸载组 Y)得到的结果与 "groupinstall X" (安装组 X)是不同的。
groupinfo (组信息)
用来给出组的描述与软件包列表(以及这些软件包的标记类型)。注意,你可以用插件 yum-filter-data 与 yum-list-data 来用其他方式来 得到/使用 这些数据(比如那些组里用需要更新的软件包)。如果你加了 -v 选项以启用详情模式,包名将按照 已安装/可安装 进行匹配,类似于 list 命令。
shell (外壳)
用来进入 "yum shell" (yum 外壳)。如果指定了一个文件,则将以 yum外壳 模式来执行文件中的内容。更多见 yum-shell(8)。
resolvedep (推解依赖)
用来列举提供指定依赖的软件包,每个依赖最多列举一个软件包。
localinstall (本地安装)
用来安装本地 rpm 文件。如果要求的话,可以启用仓库来推解依赖关系。注意此 install 命令将执行本地安装,如果给出一个文件名的话。保留此选项只为兼容的缘故。
localupdate (本地更新)
用来通过指定本地 rpm 文件来更新系统。只有当已安装过旧版本,指定的 rpm 文件才会安装;其余的指定包都将被忽略。如果要求的话,可以启用仓库来推解依赖关系。注意,此 update 命令将执行本地更新,如果给出文件名的话。保留此选项只为兼容的缘故。
reinstall (重装)
将重新安装当前已安装的软件包的完全相同的版本。对于 "installonly" (只可安装)软件包无效,比如内核。像 "install" (安装)命令一样,reinstall (重装)操作于组,文件,提供以及文件列表。
downgrade (降级)
将试图把一个软件包从当前安装版本降级到之前的最高版本(或者指定的版本)。依赖推解器未必会参与过程,但如果你指定所有的软件包的话,它将有效工作(所有的简单情形都是可行的)。对于 "installonly" (只可安装)的软件包无效,比如内核。像 "install" (安装)命令一样,downgrade (降级)操作于组,文件,提供以及文件列表。
deplist (依赖列表)
生成对于给定软件包的所有依赖以及何软件包提供该依赖的列表。
repolist (仓库列表)
生成已配置仓库的列表。默认情形是列出所有已启用仓库。如果你加了 -v 来启用详情模式,将列出更多信息。如果第一个参数为 "enabled" (启用的) "disabled" (禁用的)或者 "all" (所有的),那么将列出对应类型的仓库。
你可以使用仓库的 id 或名字作为参数,或者用在使用时用通配符。然而如果 id 或名字严格匹配,那么即使它被禁用而你是在列举已启用仓库,它还是会出现。
在非详情模式,如果一个仓库有非本地的元链接数据与最新元数据,它将在第一列以一个星号(*)开始。对于非详情模式,将在最后一列现实仓库的软件包数目以及(如果用用户指定的排除)排除包的数目。
仓库列表的最后一个特别性质是,如果你在非详情模式,那么 yum 将忽略任何仓库错误,只输出它所得的信息(比如,"yum clean all";"yum -C repolist"将有所输出,即使包的 数目/其他 为零。)。
version (版本)
生成 rpmdb (rpm数据库)的"版本",以及已启用仓库的版本,如果 "all" (所有的)作为命令的第一个参数给出。你也可在 version-groups (版本组)配置文件中指定版本组。如果你使用 -v 已启用详情模式,将得到更多信息。利用排序后的软件包与 yumdb 中的条目的 checksum_type/checksum_data,计算其 sha1 hash 来得到版本。注意,此 rpmdb (rpm数据库)版本现在也在 yum 中大量使用(特别是在 yum 历史中)。
version (版本)命令不会显示软件包的"组",所以请使用如下子命令:
"version grouplist"(版本 组列表) - 列出定义的版本组。
"version groupinfo"(版本 组信息) - 得到一个或几个版本组组的全部软件列表。
"version installed"(版本 安装的) - 默认情形,只显示已安装软件包的版本信息。
"version available"(版本 可用的) - 只显示可用软件包的版本信息。
"version all" (版本 全部) - 现实已安装和可用的软件包的信息。
"version nogroups | no groups-*"(版本 非组的| 非某组的) - 只显示主要版本信息。
"version groups-*" (版本 某组) - 只显示组内的版本信息,如果根除更多参数则只现实这些组的数据。
history (历史)
history (历史)命令使用可以查看在过去的操作中发生的事情(假定有 history_record (历史记录)配置文件)。你可以用 info/list/summary (信息/列表/摘要)来查看发生的事;用 undo/redo (撤销/重做)依据信息而操作;用 new (新)来开始一个新的历史文件。
info/list/summary (信息/列表/摘要)命令以操作 id 或软件包或带通配符的软件包为参数,也可以没有参数。list (列表)命令可以加关键字 "all" (所有的)来列出所有操作。
undo/redo (撤销/重做)命令以操作 id 或关键字 last (最后)以及最后操作的偏移量(举个例子,如果你已作过250次操作, "last" 指第250次操作,而 "last-4" 指第246次操作)。
addon-info (附加组件信息)命令以操作 id 为参数;packages-list (包列表)命令以(带通配符)软件包为参数。
如果在诸操作中有并非十分顺利的情形,在 "history list" (历史 列表)命令的输出的 Alter (更改)一列会有额外的信息标注。packages-list (包列表)命令也会在最后一列显示这样的额外标注。
> - 操作完成后,rpmdb (rpm数据库)在 yum 之外被更改。
< - 操作发生前,rpmdb (rpm数据库)在 yum 之外被更改。
* - 操作在完成之前被中断。
# - 操作完成,但返回值非零。
E - 操作正常完成,但在操作中有 警告/错误 消息输出。
P - 操作正常完成,但在 rpmdb 中仍然存在问题。
s - 操作正常完成,但启用了 --skip-broken 选项,因而略过了一些软件包。
check (检查)
检查本地 rpmdb (rpm数据库),汇报任何所发现的问题。你可以在 check (检查)命令后加 "dependencies" (依赖)或"duplicates" (重复)参数,来限制检查所施行的范围(默认是包含两者的 "all" (全部))。
info (信息)命令能够以操作 id 的区间作为参数,形式为 "start..end" (起点..终点)。这样将显示一个归并后的历史,仿佛这个区间内的操作是同时进行的。
比如,"history info 1..4" 将归并最初4个操作,将它们显示为单一操作。
help (帮助)
生成帮助。或者是针对所有命令的;或者给出命令的名字,生成针对那个命令的帮助。
一般选项
大多数命令行选项可以也可通过配置文件进行设置。以下描述针对必要的配置选项。
-h, --help (帮助)
帮助;现实帮助信息然后退出。
-y, --assumeyes (假定同意)
以默认作同意;假定对于任何 "确认/拒绝" 的问题,都已"确认"作为回答。
配置选项:assumeyes (假定同意)
-c, --config=[config file] (配置 =【配置文件】)
指定配置文件的位置——可以是 HTTP 与 FTP 的网址,也可以是本地文件路径。
-v,--verbose (逐字,详尽)
运行时包含大量调试信息。
-q,--quiet (安静,无消息)
运行时无输出。注意,这时你很可能还想用 -y。
-d,--debuglevel=[number] (调试级别 =【数字】)
设置调试级别为【数字】——增加或减少打印消息的量。实际范围:0-10
配置选项:debuglevel (调试级别)
-e, --erroelevel=[number] (错误级别 =【数字】)
设置错误级别为【数字】。实际范围:0-10。10意味这只打印你必须知道的重大错误。1意味着打印所有错误,即使并不特别重要。1+意味着打印更多错误(如果错误存在的话)。-e 0 适用于 cron jobs(指由系统定期执行的任务).
配置选项:erroelevel (错误级别)
-rpmverbosity=[name] (rpm详情 =【名字】)
设置 rpm 小脚本的调试级别为【名字】。默认为 "info" (信息),其他的选择为:"critical"(重要),"emergency"(紧急),"error"(错误),"warn"(警告) 与 "debug"(调试)。
配置选项:rpmverbosity (rpm详情)
-R, --randomwait=[time in minutes] (随机等待=【以分钟表示的时间】)
设置 yum 在施行一个命令之前所等待的最长时间——它在此范围内随机变化。
-C, --cacheonly (仅用缓存)
告知 yum 完全依靠系统缓存运行——不去下载或更新任何头文件,除非不这样就不能完成所要求的任务。如果你以用户身份做此操作,yum 不会使用此用户的临时缓存,而是去使用系统缓存目录中的系统缓存。
--version (版本)
报告 yum 的版本号,并依照 history_record_packages (历史记录软件包)(可通过插件添加)安装软件包版本。
--showduplicates (显示重复)
不以 info (信息), list(列表) 和 search (搜索)命令中的最新版本限制软件包(这也会影响使用了 doPackageLists() API 的插件)。
--installroot=root (安装的根=【根】)
指定另外的安装根目录,所有软件包将相对于此目录而安装。
配置选项:installroot (安装根)
--enablerepo=repoidglob (启用仓库=【id 或 通配式】仓库)
以 id 或通配式启用指定的(在配置文件中以 "enabled=0" (启用=假)而禁用的)仓库。
配置选项:enabled (启用的)
--disablerepo=repoidglob (禁用仓库=【id 或 通配式】仓库)
以 id 或通配式禁用指定的仓库。
配置选项:enabled (启用的)
--obsoletes
此选项只对更新有影响,它启用 yum 的过时处理的逻辑。更多信息见上面的 update (更新)命令。
配置选项:obsoletes (过时)
-x, --exclude=package (排除 =【软件包】)
用名字或通配式排除一个指定软件包,更新时将不涉及此软件包,对所有仓库有效。
配置选项:exclude (排除)
--color=[always|auto|never] (颜色=总是|自动|绝不)
是否要有颜色的输出。自动(依赖于输出终端)、总是(用 ANSI 码)还是绝不。注意,有的命令——比如 list (列表) 和 info (信息)——在启用颜色后会有额外的任务。
配置选项:color (颜色)
--disableexcludes=[all|main|repoid] (禁用排除=全部|主|仓库 id)
禁用在你的配置文件中定义的排除。选项为下面三者之一:
all (全部) - 禁用所有排除
main (主) - 禁用 yum.conf 文件中在主部分定义的排除
repoid (仓库id)- 禁用对某一仓库定义的排除
--disableplugin=plugin (禁用插件=【插件】)
运行时禁用一个或多个插件,参数为由逗号分隔的去匹配插件名字的通配式。
--noplugins (无插件)
运行时禁用所有插件。
配置选项:plugins (插件)
--nogpgcheck (无gpg检查)
运行时禁用 GPG (GNU Privacy Guard, GNU隐卫)签名检查。
配置选项:gpgcheck
--skip-broken (略过破缺)
在推解依赖遇到问题时,只是卸载操作中产生问题的软件包。
配置选项:skip_broken
--releasever=version (系统版本=【版本】)
假装给定字串就是当前版本。与 --installroot (安装的根)一起使用十分有用。注意,若是仍是默认的上游缓存目录,即 /var/cache/yum, 使用这个选项将破坏你的缓存(你可以在缓存目录配置中使用 $releasever 来阻止这件事的发生)。
-t, --tolerant
此选项目前不做任何事。
--setopt=option=value (设置选项=【选项】=【值】)
设置 yum 配置或仓库文件中的任何配置选项。对于全局配置选项,使用: --setopt=option=value (设置选项=【选项】=【值】);对于仓库选项,使用: --setopt=repoid.option=value (设置选项=【仓库id.选项】=【值】)。
列表选项
下面是如何调用 yum 的列表模式的方法。注意,所有列表命令都包含软件包的版本信息。
输出
yum 列表的输出格式为:
name.arch [epoch:]version-release repo or @installed-from-repo
(名字.架构【纪念号】版本号-发行号 仓库 或 @安装自仓库 )
yum list [all | glob_exp1] [glob_exp2] [...] (yum 列表 【全部|正规通配式1】 【正规通配式2】 【……】)
列出所有可安装的和已安装的软件包。
yum list available [glob_exp1] [...] (yum 列表 可安装 【正规通配式1】 【……】)
列出 yum 仓库中所有可安装的软件包。
yum list aupdate [glob_exp1] [...] (yum 列表 可安装 【正规通配式1】 【……】)
列出 yum 仓库中所有可更新的软件包。
yum list installed [glob_exp1] [...] (yum 列表 已安装 【正规通配式1】 【……】)
列出参数指定的软件包。如果某个参数不匹配一个可用软件包,则被视作 shell 风格的通配串然后打印出其匹配项。
yum list extras [glob_exp1] [...] (yum 列表 额外 【正规通配式1】 【……】)
列出配置文件中的仓库里没有但在系统中却已然安装了的软件包。
yum list obsoletes [glob_exp1] [...] (yum 列表 过时 【正规通配式1】 【……】)
列出目前系统中已然安装但被某个配置文件中的仓库标以过时标志的软件包。
yum list recent (yum 列表 最近)
列出最近添加到仓库中的包。这往往并非有益,你真正想要的也许是用 yum 安全插件中的 "yum list-updateinfo new"(yum 更新信息列表 新)。
指定软件包的名字
软件包可以被安装、更新、卸载、列举、查询、等等,按照以下格式或者以下格式的通配式:
name (名字)
name.arch (名字.架构)
name-ver (名字-版本号)
name-ver-rel (名字-版本号-发行号)
name-ver-rel.arch (名字-版本号-发行号.架构)
name-epoch:ver-rel.arch (名字-纪念号:版本号-发行号.架构)
epoch:name-ver-rel.arch (纪念号:名字-版本号-发行号.架构)
举例: yum remove kernel-2.4.1-10.i686 (yum 卸载 内核-2.4.1-10.i686)
将卸载指定的 内核-版本号-发行号.架构。
再如: yum list available 'foo*' (yum 列举 可用 '傻*')
将列出所有匹配 '傻*' 的可安装软件包。(此处单引号将阻止你的 shell 展开此通配式)。
清理选项
下面是如何调用 yum 的清理模式的方法。注意,以下"所有文件"的含义是"当前启用仓库的所有文件"。如果你还要(临时地)清理某被禁用的仓库,你需要用 --enablerepo='*' (启用仓库=全部)选项。
yum clean expire-cache (yum 清理 过期缓存)
清除本地数据,如果每个仓库的元数据和镜像列表都已下载。这意味这你将为下次使用仓库而重新激活了它们的缓存。然而如果缓存本来就有效,并不会删除什么。
yum clean packages (yum 清理 软件包)
清除系统缓存中的软件包。注意,软件包下载之后是不会自动删除的。
yum clean headers (yum 清理 头文件)
清除所有头文件,防止 yum 作依赖推解时用到这些旧版本。
yum clean metadata (yum 清理 元数据)
清除所有 yum 用来计算远程软件包可用性的文件。用此选项将令 yum 在下次运行的时候下载所有元数据。
yum clean dbcache (yum 清理 数据缓存)
清除用来更快得到元数据的 sqlite 缓存。用此选项将令 yum 在下次运行的时候下载 sqlite 元数据,或者重建 sqlite 元数据,如果用很老的仓库的话。
yum clean rpmdb (yum 清理 rpm数据库)
清除本地 rpm数据库 的所有缓存数据。
yum clean plugins (yum 清理 插件)
使启用插件清除它们的缓存数据。
yum clean all (yum 清理 全部)
执行以上所有命令。
插件
yum 可以通过使用插件来扩展功能。插件是一个 Python ".py" 文件。但需要安装在由 yum.conf 文件中 pluginpath (插件路径)选项中所指定的某个目录中。一个插件要工作,必须满足以下条件:
1. 插件模块文件必须安装在如上所述的插件路径中。
2. /etc/yum.conf 中的全局插件选项必须设置为 "1"。
3. 插件的配置文件必须存在于 /etc/yum/plugin-conf.d/<plugin_name>.conf (/等等/yum/插件配置目录/【插件名字】.配置),此文件的启用设定必须设为 "1"。这样一个配置文件的最小内容为:
[main] 【主】
enabled = 1 启用 = 真
插件相关配置选项的更多内容见手页 yum.conf(5)。
文件
/etc/yum.conf /等等/yum.配置
/etc/yum/version-groups.conf /等等/yum/版本-组.配置
/etc/yum.repos.d/ /等等/yum.仓库.目录/
/etc/yum/pluginconf.d/ /等等/yum/插件配置.目录/
/var/cache/yum/ /变动/缓存/yum/
参见
pkcon (1)
yum.conf (5)
yum-updatesd (8)
package-cleanup (1)
repoquery (1)
yum-complete-transaction (1)
yumdownloader (1)
yum-utils (1)
yum-security (8)
http://yum.baseurl.org/
http://yum.baseurl.org/wiki/Faq
yum search yum
作者
见此程式包含的作者文件。
BUGS(虫虫)
这里当然没有任何虫虫,但若你发现,请先咨询上已提及的FAQ,然后电邮至: yum@lists.baseurl.org 或提交到 bugzilla。
Seth Vidal yum(8)
没有评论:
发表评论