【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
9,yum下载程序后会进行hash校验!
根据/etc/yum.conf配置文件中的cachedir=/var/cache/yum定义了各个连接的下载缓存在本地对应的目录。其中类似*xml.gz就是metadata信息。而repomd.xml就是校验数据。它使用的是sha1进行校验的。只有当*.xml.gz的sha1校验码和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 //下载httpd的rpm包
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包