Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5544946
  • 博文数量: 763
  • 博客积分: 12108
  • 博客等级: 上将
  • 技术积分: 15717
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-28 21:21
个人简介

业精于勤,荒于嬉

文章分类

全部博文(763)

文章存档

2018年(6)

2017年(15)

2016年(2)

2015年(31)

2014年(14)

2013年(87)

2012年(75)

2011年(94)

2010年(190)

2009年(38)

2008年(183)

2007年(28)

yum

分类: LINUX

2013-01-05 10:26:11

yum是什么

yum = Yellow dog Updater, Modified 
主要功能是更方便的添加/删除/更新RPM包. 
它能自动解决包的倚赖性问题. 
它能便于管理大量系统的更新问题

yum特点

可以同时配置多个资源库(Repository) 
简洁的配置文件(/etc/yum.conf 
自动解决增加或删除rpm包时遇到的倚赖性问题 
使用方便 
保持与RPM数据库的一致性

yum安装

CentOS自带(yum-*.noarch.rpm) 

 #rpm -ivh yum-*.noarch.rpm

在第一次启用yum之前首先需要导入系统的RPM-GPG-KEY:

 #rpm --import /usr/share/doc/centos-release-3(4)/RPM-GPG-KEY-CentOS-3(4)

yum指令

注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/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包 

 #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

增加资源库

例如:增加rpm.livna.org作为资源库

安装Livna.org rpms GPG key

 #rpm --import 

检查GPG Key

 # rpm -qa gpg-pubkey*

显示Key信息

 #rpm -qi gpg-pubkey-a109b1ec-3f6e28d5

(注:如果要删除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)
 
YUM 订制
 
YUM 相关文件
 
[root@centos ~]# ls -l /etc |grep yum
drwxr-xr-x  3 root root    4096 Apr 23 20:12 yum
-rw-r--r--  1 root root     286 Apr  4  2007 yum.conf
drwxr-xr-x  2 root root    4096 Apr  4  2007 yum.repos.d
[root@centos ~]# ls -l /etc/yum
yum/         yum.conf     yum.repos.d/ 
[root@centos ~]# ls -l /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root 2371 Apr  9  2007 CentOS-Base.repo
-rw-r--r-- 1 root root  622 Apr  9  2007 CentOS-Media.repo

订制网络YUM 服务器
 

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 
vi /etc/yum.repos.d/CentOS-Base.repo

重点修改内容为[base][updates],其他内容可以根据需要再做修改。

# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=
#baseurl=
gpgcheck=1
gpgkey=

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=
#baseurl=
gpgcheck=1
gpgkey=

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=release=$releasever&arch=$basearch&repo=addons
#baseurl=
gpgcheck=1
gpgkey=

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=release=$releasever&arch=$basearch&repo=extras
#baseurl=
gpgcheck=1
gpgkey=

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=release=$releasever&arch=$basearch&repo=centosplus
#baseurl=
gpgcheck=1
enabled=0
gpgkey=

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=release=$releasever&arch=$basearch&repo=contrib
#baseurl=
gpgcheck=1
enabled=0
gpgkey=

提供一份国内可用的YUM list

[base]
name=CentOS-5.0 - Base
baseurl=
gpgcheck=1
gpgkey=

#released updates
[update]
name=CentOS-5.0 - Updates
baseurl=
gpgcheck=1
gpgkey=

#packages used/produced in the build but not released
[addons]
name=CentOS-5.0 - Addons
baseurl=
gpgcheck=1
gpgkey=
#additional packages that may be useful
[extras]
name=CentOS-5.0 - Extras
baseurl=
gpgcheck=1
gpgkey=

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5.0 - Plus
baseurl=
gpgcheck=1
enabled=0
gpgkey=
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-5.0 - Contrib
baseurl=
gpgcheck=1
enabled=0
gpgkey=

#packages in testing
[testing]
name=CentOS-5.0 - Testing
baseurl=
gpgcheck=1
enabled=0
gpgkey=

修改完成后

rpm --import 

yum update

设定本地光盘YUM 源

挂载光盘

#mount /dev/crom /media/

如挂在再别的文件夹下需修改配置文件

配置文件在 /etc/yum.repos.d/CentOS-Media.repo。

将/etc/yum.repos.d/CentOS-Base.repo改下名,命令如下:
#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
检查下配置文件的有没设置正确,命令如下:
#cat /etc/yum.repos.d/CentOS-Media.repo

# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
#  CentOS-5.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c5-media [command]

# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c5-media [command]

[c5-media]
name=CentOS-$releasever - Media
baseurl=file:/media

gpgcheck=0
enabled=1
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-beta


如果按照Centos 5 默认配置中关于使用光盘介质升级的办法将出错

错误信息

: [Errno 5] OSError: [Errno 2] No such file or directory: '/CentOS/repodata/repomd.xml'
Trying other mirror.
Error: Cannot open/read repomd.xml file for repository: c5-media

软件安装命令:
#yum --enablerepo=c5-media install 你要的软件


添加/删除/更新软件

1.仅安装指定的软件
命令:yum install

yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。

2.用YUM删除软件包
命令:yum remove

同安装一样,yum也会查询数据库,给出解决依赖关系的提示。

3.列出所有可更新的软件清单
命令:yum check-update

4.更新所有已安装软件
命令:yum update

5.仅更新指定的软件
命令:yum update

 

用YUM查询软件信息
1.使用YUM查找软件包
命令:yum search

比如我们要安装一个Instant Messenger,但又不知到底有哪些,这时不妨用 yum search messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于是我们可能得到gaim,kopete等等,并从中选择。 
有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。

2.列出所有可安裝的软件清单
命令:yum list

3.列出所有可更新的软件包
命令:yum list updates

4.列出所有已安装的软件包
命令:yum list installed

5.列出所有已安装但不在 Yum Repository 內的软件包
命令:yum list extras

6.列出所指定的软件包
命令:yum list

7.使用YUM获取软件包信息
命令:yum info

8.列出所有软件包的信息
命令:yum info

9.列出所有可更新的软件包信息
命令:yum info updates

10.列出所有已安裝的软件包信息
命令:yum info installed

11.列出所有已安裝但不在 Yum Repository 內的软件包信息
命令:yum info extras

12.列出软件包提供哪些文件
命令:yum provides

 

清除YUM缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除。


1.清除缓存目录(/var/cache/yum)下的软件包
命令:yum clean packages

2.清除缓存目录(/var/cache/yum)下的 headers
命令:yum clean headers

3.清除缓存目录(/var/cache/yum)下旧的 headers
命令:yum clean oldheaders

4.清除缓存目录(/var/cache/yum)下的软件包及旧的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)

 

阅读(881) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~