页面

2012年8月3日星期五

CentOS下的软件包管理--yum篇

CentOS下的软件包管理--yum篇

YUM
CentOSFedora Core行版中,采用了一叫做yum件包合管理工具,它的全称是Yellowdog Updater,Modified个工具并不是CentOS开发的,而是由Yellow Dog Linux开发件包合管理工具。作为软件包合管理工具除了yum外,DebianGNU/Linux所采用的APTRed Hat Enterprise Linux等所采用的up2date(在RHEL5开始采用了YUM的软件包管理)
的共同特点是:
?通安装和升级软件包
?自解决件包的依存
※这注意,Yum件包升件包并非是最新的软件,它是基于RPM软件包形式的软件,是CentOS(RHEL)的安全定包。要安装最新的软件,最好采用编译安装的方式。


Yum利用准备
在使用yum之前,最基本的事情就是要先导入GPG公开key,更改还有就是软件包下载的网站(yum配置文件中定义的软件包下载地址)。

※GPG
公开key
RPM
软件包都有电子签名,用这个电子签名来判断软件包有没有被篡改,数据有无破损是否完整,正因为这样才要导入开发组织配布的GPG公开key。那这个GPG公开key可以从软件包发布站和CD-ROM/DVD-ROM获得,在系统下被默认安装在/usr/share/doc/centos-release-4/RPM-GPG-KEY下,这里还有一个一模一样的文件/usr/share/doc/centos-release-4/RPM-GPG-KEY-centos4。倘若你只是利用centos.org的镜像站点的话,那么这个公开key是默认被导入了的,在我们的网站上面你可以看到,非官方库利用的时候,我们也导入了这个GPG公开key,参照http://www.centospub.com/make/newenv.html下的定义非官方库的操作。

★导入GPG的公开key的方法:
#rpm –import GPGkey
的路径或网络文件注意空格
更新软件包下载镜像地址的设定
Cent0S
的镜像下在网站分布在世界的很多地方,默认的设定是centos.org,中国镜像分布在中国的上海,香港还有福建。修改软件包下载镜像站点是为了提高软件包下载速度。(也可以通过文章下面提到的"自动选择镜像"的方法)
Yum
的设定文件是/etc/yum.repos.d/CentOS-Base.repo。关于站点更改的内容请参照本站问题解答版主Chao的"CentOS终于有了中国镜像!"的文章。
在 这里提醒更改文件设置的用户,一定要将原文件作备份后再修改。或者将原来的文件内容注释掉,而不是删除或覆盖原设置。并在文件中加以注释,比如什么时间更 改的,由谁更改的,更改的内容等信息,这对系统的管理维护有好处。(任何修改都必须是可还原的,并且是通过运行测试的)
在本站的问题解答区块中,就出现过几次类似的,谁能给我这个文件,那个文件的情况。原因就是未做好备份工作,没有良好的系统管理意识(不是习惯)。

使用yum更新软件包

在本站的配置祥解中,大家多次看到我们采用了yum安装软件的内容。
关于使用yum的详细信息,大家可以参照fedore.clinux.org的使用yum管理软件的文档。
英文好些的人可以直接在系统下#man yum,查看帮助信息。`

★常用的yum参数选项?使用方法

  1. #yum check-update
  2. #yum update 软件包(单个软件包升级)
  3. #yum -y update 软件包(升级所有的可升级的软件包)
复制代码

※(功能同上,-y表示同意所有,比在一次次的确,因为软件包友依赖关系,除是有可能除很多的件包,不用一次次确。体会一下)

除:
  1. #yum remove 软件包名
  2. #yum -y remove 软件包
复制代码


安装:
  1. #yum install 软件包名
  2. #yum -y install 软件包
复制代码


件包
  1. #yum grouplist (确认软件包组,安装过的软件包,为安装的软件包)
  2. #yum groupinstall "软件包组" (安装可安装的软件包组群)
  3. 例: #yum -y groupinstall "X Window System" (安装基本的窗口系统)
复制代码

其他:


选项



check-update


示可升件包


clean


除下后的旧的header。和clean all相同


clean oldheaders


除旧的headers


clean packages


除下后的件包


info


示可用件包信息


info 件包名


示指定件包信息


install 件包名


安装指定件包


list


示可用件包


list installed


示安装了的件包


list updates


示可升件包


provides 件包名


件包所包含的文件


remove 件包名


除制定的件包,确判定指定件包的依存系。


search 关键


利用关键字搜索件包。搜索象是,RPM文件名,Packager(包),Dummary,Description的各型


update


所有的可升件包


update 件包名


指定的件包


 


选项



groupinstall


安装指定的


groupupdate


安装了的员软件包更新


grouplist


安装了的和可以安装的览显


groupremove


除指定的


groupinfo


指定所包含的件包






★yum 

安装新的仓库Repository
功能:


基本的仓库CentOS件包?)然有丰富的件,但是有些是没有的。
安装其它的仓库来解决基本仓库中未包括的,实际存在的件包问题
CentOS4:

  1. # wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el4.rf.i386.rpm
  2. #rpm -Uhv rpmforge-release-0.3.6-1.el4.rf.i386.rpm
复制代码
CentOS5:

 



  1. # wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
  2. # rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
复制代码

 


 



如果有问题策(供参考):



  1. # vi /etc/yum.repos.d/rpmforge.repo

  2. enabled = 1
  3.     ↓
  4. enabled = 0           ← 变更为0,为了避免和基本的软件仓库的竞争
复制代码

 


 



使用法:



  1. # yum -y --enablerepo=rpmforge install 软件包       ← 软件包安装(在基本软件仓库中没有的软件包安装)
复制代码

 


 


fastestmirror插件安装
功能:



让软件包在线载时动选择最合适的像站点。(不知道中国管不管用,未测试



  1. # yum -y install yum-fastestmirror
复制代码

 


 


代理服置:

  1. # vi /etc/yum.conf
  2. proxy=http:// 服务器IP:端口   ← 最后一行添加
复制代码

 


 


★停止更新通知進程



理由:


占用大量的内存,一个小时更新确认一次......


※不建议启动自动更新,而采用手动更新的方式。并且建议设定更新运行确认服务器(test用)。


 


 

  1. # /etc/rc.d/init.d/yum-updatesd stop 
  2. # chkconfig yum-updatesd off
复制代码

 


 


★通过yum更新软件包的例外设置


如果系统存在的一些软件包有版本的依存问题,那么我们不能够,也不会轻易的升级它们(除非你做过完善的测试工作)。我们可以告诉yum在更新时不更新谁。


 

  1. [root@centos ~]# vi /etc/yum.conf ←编辑yum设置文件
  2. # 在文件的最后追加
  3. exclude=openssh*    ←这里是不更新openssh相关的设置
  4. exclude=httpd  ←不更新httpd
复制代码

 

 

★问题对策

如果在使用yum升级或删除软件的时候遇到了类似下面错误信息的内容

 

  1. http://centos.ustc.edu.cn/centos/5.1/extras/i386/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum
复制代码

 

对策如下,经过如下的操作,然后再进行想要做的动作,结合上面的/etc/yum.repos.d/rpmforge.repo
私改一起使用。

 

  1. # yum clean all   
复制代码

 

※注:2008/2/7 今天想要删除GNOME桌面,但是就是出错。找来找去找到了上面的这个方法,管用。
※删除GNOME方法:# yum -y groupremove "GNOME Desktop Environment" 
※相反安装GNOME方法:# yum -y groupinstall "GNOME Desktop Environment" 不过要先安装X Window System: # yum -y groupinstall "X Window System"