Linux运维学习小站

Linux maintenance study site

linux命令详解—yum软件仓库介绍

使用yum命令可以从Fedora的yum仓库获取、安装、升级、检查和搜索软件包等。该命令有许多选项,支持逐个或按组处理软件包。

注意 如果偏爱使用GUI工具,可以试试Fedora中基于yum工具的软件包管理工具。选择应用程序➪添加/删除软件或以root权限运行pirut命令即可启动软件包管理工具。Fedora 7引入的部分新特性简化了不少操作,比如搜索、列出和浏览可用软件包,然后选定软件包添加或删除即可。

       

下面几个小节会提供一些比较实用的yum命令行示例。


查找软件包
yum提供了大量选项,用于查找指定软件包相关信息或搜索yum仓库查找特定软件包或组件。使用list选项可以列出符合一定条件的软件包,示例如下:
# yum list available     列出可供安装的软件包
# yum list installed     列出已安装的软件包
# yum list extras        列出不是通过仓库安装的软件包
# yum list *vorbis*      列出标题包含“vorbis”的软件包
# yum list updates       列出可以更新的软件包


使用info选项可从仓库查看软件包说明,示例如下:
# yum info wordpress     wordpress软件包说明
# yum info word*         以“word”开头的软件包说明
使用search选项可以搜索包含特定字符串的软件包,该字符串出现在软件包的说明、打包者、名称或简介中,示例如下:
# yum search mp3        查找包含字符串“mp3”的软件包
使用whatprovides选项可以搜索软件包里的文件或其他特性,并列出找到的软件包,示例如下:

# yum whatprovides ogg123
...
vorbis-tools.i386                     1:1.1.1-5.fc7      installed
Matched from:
/usr/bin/ogg123
/usr/share/doc/vorbis-tools-1.1.1/ogg123rc-example
/usr/share/man/man1/ogg123.1.gz

 

安装软件包
使用install选项可以从已启用的yum仓库安装软件包,示例如下:

# yum install wordpress
...
Dependencies Resolved
==========================================================================
 Package              Arch       Version          Repository        Size 
==========================================================================
Installing:
 wordpress            noarch     2.1-0.fc7        extras            725 k
Installing for dependencies:
 php                  i386       5.2.1-3          development       1.3 M
 php-cli              i386       5.2.1-3          development       2.1 M
 php-common           i386       5.2.1-3          development       197 k
 php-mysql            i386       5.2.1-3          development        72 k
 php-pdo              i386       5.2.1-3          development        53 k

Transaction Summary
==========================================================================
Install      6 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 4.5 M
Is this ok [y/N]: y

上面的命令会安装WordPress网志软件。该命令会一一列出尚未安装的依赖包,并标记为待安装。你的系统可能还需要其他软件包,具体视已安装的软件包而定。键入y(表示“yes”)下载并安装所有软件包。
使用yum的localinstall选项可以从本机目录安装软件包。使用yum而非rpm命令的一大优点是安装本地软件包时会自动从启用的仓库获取所有依赖包,示例如下:
# yum localinstall heyu-2.0beta.3.1-1.i386.rpm
另外,还可以选择安装某个安装组的全部软件包。例如,键入如下命令即可安装整套XFCE桌面软件包:
# yum groupinstall XFCE


更新软件包
如有更新,可以选择更新一个、一组或所有软件包,示例如下:
# yum check-update              列出所有可更新的软件包
# yum list updates openoffice*  查找openoffice*的更新
# yum update openoffice*        更新所有openoffice软件包
# yum update                    更新所有可更新的软件包
# yum groupupdate XFCE          更新XFCE组内的所有软件包


删除软件包
使用yum可以逐个或按组删除软件包。用yum删除软件包的优点在于yum不仅删除选定的软件包,还能删除其依赖的软件包,示例如下:
# yum remove beagle             删除beagle软件包
# yum remove xscreen*           删除xscreen开头的软件包
# yum groupremove XFCE          删除XFCE组内的所有软件包
在前两个示例中,yum remove命令会列出将要删除的软件包,并询问是否同意删除操作。


清除软件包
使用yum的clean选项可以清除yum工具留下的软件包、题头信息、元数据、缓存和dbcache等。/etc/yum.conf文件里的keepcache若置为1,yum就会下载你请求的软件包和题头信息,分别保存至/var/cache/yum/repo/的packages和headers子目录。元数据存储在同一目录的repomd.xml和comps.xml文件中。下面是清除上述各项的具体做法:
# yum clean packages         清除遗留在缓存里的软件包
# yum clean metadata         清除遗留在缓存里的元数据
# yum clean headers          清除遗留在缓存里的题头信息
# yum clean all              清除元数据、题头信息和软件包


实用选项组合特定情形下,有些yum选项用处很大。例如,对于某些场合,启用和禁用仓库就很有用。--enablerepo=和--disablerepo=可与前面介绍的各种yum选项一同使用,在知道是否要用到某个仓库时特别有用,示例如下(假定已启用livna仓库):
# yum --disablerepo=livna search yum-utils
# yum --enablerepo=livna install mplayer


在第一个示例中,你要查找yum-utils包,但记不清该软件包位于哪个仓库,不过确信不在livna仓库里(故禁用该仓库)。在第二个示例中,livna仓库已被禁用(相应的.repo文件里添加了enabled 0),故安装mplayer包时需启用该仓库。

执行用户请求的操作之前,yum总是连接网络以获取最新的元数据,这会大幅降低yum的性能。确定自己的操作不需要最新元数据时,可以指示yum只从本机缓存获取元数据。这么做往往能大幅提升性能,只不过略有风险,即自上次元数据更新之后,你正在查找的软件包信息有可能已改变。加上-C选项时,yum使用本地元数据:


# yum -C info yum-utils
Setting up repositories
Reading repository metadata in from local files
...
不加-C选项时,若本地缓存超过30分钟(默认值),yum就会从仓库获取最新元数据。元数据的过期时间由/etc/yum.conf文件里的metadata_expire选项设定,单位为秒(metadata_expire=1800)。
使用yum实用工具
yum-utils软件包(yum install yum-utils)提供了几个实用命令,用于访问和创建yum仓库。repoquery命令可以列出yum仓库里的软件包相关信息,示例如下:
# repoquery -il tomcat5
# repoquery --provides tomcat5


在第一个示例中,-il选项的输出会列出tomcat5软件包所含文件及其说明。第二个示例会列出该软件包提供的功能。总的来说,repoquery命令与rpm -q从本地RPM查询信息的做法几乎相同,只不过速度稍慢一拍。键入man repoquery查看更多可用选项。
yumdownloader可以从yum仓库下载软件包,保存到本地磁盘。例如,下面的命令会将cacti软件包下载到本地目录:
# yumdownloader cacti


发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

© Linux运维学习小站 | 京ICP备15009755号-2 |
Powered by Z-BlogPHP & Yiwuku.com