代码改变世界

【Linux】yum 小结

2011-05-06 21:25  htc开发  阅读(301)  评论(0编辑  收藏  举报

1,概念

yum  yellowdog updater modified 的缩写

yum 的理念是使用一个容器(repository管理一部分甚至一个 distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了 Linux 用户一直头痛的 dependencies 的问题。

2,配置

所以yum的配置主要就是选好repository即可!

资料库的定义可以在/etc/yum.conf里面,也可以在在/etc/yum.repos.d底下放置多个repository配置文件!

下面就repository的配置说明一下!

# vi /etc/yum.repos.d/ centos.repo

[base]

name=CentOS-$releasever - Base

baseurl=http://centos.ustc.edu.cn/centos/5/os/i386/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates

 

[base]代表容器的名字!中刮号一定要存在,里面的名称则可以随意取。但是不能有两个相同的容器名称, 否则 yum会不晓得该到哪里去找容器相关软件清单档案。

name只是说明一下这个容器的意义而已,重要性不高!

mirrorlist=列出这个容器可以使用的映射站台,如果不想使用,可以注解到这行;

baseurl=这个最重要,因为后面接的就是容器的实际网址!

enable=1就是让这个容器被启动。如果不想启动可以使用 enable=0 喔!

gpgcheck=1还记得 RPM 的数位签章吗?这就是指定是否需要查阅 RPM 档案内的数位签章!

gpgkey=就是数位签章的公钥档所在位置!使用预设值即可

3,查询功能:

# yum [list|info|search|provides|whatprovides]

 

示例一:搜索磁盘阵列 (raid) 相关的软件有哪些?

[root@www ~]# yum search raid

 

示例二:找出 mdadm 这个软件的功能为何

[root@www ~]# yum info mdadm

 

示例三:列出 yum 服务器上面提供的所有软件名称

[root@www ~]# yum list

 

示例四:列出目前服务器上可供本机进行升级的软件有哪些?

[root@www ~]# yum list updates  <== 一定要是 updates 

 

示例五:列出提供 passwd 这个档案的软件有哪些

[root@www ~]# yum provides passwd

passwd.i386 : The passwd utility for setting/changing passwords using PAM

passwd.i386 : The passwd utility for setting/changing passwords using PAM

找到啦!就是上面的这个软件提供了 passwd 这个程式!

 

示例六:列出目前 yum server 所使用的容器有哪些?

[root@www ~]# yum repolist all

repo id         repo name                  status

addons          CentOS-5 - Addons          enabled

base            CentOS-5 - Base            enabled

c5-media        CentOS-5 - Media           disabled

centosplus      CentOS-5 - Plus            disabled

extras          CentOS-5 - Extras          enabled

updates         CentOS-5 - Updates         enabled

上面最右边有写 enabled 才是有启动的!由于 /etc/yum.repos.d/

有多个设定档,所以你会发现还有其他的容器存在。

4,用yum升级kernel服务

# yum -y update  kernel*            //-y参数,帮助你输入yes

5,升级的时候排除以下开头的程序

# yum –y update –exclude=apache* bind-chroot courier* dovecot* exim*  mod_ssl* mysql* nsd* perl*

6,安装桌面系统

# yum groupinstall "X Window System"

7,安装KDE桌面系统

# yum groupinstall "KDE (K Desktop Environment)"

8,升级过程中的一则错误!

[root@nod1 ~]# uname -r

2.6.18-92.el5

[root@nod1 yum.repos.d]# yum -y update

Error: yum conflicts with yum-rhn-plugin < 0.5.3-30.el5   //竟然说与这个软件有冲突!

那么就找出它在系统中的名字,然后卸载掉!

[root@nod1 yum.repos.d]# rpm -q yum-rhn-plugin

yum-rhn-plugin-0.5.3-6.el5

[root@nod1 yum.repos.d]# rpm -e yum-rhn-plugin-0.5.3-6.el5 –nodeps

 

再次执行整个系统的更新!

[root@nod1 yum.repos.d]# yum clean all

Loading "rhnplugin" plugin

Loading "security" plugin

Cleaning up Everything

[root@nod1 yum.repos.d]# yum -y update

Loading "security" plugin

base                      100% |=========================| 1.1 kB    00:00 

primary.xml.gz            100% |=========================| 920 kB    00:18     

base      : ################################################## 2599/2599

updates                   100% |=========================| 1.9 kB    00:00    

primary.sqlite.bz2        100% |=========================|  74 kB    00:01    

extras                    100% |=========================| 2.1 kB    00:00  

省略部分文字····

Total download size: 476 M

Downloading Packages:

(1/469): cpio-2.6-23.el5_ 100% |=========================| 122 kB    00:02    

(2/469): giflib-4.1.3-7.1 100% |=========================|  39 kB    00:00  

[root@nod1 ~]# uname -r

2.6.18-194.3.1.el5

 

9yum下载程序后会进行hash校验!

根据/etc/yum.conf配置文件中的cachedir=/var/cache/yum定义了各个连接的下载缓存在本地对应的目录。其中类似*xml.gz就是metadata信息。而repomd.xml就是校验数据。它使用的是sha1进行校验的。只有当*.xml.gzsha1校验码和repomd.xml中记录的值一样,yum才会认为metadata有效,否则就会报上面的错误。

10,参考文档:

yum】配置yum过程中的错误;hash用法!:http://bkeep.blog.163.com/blog/static/1234142902009101254748359/

yum 自从有了yum,红帽变得好美丽!:http://bkeep.blog.163.com/blog/static/1234142902009101253026862/

CentOS系统上用yum命令安装桌面系统,VNC相关http://bkeep.blog.163.com/blog/static/123414290200992334725341/

 

UPDATE====2010.9.26====================

 

yum只下载而不安装rpm包。

#yum install yum-utils -y      //先安装一个工具

Setting up Install Process

Parsing package install arguments

Resolving Dependencies

--> Running transaction check

---> Package yum-utils.noarch 0:1.1.16-13.el5 set to be updated

--> Finished Dependency Resolution

 

Dependencies Resolved

 

==============================================================================================

 Package               Arch               Version                      Repository        Size

==============================================================================================

Installing:

 yum-utils             noarch             1.1.16-13.el5                base              69 k

 

Transaction Summary

==============================================================================================

Install      1 Package(s)

Update       0 Package(s)

Remove       0 Package(s)

 

Total download size: 69 k

Downloading Packages:

yum-utils-1.1.16-13.el5.noarch.rpm                                     |  69 kB     00:00    

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing     : yum-utils                                         [1/1]

 

Installed: yum-utils.noarch 0:1.1.16-13.el5

Complete!

 

#yumdownloader httpd      //下载httpdrpm

httpd-2.2.3-22.el5.x86_64.rpm                                          | 1.2 MB     00:00    

 

#ls

httpd-2.2.3-22.el5.x86_64.rpm     //刚刚下载的rpm