11.3 使用yum
当杜克大学的开发人员在基于RPM的分发版上遇到“依赖性地狱”时,他们打算解决这个问题。他们同样看到了本章前面讲到的依赖性消息。他们想利用这些消息自动发现和安装那些所依赖的程序包,而不用我们所讨论的非常详细的rpm命令。
此前开发人员已改写了来自Debian Linux的apt程序包管理器。具体情况是,Conectiva(现在的Mandriva)Linux的开发人员把apt移植到这个基于RPM的分发版上。但杜克大学的开发人员没有采用apt,他们把目光投向了Yellowdog Updater。这个被称为yup的工具最初是为Yellowdog Linux开发的。但它效率不高。杜克大学的开发人员找到了一个只从每个RPM程序包剥离头文件的方法,因此效率大为提高。因为该工具是yup的修改版本(因为GPL的缘故,这是允许的),所以他们把此工具叫做Yellowdog Updater, Modified,或者简单地叫做yum。
Red Hat的总部在北卡罗莱纳州立大学的校园内。杜克大学距离它大约20英里。他们为Red Hat和Fedora Core改写yum也是很自然的事情。
yum配置文件从/etc/yum.conf开始,它指向/etc/yum.repos.d目录中与各个信息库关联的文件。我们将详细分析每个文件的默认版本,包括对文件的一些自定义操作。
11.3.1 /etc/yum.conf配置文件
第一个yum配置文件是/etc/yum.conf。我们将分析该文件的默认版本。首先,[main]指令是必需的,没有它yum就无法工作。
[main]
cachedir指令指定头文件、程序包和yum数据库信息下载的位置:
cachedir=/var/cache/yum
debuglevel指令指定调试信息的细节,如果有问题,可以提高级别:
debuglevel=2
logfile和pkgpolicy指令很直观。如果有问题,首先要看logfile。pkgpolicy指令保证更新实际下载了程序包的最新版本。Updates信息库中的很多程序包存在不同版本。distroverpkg指令用Fedora Core的当前版本指定/etc中的该文件:
tolerant指令允许yum在出现错误时继续运行,比如不需要更新的程序包。exactarch指令允许只更新具体的体系结构。例如,不允许从i386.rpm到i686.rpm的更新。obsolete指令支持在不同Fedora Core版本之间的升级。gpgcheck指令用于检查所选信息库的GPG密钥。plugins指令支持基于Python的插件,如在/usr/share/yum-cli目录中所列出的。
这5个指令的值非0即1。把指令设为0表示禁用该项。最后一个默认指令metadata_expire用于指定信息库数据库的有效期,单位为秒。
metadata_expire=1800
当运行yum命令时,它将从所选的信息库下载头文件数据库。根据上面的指令,如果在30分钟内再次运行yum,它不会再下载头文件数据库。
11.3.2 /etc/yum.repos.d/中的文件
该目录的默认版本中有7个文件。每个文件如表11-2所示关联一个前面讲过的信息库。
表11-2 /etc/yum.repos.d文件
文 件 |
信 息 库 |
fedora-core.repo |
指向Fedora Core主程序包 |
fedora-development.repo |
指向Development(Rawhide)信息库;不用于生产系统 |
fedora-extras.repo |
指向Fedora Extras信息库 |
fedora-extras-development.repo |
指向Fedora Extras的Development(Rawhide)信息库;不用于生产系统 |
fedora-legacy.repo |
在转变为遗留状态后,应用于Fedora Core Updates |
fedora-updates.repo |
指向Fedora Core Updates |
fedora-updates-testing.repo |
指向将传送至Fedora Core Updates的开发程序包;不用于生产系统 |
这些文件中的节模式是相同的。除了fedora-legacy.repo之外,每个文件都包括3节,对应主文件、调试程序包和源RPM。它们包括了以下列出的全部或大部分指令:
name 指定信息库的名称。多数情况下包括两个指令。$releasever指令使用/etc/yum.conf的distroverpkg指令。$basearch指令使用unmae -i识别基础的体系结构。
mirrorlist Fedora Core使用mirrorlist文件。默认设置连接世界上一个随机的信息库。
mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
为了尽量减少延迟,可将其改为在地理上较近的一个镜像。有关完整的列表,可参见http://fedora. redhat.com/download/mirrors/。例如,如果在美国东部,就检查fedora-core-5.us.east文件。如果认为这个镜像合适,则把指令修改为:
mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-5.us.east
或者可以使用一个或几个baseurl指令。
baseurl可以使用baseurl指令指向一个具体的信息库,甚至指向局域网上的一个信息库。为了使用mirrorlist,该指令默认是禁用的。当使用默认设置时,它会连接到美国中部的服务器:
baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
如果希望使用baseurl指令,那么要寻找并指定一个地理上较近的镜像。例如,如果位于加州的硅谷,可以使用圣琼斯州立大学的信息库:
baseurl=ftp://mirror.engr.sjsu.edu/pub/fedora/linux/core/$releasever/$basearch/os/
可以用多个baseurl指令指向不同的站点。或者,如果在局域网上配置了一个镜像,那么可以直接指向它。例如,如果通过NFS共享并在本地/inst目录上挂接了该信息库,baseurl指令可以像下面一样简单:
baseurl=file:///inst/
第23章将用更多的篇幅介绍本地信息库。
enabled enabled指令可以设置为0或1。如果设置为0,就不使用对应的mirrorlist或baseurl指令。
gpgcheck gpgcheck指令可以设置为0或1。如果设置为1,yum将根据GPG密钥检查程序包。
gpgkey gpgkey指令可以设置为0或1。如果设置为1,它将在一个文件(如RPM-GPG-KEY-fedora)中检查GPG密钥的URL。
该目录中的每个文件分为3节,对应普通RPM、调试RPM和源RPM。
11.3.3 分析fedora-core.repo
利用/etc/yum.repos.d目录中的fedora-core.repo文件,才可以访问Fedora Core信息库。从图11-4中可以看出,该文件指向3个不同的URL,分别对应普通程序包、调试RPM和源RPM。
图11-4 fedora-core.repo文件
与普通RPM关联的程序包是稳定的,可以使用从安装CD或DVD复制的文件。如果使用mirrorlist指令,使用位于http://fedora.redhat.com/download/mirrors/上的fedora-core-5.*文件。注意国家代码扩展名,例如,如果在英国,可以根据现有的fedora-core-4.UK创建自己的fedora-core-5.uk。
从Fedora Core 5 DVD把文件(包括.disinfo)复制到本地的/inst目录,该目录链接到/var/www/html。可以用下面的指令从网络上的其他Fedora Core 5系统定向baseurl指令:
baseurl=http://fedoracore64/inst/
假设网络中的连接是可靠的,那么不需要任何其他baseurl指令。一旦发布一个Fedora Core版本,它就是最后的,所有的修改都针对其他信息库,如Updates和Extras。
11.3.4 理解fedora-updates.repo
Fedora Core Updates信息库是关键的目录。它包括指向程序包更新的连接,保证能得到最新的安全补丁、bug解决办法和经过测试的特性。从图11-5中可以看出,它指向3个不同的URL,分别对应普通程序包、调试RPM和源RPM。
图11-5 fedora-updates.repo文件
如果设置mirrorlist指令,使用位于http://fedora.redhat.com/download/mirrors/的fedora-core-5.*文件。注意国家代码扩展名。例如,如果在日本,可以使用updates-released-fc5.jp。虽然这些文件在编写本书时还没有针对具体国家的版本,但你仍能够根据其所在国家或地区的镜像创建自己本地版本的fedora-core-5文件。
11.3.5 使用fedora-extras.repo
Fedora Core Extras信息库包括指向非关键程序包的连接。它包括指向程序包更新的连接,保证用户能得到最新的安全性补丁、bug解决办法和经过测试的特性。从图11-6中可以看出,它指向3个不同的URL,分别对应普通程序包、调试RPM和源RPM。
图11-6 fedora-extras.repo
如果使用自己的mirrorlist指令,需要自己创建镜像。与Core和Updates不同的是,该文件没有根据地理位置进行自定义的版本。若想禁止对该信息库的访问,只要在文件的所有节中设置下面的指令即可:
enabled=0
11.3.6 决定是否应激活fedora-development.repo
不要激活该信息库,除非需要访问开发程序包。该信息库是为Fedora Core的测试版发布启用的。
如果使用mirrorlist指令,检查位于http://fedora.redhat.com/download/mirrors/上的fedora-core- rawhide.*文件。你也许注意到了,该信息库(或者Updates-Testing或Extras Development信息库)没有版本号。Fedora Core开发仍是独立于具体发布版本的。
注意国家代码扩展名。例如,如果在捷克,就使用fedora-core-rawhide.cz。如果想禁止对该信息库的访问,则可在该文件的所有节中均设置下列指令:
enabled=0
11.3.7 决定是否应激活fedora-updates-testing.repo
不要激活该信息库,除非非常需要更新。前面说过,这些是即将包括在Updates信息库中的测试程序包。
如果使用mirrorlist指令,可检查位于http://fedora.redhat.com/download/mirrors/上的updates-testing.*文件。注意国家代码扩展名。例如,如果在西班牙,就使用updates-testing.es。如果想禁止对该信息库的访问,则可在该文件的所有节中均设置下列指令:
enabled=0
11.3.8 决定是否应激活fedora-extras-development.repo
不要激活该信息库,除非需要访问与Extras信息库关联的开发程序包。
如果使用mirrorlist指令,则需要自己创建镜像。与其他一些信息库不同的是,该文件没有根据地理位置进行自定义的版本。若想禁止对该信息库的访问,只要在文件的所有节中设置下面的指令即可:
enabled=0
11.3.9 激活fedora-legacy.repo的时机
fedora-legacy.repo文件与众不同。首先,除非使用的Fedora Core版本成为Fedora Core Legacy项目的一部分,否则该文件没有什么用处。按目前的约定,Fedora Core 5将在Fedora Core 7的第2次测试版发布期间成为Fedora Core Legacy项目的一部分。该文件最初属于Fedora Core 5的fedora-release RPM。
如果在Fedora Core成为遗留系统之后,仍在使用它,在该文件的[legacy-updates]节中设置enabled=1。可以看出,它使用mirrorlist指令。在编写本书时,该指令只指向默认的http://fedoralegacy.org服务器。如果在Fedora Core 5成为遗留系统后仍是如此,就应该用适当的镜像创建自己的文件。
http://www.fedoralegacy.org/download/fedoralegacy-mirrors.php上提供了可用镜像的完整列表。
11.3.10 第三方信息库
还有不少很出色的为Fedora Core开发的第三方信息库。当需要对无线网卡的提供支持时,可连接到Atrpms信息库:http://atrpms.net。当想播放DVD电影时,可访问http://FreshRPMs.net。表11-3中是当前第三方信息库的列表。不是所有的信息库都会在发布最新版的Fedora Core时进行更新。
表11-3 第三方信息库
信 息 库 |
URL |
Atrpms |
http://atrpms.net |
CCRMA |
http://ccrma.stanford.edu/planetccrma/software/ |
Dag Wieers |
http://dag.wieers.com/home-made/apt/ |
续表
信 息 库 |
URL |
Dries |
http://dries.ulyssis.org/rpm |
FreshRPMS |
http://freshrpms.net/ |
Livna |
http://rpm.livna.org/ |
NewRPMS |
http://newrpms.sunsite.dk/ |
RPMforge |
http://rpmforge.net/ |
警告 |
如果需要访问多个第三方信息库,则一定要当心。虽然这些信息库的开发人员会对照Fedora Core检查他们的程序包列表,但有人说在连接多个第三方信息库时遇到过“依赖性地狱”之类的问题。 |
举个例子,要为(使用Atheros芯片组的)无线网卡下载MadWiFi驱动程序,可执行下面的步骤从系统连接到ATrpms信息库:
(1)在文本编辑器中打开一个新的atrpms.repo文件。
(2)把下面这节内容添加到文件中。注意它与本章讨论的该目录中的其他文件的相似性。
注意 |
无论选择什么第三方信息库,都要检查它们Web站点上的指示。信息库的位置时常发生变化。 |
(3)保存文件。但是还有一种启用信息库的方法。如果想用一个命令启用信息库,可使用yum命令的--enabled开关。例如,如果要启用ATrpms Stable信息库,则可使用下面的开关:
--enabled=atrpms-stable
(4)可以用下面的命令搜索新的信息库中的内容:
$ sudo yum list | grep atrpms
或者,也可以下载并安装所选的程序包。这里因为是在寻找MadWiFi驱动程序,所以运行了下面的命令:
$ sudo yum install madwifi
下一小节将进一步讨论yum命令。
(5)继续执行第三方程序包中的其他指令。在MadWiFi的Web站点http://madwifi.org上提供了更多的信息。
11.3.11 在命令行中使用yum
yum命令有几个图形前端,我们将在后面讲述。但在了解这些工具之前,应该对yum命令本身以及它的功能多一些了解。有时只能访问命令行界面,比如更新机柜中的服务器。了解几个关键的yum命令是非常有帮助的。
一旦配置好,就可以几种方式使用yum,以更新在/etc/yum.repos.d中配置的服务器。下面列出了几个可以使用的命令。第一次运行一个命令时,它将把适用的头文件下载到相关的/var/cache/yum目录中。
yum install/yum update 如果在运行时没有引用具体的程序包,yum update命令就会寻找所有已安装程序包的更新。自然这个过程会花费相当长的时间。如果引用具体的程序包,它会在配置的信息库中寻找较新的程序包,并下载和安装可用的更新。例如,图11-7演示了Firefox Web浏览器的更新过程。
图11-7 用yum更新
但这种场合用yum install firefox更轻松一些,如果已经安装了这个程序包,命令就默认会安装更新。
yum info[packagename] 如果想了解程序包的信息,可运行yum info packagename命令。比如,如果运行yum info kernel,会看到已安装的和可用的Linux内核,包括版本号和体系结构。
不要只是运行yum info,至少不要经常运行。如果运行yum info命令,它会搜索所有可用和安装的程序包的信息。但是这个输出也许能作为数据库使用。
yum remove [packagename] 用yum remove packagename命令删除程序包很容易。它和rpm -e packagename一样好用。
yum list yum list | less命令可用于搜索在/etc/yum.repos.d文件中列出的服务器,返回程序包名、关联的CPU体系结构、版本号和服务器。图11-8中是一个示范结果。
图11-8 用yum列出程序包
yum clean [options] 如果/var/cache/yum中的yum缓冲区过满,可以用yum clean packages、yum clean headers和yum clean metadata等命令清空缓冲区。前两个命令不用解释。最后一个命令用于清除对远程信息库的连接数据。最后,还有一个yum clean all命令能够清除前3个命令清除的所有内容。
yum provides [file] 如果想知道一个文件属于哪个程序包,可以使用yum provides filename命令。它需要提供文件的完整路径。
yum search [word] 如果不确定应安装什么程序包,但对程序包有一点了解,可以使用yum search word命令。
yum check-update yum check-update命令对照配置的信息库中的可用更新检查系统上安装的程序包,并返回可用更新的列表。
yum grouplist yum grouplist命令根据本章前面定义的程序包组发现已安装的和可用的程序包组。
yum groupinfo [groupname] 如果想查找程序包组中的单个程序包,可运行yum groupinfo [groupname]命令。如果组名包含多个单词,可用引号括起组名。例如,运行yum groupinfo "Printing Support"会返回如图11-9所示的结果。
还有其他的yum命令能帮助安装和删除程序包组内的所有RPM。虽然可以使用yum groupinstall "GNOME Desktop Environment"这样的命令,但它不会提供命令行界面一般能够提供的控制程度。
然而,有几个非常重要的选项。根据我的经验,最重要的是--exclude,它能控制下载和安装什么程序包。例如,如果运行yum update,就会下载和安装系统中所有已安装程序包的更新。但这个不受约束的命令也会更新Linux内核。但出于下面的原因可能不想更新内核:
· 它会干扰自定义的内核。
· 它会取消与具体内核关联的特殊驱动程序,如无线驱动程序。
· 还没有用新内核测试过硬件。
图11-9 用yum发现程序包组内的单个程序包
yum默认会更新但不会安装新内核。学习了第13章就会知道,这意味着仍可以引导进老的内核。但是,如果每次有新的内核就安装它们的话,GRUP引导加载程序会变得混乱,/boot目录也会变得过满。因而,如果想更新系统但不下载或安装新内核,可以运行下面的命令:
$ sudo yum update --exclude=kernel*
如果想暂时启用一个信息库,就必须使用--enablerepo开关。例如,如果在前面讲过的atrpms.repo文件中设置了enabled=0,可用下面的命令暂时激活该文件,以便下载和安装MadWiFi RPM:
$ sudo yum install madwifi --enablerepo=atrpms*
--enablerepo开关会处理/etc/yum.repos.d目录中每个文件的节标题。可以看出,atrpms*是一个包含通配符的搜索条件,搜索的是[atrpms-stable]标题。表11-4介绍了其他几个有趣的开关。
表11-4 yum的开关
开 关 |
描 述 |
-t |
遇到错误也继续运行yum,比如在要安装的程序包列表中有一个拼写错误的程序包 |
-C |
完全从缓冲区的程序包运行yum,缓冲区默认为/var/yum/cache |
-c |
使用(默认的/etc/yum.conf之外的)不同的配置文件 |
-R |
设置以分钟计算的等待时间。yum命令可以在此时间内的一个随机时间点运行 |
-d |
代替/etc/yum.conf中的调试级别 |
-e |
设置错误消息的级别。如果配置脚本,应将级别设置为0 |
-y |
对所有问题都回答“是” |
自动运行yum
标准的yum服务也许不是默认启动的。可以用sudo /sbin/chkconfig yum on命令配置yum自动启动。当执行该命令时,它将每天自动运行有关的cron作业。第14章将讨论chkconfig和cron这两种系统。所幸标准的/etc/cron.daily/yum.cron作业中的命令很简单。第一个命令用于查看yum服务是否在运行:
if [ -f /var/lock/subsys/yum]; then
下面的命令用于寻找任何已安装的yum程序包,然后查找并安装可用的更新:
/usr/bin/yum -R 120 -e 0 -d 0 -y update yum
/usr/bin/yum -R 10 -e 0 -d 0 -y shell /etc/yum/yum-daily.yum
至于对yum-daily.yum的引用,该文件中有三个命令:
首先运行yum update命令;用ts run命令执行事务,安装下载的RPM;最后,退出yum shell。
==============================================================================
==============================================================================
yum 是 yellowdog updater modified 的缩写。yellowdog 是一个 Linux 的 distribution,RH 将这种升级技术用到自己的 distribution 形成了现在的 yum(原理和 apt 类似,但 apt 是编译代码,执行效率远高于用 python 写的 yum)。
yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个 distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了 Linux 用户一直头痛的 dependencies 的问题。这一点上,yum 和 apt 相同。apt 原为 debian 的 deb 类型软件管理所使用,但是现在也能用到 RH 门下的 rpm 了。
一般这类软件通过一个或者多个配置文件描述对应的 repository 的网络地址,通过 http 或者 ftp 协议在需要的时候从 repository 获得必要的信息,下载相关的软件包。这样,本地用户通过建立不同的 repository 的描述说明,在有 Internet 连接时就能方便进行系统的升级维护工作。另外,如果需要使用代理,可以用 http_proxy 和 ftp_proxy 这些 shell 里面标准环境变量的设定。
repository 是用 yum-arch 或者 createrepo 命令创建的,也可以用别人已有的 repository 作为镜像。
yum 的基本操作
yum 的基本操作包括软件的安装(本地,网络),升级(本地,网络),卸载,另外还有一定的查询功能。
设定好了本地的 yum 之后,就可以很方便的进行安装(现在假设就用 fc5 自带的 yum 进行安装),如我们需要安装虚拟机 bochs,可以使用
# yum install bochs
如果本地有相关的 rpm 文件,可以用
# yum localinstall ur.rpm
前者导致 yum 搜索现有 repository 中的数据(一般先会连接到这些 repository 下载更新数据),如果发现有此软件,则会通过分析其 dependencies 然后下载并安装所需软件。
如果需要卸载,可以使用
# yum remove bochs
或者
# yum erase bochs
这也会消解对应的 dependencies,如删除 firefox 会把 R 同时删掉,因为 R 依赖于 firefox
更新某个软件可以用
# yum update firefox
如果不带后面的程序名,将会升级所有可以升级的软件。过时的软件如果需要处理(如删掉)可以添加 ——obsolete 参数,或者使用 upgrade。如果需要更自动化一些的操作(避免回答一些问题)还可以增加一些参数,如
# yum -y upgrade
如果做完一次系统级的升级,将会下载大量 rpm 等等东西,这将占用较多的硬盘,可以使用
# yum clean packages
将相关的 rpm 文件删除,其他的一些有 headers, packages, cache, metadata, all
查看什么 rpm 提供某个程序可以使用
$ yum provides /bin/rpm
而使用
$ yum list rpm
会列出 rpm 相关的信息,而
$ yum list info
给出详细的说明,可以用
$ yum search rpm
获得一切能找到的与 rpm 相关的程序,搜索的对象是每个程序的描述部分。
更详细的参数说明请查阅相关的 man pages。在 yum-utils 里面可以找到叫 yumdownloader 的程序。使用它可以方便下载,如 srpm 等包
$ yumdownloader ——source firefox
如何使用 yum 升级我的 fc?
升级的核心部分很简单,首先,需要让 yum 能用新的 repository,fc 管理自己版本也用了一个 rpm,可以用如下命令更新这个包
# rpm -Uvh http://download.fedora.redhat.com/pub/fedora/linux/core/5/i386/os/Fedora/RPMS/fedora-release-5-5.noarch.rpm
此后就是用 yum 把 fc4 相关的程序更新到 fc5,
# yum -y upgrade
注意,由于某些自己安装的程序没有相关的 repository 程序替代,因此很可能干扰这个过程,如 qterm,原来的 repository 里面没有,偷懒的办法自然是先找到相关的 repository 并添加到 yum 的配置文件,笨拙的方法是先卸载这些东西…… 进行了漫长的等待之后(我做的那次下载了 1.5Gb+ 的东西),就可以看着一个一个的软件更新了,然后重启,用新内核 boot 成功就几乎大功告成了。
也许有一些应用软件无法处理老版本的配置文件,需要手动配置一下基本就行了。我的 fc5 就这样从 fc4 上长了出来~
FC 本身有一个关于升级的 FAQ,可以参考。
怎样配制 yum 添加新的 repository?
这主要需要关心 yum 的配置文件。它的主配置文件在 /etc/yum.conf,其说明可以参考这里。
其中重要的有 repository 的相关信息,在 fc5 里面,repository 的信息是分开存储的,一般在 /tec/yum.repos.d/ 里面,一般一个 repository 写成一个文件,如 fedora-core.repo。
网上一般提供 yum 升级的 repository 都会提供类似的说明,如 DAG,他提供了可供安装的 rpm,装上后 yum 就配置好了,可以直接用上面的命令执行系统维护,又如 dries,可以建立一个 dries.repo 文件,内容是
[dries]
name=Extra Fedora rpms dries - $releasever - $basearch
baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el3/en/i386/dries
一些其他的工具
在 yum-utils 里面还有一些有用的工具,如 package-cleanup 用于清除本地安装的 rpm,还有维护 repository 的一些工具,如 repo-graph,repo-rss,repoclosure,repomanage,repoquery,reposync,repotrack, yum-builddep。
================================================================================================================================================================================
作者:北南南北
来自:LinuxSir.Org
提要:我们用的是Redhat/Fedora通过在线安装更新软件包,除了系统自带的up2date以外,我们还有更为强大的在线升级工具 yum 和 apt-get 可用。主要资源有 freshrpms.net和 rpm.livna.org ;
在本文中,我们主要解介绍 Fedora core 4.0 通过软件包管理工具yum来在线安装更新软件;关于apt工具应用,我们会在另外一篇中介绍;
一、 yum 的使用;
有些初学Linux的弟兄可能问,为什么不用系统自带的图形化工具up2date来升级,却要用 yum呢。其实大家用一用就知道了,up2date 真是奇慢无比,而且经常失去响应;造成机器假死的情况。所以我们还是试一试yum ;另外freshrpms.net 可能比官方站更快的更新升级源,也没有理由不用 yum;
1、首先我们要到下面的地址下载与自己系统相对应的版本的 yum;
http://ayo.freshrpms.net/
比如我用的是Fedora core 4.0 就下载如下的包安装;
[root@localhost beinan]# rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm
warning: freshrpms-release-1.1-1.fc.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e42d547b
Preparing... ########################################### [100%]
1:freshrpms-release ########################################### [100%]
2、安装软件举例;
比如我要安装能听mp3的 bmp-mp3,只要输入下面的命令行即可,系统就自己工作了;
[root@localhost beinan]# yum install bmp-mp3
内容全景如下:
[root@localhost beinan]# yum install bmp-mp3
Setting up Install Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 42 kB 00:03
freshrpms : ################################################## 122/122
Added 122 new packages, deleted 0 old in 0.72 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for bmp-mp3 to pack into transaction set.
bmp-mp3-0.9.7-1.2.fc4.i38 100% |=========================| 2.9 kB 00:00
---> Package bmp-mp3.i386 0:0.9.7-1.2.fc4 set to be updated
--> Running transaction check
--> Processing Dependency: libid3-3.8.so.3 for package: bmp-mp3
--> Processing Dependency: libbeep.so.2 for package: bmp-mp3
--> Processing Dependency: bmp >= 0.9.7 for package: bmp-mp3
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for id3lib to pack into transaction set.
id3lib-3.8.3-11.fc4.i386. 100% |=========================| 38 kB 00:05
---> Package id3lib.i386 0:3.8.3-11.fc4 set to be updated
---> Downloading header for bmp to pack into transaction set.
bmp-0.9.7-10.fc4.i386.rpm 100% |=========================| 14 kB 00:03
---> Package bmp.i386 0:0.9.7-10.fc4 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
bmp-mp3 i386 0.9.7-1.2.fc4 freshrpms 95 k
Installing for dependencies:
bmp i386 0.9.7-10.fc4 extras 912 k
id3lib i386 3.8.3-11.fc4 extras 752 k
Transaction Summary
=============================================================================
Install 3 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.7 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): id3lib-3.8.3-11.fc 100% |=========================| 752 kB 01:04
(2/3): bmp-0.9.7-10.fc4.i 100% |=========================| 912 kB 02:14
(3/3): bmp-mp3-0.9.7-1.2. 100% |=========================| 95 kB 00:05
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: bmp ######################### [1/3]
Installing: id3lib ######################### [2/3]
Installing: bmp-mp3 ######################### [3/3]
Installed: bmp-mp3.i386 0:0.9.7-1.2.fc4
Dependency Installed: bmp.i386 0:0.9.7-10.fc4 id3lib.i386 0:3.8.3-11.fc4
Complete!
注:yum优点:软件包依赖关系自行解决,比如上面的,我们可以看到本来我们只安装的是bmp-mp3,结果yum 安装也安装了 id3lib ;bmp
二、yum的一点小用法;
1、查询软件包;
面对成千上万的软件,我们可能无从下手,有时也不知道它的文件名;这时就要用到查询;我们可以用 yum list 来列出yum升级源上的包有文件;然后我们再来查看 info
有以下几个组合可以用;比如;
[root@localhost beinan]# yum list |more
加上一个管道 |,然后 more 一下,就能把所有的包分页显示出来。然后按一下空格键就能看下一页了。在显示的软件列表中,会有软件名称、版本、是否安装等;仔细的看一下吧。熟悉了就好了。也没有什么难的。
[root@localhost beinan]# yum list |more
Setting up repositories
Reading repository metadata in from local files
Installed Packages
4Suite.i386 1.0-8.b1 installed
Canna.i386 3.7p3-13 installed
Canna-devel.i386 3.7p3-13 installed
如果想知道软件的详细信息,可能得用上info参数了。比如:
用法:
[root@localhost beinan]# yum info 软件名
比如:
[root@localhost beinan]# yum info bmp-mp3
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Installed Packages
Name : bmp-mp3
Arch : i386
Version: 0.9.7
Release: 1.2.fc4
Size : 234 k
Repo : freshrpms
Summary: MP3 playback plugin for the Beep Media Player
Description:
This package contains an MP3 playback plugin for BMP (Beep Media Player),
a media player that uses a skinned user interface based on Winamp 2.x skins,
and is based on ("forked off") XMMS.
在上面的例子中,如果Repo : freshrpms是这样的,表示您的系统没有安装这个软件,如果显示的是:Repo : installed,表示已经安装了。
查询软件包,也可以再加参数 grep ,比如我们想查询升级源上是否有内核的新版本,则我们可以用下面的命令查询;当然您也可以用 [root@localhost beinan]# yum search kernel |more ,也就是yum --help提供的参数,也是一样的;
[root@localhost beinan]# yum list |grep kernel
我们看一下机器工作的结果,如下:
[root@localhost beinan]# yum list |grep kernel
GFS-kernel.i686 2.6.11.8-20050601.1526 installed
cman-kernel.i686 2.6.11.5-20050601.1526 installed
dlm-kernel.i686 2.6.11.5-20050601.1526 installed
gnbd-kernel.i686 2.6.11.2-20050420.1331 installed
kernel.i686 2.6.11-1.1369_FC4 installed
kernel-devel.i686 2.6.11-1.1369_FC4 installed
kernel-doc.noarch 2.6.11-1.1369_FC4 installed
GFS-kernel.i586 2.6.11.8-20050601.1526 base
GFS-kernel-debuginfo.i686 2.6.11.8-20050601.1526 updates-released
GFS-kernel-debuginfo.i586 2.6.11.8-20050601.1526 updates-released
GFS-kernel-smp.i686 2.6.11.8-20050601.1526 base
GFS-kernel-xen0.i686 2.6.11.8-20050601.1526 base
GFS-kernel-xenU.i686 2.6.11.8-20050601.1526 base
cman-kernel.i586 2.6.11.5-20050601.1526 updates-released
cman-kernel.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-debuginfo.i586 2.6.11.5-20050601.1526 updates-released
cman-kernel-debuginfo.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-smp.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-xen0.i686 2.6.11.5-20050601.1526 updates-released
cman-kernel-xenU.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel.i586 2.6.11.5-20050601.1526 updates-released
dlm-kernel-debuginfo.i586 2.6.11.5-20050601.1526 updates-released
dlm-kernel-debuginfo.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-smp.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-xen0.i686 2.6.11.5-20050601.1526 updates-released
dlm-kernel-xenU.i686 2.6.11.5-20050601.1526 updates-released
gnbd-kernel.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel.i586 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-debuginfo.i586 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-debuginfo.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-smp.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-xen0.i686 2.6.11.2-20050420.1331 updates-released
gnbd-kernel-xenU.i686 2.6.11.2-20050420.1331 updates-released
kernel.i586 2.6.12-1.1398_FC4 updates-released
kernel.i686 2.6.12-1.1398_FC4 updates-released
kernel-debuginfo.i686 2.6.12-1.1398_FC4 updates-released
kernel-debuginfo.i586 2.6.12-1.1398_FC4 updates-released
kernel-devel.i586 2.6.12-1.1398_FC4 updates-released
kernel-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-doc.noarch 2.6.12-1.1398_FC4 updates-released
kernel-smp.i686 2.6.12-1.1398_FC4 updates-released
kernel-smp-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-xen0.i686 2.6.12-1.1398_FC4 updates-released
kernel-xen0-devel.i686 2.6.12-1.1398_FC4 updates-released
kernel-xenU.i686 2.6.12-1.1398_FC4 updates-released
kernel-xenU-devel.i686 2.6.12-1.1398_FC4 updates-released
上面的确显示出一大堆与内核有关的, installed表示我们的系统已经安装了;
咱们看前一列吧,看一下名字就能猜个差不多;比如 doc 肯定和内核文档有关了;smp是多处理器的内核;其它的我不懂了,请想知道的弟兄用 info来看吧。
比如我们用的机器是单处理器的X86机,想看一下是否有新内核可用。所以咱们试一下下面的这个。看是否已经有了新内核可以升级的;
[root@localhost beinan]# yum info kernel.i686
[root@localhost beinan]# yum info kernel.i686
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Installed Packages
Name : kernel
Arch : i686
Version: 2.6.11
Release: 1.1369_FC4
Size : 37 M
Repo : installed
Summary: Linux 内核(Linux 操作系统的核心)。
Description:
kernel 软件包包含 Linux 内核 (vmlinuz),Red Hat Linux
操作系统的核心。内核处理操作系统的基本功能:
分配内存、处理分配、设备的输入和输出等等。
Available Packages
Name : kernel
Arch : i686
Version: 2.6.12
Release: 1.1398_FC4
Size : 14 M
Repo : updates-released
Summary: The Linux kernel (the core of the Linux operating system)
Description:
The kernel package contains the Linux kernel (vmlinuz), the core of any
Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc.
通过上面的信息,我们可以看到 2.6.11的是已经安装了,因为已经显示的是Repo : installed ,下面还有一个Version: 2.6.12 ,告诉我们是Repo : updates-released,看来这个是升级用的了。
所以是否升级就看我们的了。
[root@localhost beinan]# yum update kernel
升级内核全景如下:
[root@localhost beinan]# yum update kernel
Setting up Upgrade Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for kernel to pack into transaction set.
kernel-2.6.12-1.1398_FC4. 100% |=========================| 174 kB 00:18
---> Package kernel.i686 0:2.6.12-1.1398_FC4 set to be installed
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kernel i686 2.6.12-1.1398_FC4 updates-released 14 M
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 14 M
Is this ok [y/N]:
是不是升级,只需要在 Is this ok [y/N]:行的后面输入y或者N;y是yes,就是点头同意的意思;N就是摇头No的意思。
对于软件包的查询,还有,比如:
[root@localhost beinan]# yum list available 列出所有升级源上的包;
[root@localhost beinan]# yum list updates 列出所有升级源上的可以更新包;
[root@localhost beinan]# yum list installed 列出已经安装的包;
yum 的命令支持通配符; 比如;
[root@localhost beinan]# yum list mp* |more
Setting up repositories
Reading repository metadata in from local files
Installed Packages
mpage.i386 2.5.4-5 installed
Available Packages
mpc.i386 0.11.2-3 extras
mpeg2dec.i386 0.4.0-5b.2.fc4 freshrpms
mpeg2dec-devel.i386 0.4.0-5b.2.fc4 freshrpms
mpg321.i386 0.2.10-6.2.fc4 freshrpms
mplayer.i386 1.0-0.16.pre7.2.fc4 freshrpms
mplayer-docs.i386 1.0-0.16.pre7.2.fc4 freshrpms
mplayer-fonts.noarch 1.1-3.fc freshrpms
mplayer-skins.noarch 1.7-1.fc freshrpms
[root@localhost beinan]#
2.安装和升级软件包;
安装和升级分别是 install 和 update 参数;比如;
[root@localhost beinan]# yum update firefox
这样我们就可以升级 firefox了。
[root@localhost beinan]# yum update firefox
Setting up Update Process
Setting up repositories
updates-released 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:03
freshrpms 100% |=========================| 951 B 00:02
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package firefox.i386 0:1.0.6-1.1.fc4 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Updating:
firefox i386 1.0.6-1.1.fc4 updates-released 18 M
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 1 Package(s)
Remove 0 Package(s)
Total download size: 18 M
Is this ok [y/N]:
如果不加参数的 update 会是什么呢??
[root@localhost beinan]# yum update
试着运行一下看看?会好长时间,对系统进行全面更新,我们要进行y和N了。
3.移除软件包要用到remove参数;比如;
[root@localhost beinan]# yum remove bmp-mp3
内容全景如下:
[root@localhost beinan]# yum remove bmp-mp3
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package bmp-mp3.i386 0:0.9.7-1.2.fc4 set to be erased
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
bmp-mp3 i386 0.9.7-1.2.fc4 installed 234 k
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 1 Package(s)
Total download size: 0
Is this ok [y/N]:
按y就移除了;
三、yum的图形工具;
四、yum的帮助;
在论坛中有好多,有兴趣的弟兄自己找找看吧;但也不要忘记了自救;呵。。。。
[root@localhost beinan]# yum --help
Usage: yum [options] < update | install | info | remove | list |
clean | provides | search | check-update | groupinstall |
groupupdate | grouplist | groupinfo | groupremove |
makecache | localinstall | shell >
Options:
-c [config file] - specify the config file to use
-e [error level] - set the error logging level
-d [debug level] - set the debugging level
-y - answer yes to all questions
-R [time in minutes] - set the max amount of time to randomly run in
-C run from cache only - do not update the cache
--installroot=[path] - set the install root (default '/')
--version - output the version of yum
--exclude=package to exclude
--disablerepo=repository id to disable (overrides config file)
--enablerepo=repository id to enable (overrides config file)
-h, --help - this screen
还有更厉害的帮助;
[root@localhost beinan]#man yum
附录:
1、《Fedora/Redhat 在线安装更新软件包,yum 篇》
3、《Freshrpms.net 资源介绍,及apt 和yum 的应用》
4、《Fedora Extras(Fedora 计划的扩充资源) rpm.livna.org软件仓库的介绍和应用》
8、《Fedora/Centos/Redhat及相关RPM资源收集及介绍》
On 九月 16th, 2007 Anonymous (未验证) says:
咱们看前一列吧,看一下名字就能猜个差不多;比如 doc 肯定和内核文档有关了;smp是多处理器的内核;其它的我不懂了,请想知道的弟兄用 info来看吧。
On 六月 17th, 2007 Fedorar says:
我用的是fedora6,已经安了yum,但用yum安装xmms时,提示:CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/yum.conf,请南北兄赐教。
=============================================================================================================================================================================
====== 一、YUM简介 ======
yum(yellowdog updater modified)的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux用户头痛的dependencies的问题。//
//
yum通过一个或者多个配置文件描述对应的repository的网络地址,通过http或者ftp协议在需要的时候从repository获得必要的信息,下载相关的软件包。这样,本地用户通过建立不同的repository的描述说明,在有网络连接时就能方便进行系统的升级维护工作。
====== 二、YUM配置及应用 ======
===== 1.建立repository =====
repository可以使用createrepo命令创建,也可以用网络中已有的repository镜像,下面我们介绍如何建立一个repository(以httpd为例).
==== 1.1配置HTTP服务 ====
1、创建要存放RPM包的目录 //
<code>
#mkdir /data && mkdir /data/RPMS
</code>
2、将每张安装光盘上的GTES目录下所有的RPM包以及其他新的软件包复制到/data/RPMS目录下,如果您只想管理部分RPM包也可以只将需要的包复制到此目录://
<code>
#cp *.rpm /data/RPMS
</code>
3、将第一张安装光盘GTES/repodata/comps.xml文件复制到/data/下,然后执行createrepo命令://
<code>
#createrepo –v –p –g /data/comps.xml –o /data/RPMS /data/RPMS
</code>
该操作会创建/data/RPMS/repodata目录,并在其中生成有关/data/RPMS目录中rpm包的信息文件。类似下面的结果:
<code>
#ls –l /data/RPMS/repodata
-rw-r--r-- 1 root root 895280 04-24 14:24 comps.xml
-rw-r--r-- 1 root root 2050016 04-24 14:24 filelists.xml.gz
-rw-r--r-- 1 root root 113566 04-24 14:24 other.xml.gz
-rw-r--r-- 1 root root 750514 04-24 14:24 primary.xml.gz
-rw-r--r-- 1 root root 1140 04-24 14:24 repomd.xml
</code>
4、编辑/etc/httpd/conf/httpd.conf
<code>
DocumentRoot “/var/www/html” 改为 DocumentRoot “/data”
</code>
然后在文件最后添加下列几行://
<code>
<Directory "/data/RPMS">
Options FollowSymLinks Indexes Includes
AllowOverride None
</Directory>
</code>
5、重新启动httpd
<code>
#/etc/init.d/httpd restart
</code>
==== 1.2配置yum-updatesd服务 ====
1、编辑/etc/yum.conf
<code>
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=turbolinux-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1 ==>只需要将此处改为0,即不检查GPG签名。
plugins=1
metadata_expire=1800
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
</code>
2、重新启动yum-updatesd
<code>
/etc/init.d/yum-updatesd restart
</code>
===== 2.配置yum客户端 =====
要使用yum功能,我们仅仅需要配置一个yum客户端。如下://
1、编辑/etc/yum.conf
<code>
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=turbolinux-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1 ==>只需要将此处改为0,即不检查GPG签名。
plugins=1
metadata_expire=1800
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
</code>
2、编辑/etc/yum.conf或者在/etc/yum.repos.d/下新建以.repo为后缀的文件(如:gtes11.repo),在文件最后加入下列几行:
<code>
[repositoryid]
name = gtes11 packages updates
baseurl = http://yourwebservername/RPMS or yourwebserverip/RPMS
如果repository在您本地系统上,也可以用下面的方式:
baseurl = file:///data/RPMS/
</code>
===== 3.yum应用 =====
当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长。//
==== 3.1 yum命令介绍 ====
下面我们介绍一下yum一些常用命令://
//
列出资源库中所有可以安装或更新的rpm包
<code>
#yum list
</code>
列出资源库中特定的可以安装或更新以及已经安装的rpm包
<code>
#yum list mozilla
</code>
可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
<code>
#yum list mozilla*
</code>
搜索rpm包
<code>
#yum search mozilla
</code>
安装rpm包,同时自动安装其所依赖的软件包
<code>
#yum install mozilla
</code>
删除rpm包,同时删除倚赖于该包所有的软件包
<code>
#yum remove mozilla
</code>
检查有哪些可更新的rpm包
<code>
#yum check-update
</code>
更新指定的rpm包
<code>
#yum update mozilla
</code>
更新软件包(更新所有可以升级的rpm包,包括kernel)
<code>
#yum -y update
</code>
大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
<code>
#yum upgrade
</code>
yum缓存(/var/cache/yum/)的相关参数 //
清除缓存中rpm包文件
<code>
#yum clean packages
</code>
清除缓存中rpm头文件
<code>
#yum clean headers
</code>
清除缓存中旧的rpm头文件
<code>
#yum clean oldheaders
</code>
清除缓存中旧的rpm头文件和包文件
<code>
#yum clean 或#yum clean all (相当于yum clean packages + yum clean oldheaders)
</code>
//
<code>
注意:在您正确配置了repository及yum客户端后,使用yum时,如果报“<urlopen error unknown url type: media>”
这样的错误,很可能是您客户端yum缓存造成的。执行yum clean all后,基本上就可以解决。
</code>
==== 3.2 图形工具 ====
1、添加/删除软件包工具//
Turbolinux提供了基于yum的图形化软件包添加/删除工具,选择“应用程序->系统工具->添加/删除软件”。如图1、图2://
{{软件包管:yum-add-remove.png}}//
图1//
{{软件包管:yum-add-remove2.png}}//
图2//
<code>
浏览 查看您系统上当前已安装的软件包组的情况。
搜索 查找某个软件包
列表 [所有软件包] 是您系统当前已安装的包和可用的包的总
[已安装的软件包] 是您系统当前已安装的软件包
[可用的软件包] 是您当前系统上没有安装和已删除的软件包
注意:在您添加所选的包的同时,此工具会同时添加它所依赖的包;删除所选的包的同时,会删除依赖此包的一些包。
</code>
2、更新软件包工具 //
Turbolinux 还提供了一个图形化的软件更新的工具,选择"应用程序->系统工具->软件包更新工具"。如图3、图4//
{{软件包管:yum-updates.png|}}//
图3//
{{软件包管:yum-updates2.png}}//
图4//
<code>
如果您的repository有新的软件包,此工具会为您找到,点击[应用更新]即可更新此包。
</code>
=============================================================================================================================================================================
http://blog.163.com/yang_dan/blog/static/307681820073694044162/ 来自这里
yum应用
注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.
//检查有哪些可更新的rpm包
#yum check-update
//安装rpm包,使xmms可以播放mp3
#yum install xmms-mp3
//安装mplayer,同时自动安装相关的软件
#yum install mplayer
//删除licq包,同时删除与该包有倚赖性的包
#yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text,非常方便
//系统更新(更新所有可以升级的rpm包,包括kernel)
#yum -y update
//每天定期执行系统更新
#chkconfig yum on
#service yum start
yum指令详解
*rpm包的更新
//检查可更新的rpm包
#yum check-update
//更新所有的rpm包
#yum update
//更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
//大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade
*rpm包的安装和删除
//安装rpm包,如xmms-mp3
#yum install xmms-mp3
//删除rpm包,包括与该包有倚赖性的包
#yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text
*yum暂存(/var/cache/yum/)的相关参数
//清除暂存中rpm包文件
#yum clean packages
//清除暂存中rpm头文件
#yum clearn headers
//清除暂存中旧的rpm头文件
#yum clean oldheaders
//清除暂存中旧的rpm头文件和包文件
#yum clearn 或#yum clearn all
注:相当于yum clean packages + yum clean oldheaders
*rpm包列表
//列出资源库中所有可以安装或更新的rpm包
#yum list
//列出资源库中特定的可以安装或更新以及已经安装的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
//列出资源库中所有可以更新的rpm包
#yum list updates
//列出已经安装的所有的rpm包
#yum list installed
//列出已经安装的但是不包含在资源库中的rpm包
#yum list extras
注:通过其它网站下载安装的rpm包
*rpm包信息显示(info参数同list)
//列出资源库中所有可以安装或更新的rpm包的信息
#yum info
//列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
#yum info mozilla
#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息
//列出资源库中所有可以更新的rpm包的信息
#yum info updates
//列出已经安装的所有的rpm包的信息
#yum info installed
//列出已经安装的但是不包含在资源库中的rpm包的信息
#yum info extras
注:通过其它网站下载安装的rpm包的信息
*搜索rpm包
//搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索
//搜索有包含特定文件名的rpm包
#yum provides realplay
yum -y --enablerepo livna install kmod-nvidia (安装NVIDIA显卡驱动命令)
yum -y --enablerepo livna install kmod-fglrx (安装ATI显卡驱动命令)