找回密码
 注册
首页 ≡≡桌面技术≡≡ PC操作系统 CentOS下yum的详细使用方法

linux CentOS下yum的详细使用方法

灰儿 2009-6-21 17:12:56
本帖最后由 灰儿 于 2009-6-21 20:13 编辑

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 http://rpm.livna.org/RPM-LIVNA-GPG-KEY
检查GPG Key
# rpm -qa gpg-pubkey*
显示Key信息
#rpm -qi gpg-pubkey-a109b1ec-3f6e28d5
(注:如果要删除Key,使用#rpm -e gpg-pubkey-a109b1ec-3f6e28d5)

yum常用的命令
# yum install xxx            安装xxx软件
# yum info xxx                查看xxx软件的信息
# yum remove xxx        删除软件包
# yum list                        列出软件包
# yum clean                    清除缓冲和就的包
# yum provides xxx        以xxx为关键字搜索包(提供的信息为关键字)
# yum search xxx           搜索软件包(以名字为关键字)
# yum groupupdate xxx
# yum grouplist xxx
# yum groupremove xxx

这三个都是一组为单位进行升级 列表和删除的操作。。比如 "Mysql Database"就是一个组会同时操作相关的所有软件包;

# yum update                系统升级
# yum list available        列出所有升级源上的包;
# yum list updates         列出所有升级源上的可以更新包;
# yum list installed         列出已经安装的包;
# yun update kernel       升级内核;

yum的操作参数:
  -h, --help            显示帮助信息,并退出
  -t, --tolerant        忍受发生的错误         
  -C                    从缓冲中运行,而不是升级缓存           
  -R  [minutes]         最大化的命令等待时间           
  -d  [debug level]     调试输出级别                  
  --showduplicates      显示复制, 在repo,list/search命令下
  -e  [error level]     错误输出级别                     
  -q, --quiet           安静的操作                                         
  -y                    回答所有的问题为是               
  --version             显示 YUM版本信息并退出            
  --installroot=[path]  设置为root安装                    
  --enablerepo=[repo]   激活一个或多个仓库(支持通配符)  
  --disablerepo=[repo]  禁掉一个或多个仓库(支持通配符)
  -x [package], --exclude=[package]                        在名称或glob不包含包。
  --disableexcludes=[repo]                       禁掉出了这个之外的别的仓库
  --noplugins           禁掉yum插件
  --nogpgcheck          禁掉GPG验证检查,没有签名的软件安装加这个参数
  --disableplugin=[plugin]                        用名称禁掉插件
  --enableplugin=[plugin]                        用名称启用插件
  --skip-broken         忽略包的依赖问题
  --allow-downgrade     晕软件包降级
  --disablepresto     禁用Presto 插件并且不下载任何增量包

例如需要yum执行时更自动化一些的操作(回答所有的问题为是),可以增加"-y"参数,如:

yum -y install httpd  ← 自动安装httpd Apache服务器及相关组件
yum -y install php  ← 自动安装PHP
yum -y install mysql-server  ← 自动安装MySQL
yum -y install php-mysql  ← 自动安装php-mysql

yum常用的源
1) 自动选择最快的源
由于yum中有的mirror速度是非常慢的,如果yum选择了这个mirror,这个时候yum就会非常慢,对此,可以下载fastestmirror插件,它会自动选择最快的mirror:
#yum install yum-fastestmirror
配置文件:(一般不用动)/etc/yum/pluginconf.d/fastestmirror.conf
你的yum镜像的速度测试记录文件:/var/cache/yum/timedhosts.txt

(2)使用图形界面的yum
如果觉得命令行的yum不方便,那么可以使用图形化的yumex,这个看起来更方便,因为可以自由地选择软件仓库:
#yum install yumex
然后在系统工具中就可以看到yum extender了。实际上系统自带的“添加/删除程序“也可以实现图形化的软件安装,但有些yumex的功能它没有

===== 配置 yum 客户的更新源 =====

yum 使用 **reposdir** (/etc/yum.repos.d) 目录下的一系列 .repo 文件列出可获得软件包仓库的镜像站点地址。默认情况下

有如下两个文件:
  * CentOS-Base.repo :用于设置远程仓库
  * CentOS-Media.repo :用于设置本地仓库

在 .repo 文件中,配置语法是分段的,每一段配置一个软件仓库,配置语法如下:

<code>
[repositoryid]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
        url://server2/path/to/repository/
        url://server3/path/to/repository/
mirrorlist=url://path/to/mirrorlist/repository/
enabled=0/1
gpgcheck=0/1
gpgkey=A URL pointing to the ASCII-armoured GPG key file for the repository
</code>

其中:
  * repositoryid : 用于指定一个仓库
  * name : 用于指定易读的仓库名称
  * baseurl : 用于指定本仓库的 URL,可以是如下的几种类型:
    * http --- 用于指定远程 HTTP 协议的源
    * ftp  --- 用于指定远程 FTP 协议的源
    * file  --- 用于本地镜像或 NFS 挂装文件系统
  * mirrorlist : 用于指定仓库的镜像站点
  * enabled : 用于指定是否使用本仓库,默认值为1,即可用
  * gpgcheck : 用于指定是否检查软件包的 GPG 签名
  * gpgkey : 用于指定 GPG 签名文件的 URL

在 name baseurl 中经常使用如下的变量:
  * $releasever  --- 当前系统的版本号
  * $basearch ---  当前系统的平台架构


  * 文件中以“#”开头的行是注释行
  * 若指定 mirrorlist,系统将从 CentOS 的镜像站点中选择离您最近的仓库
  * 并非所有的国内镜像都在 CentOS 的镜像站点列表中,所以我们可以直接使用 baseurl 直接指定离您最近的仓库
  * baseurl 可以指定多个 URL,系统会依次检查您列出的仓库,以便在某个服务器宕机时可以使用另外的服务器
  * 为了加快更新,在确保更新服务器及线路良好的情况下,在 baseurl 中只指定一个 URL 既可



==== 设置网络更新源 ====

下面是一个 CentOS-Base.repo 文件的实例,在此文件中没有设置 mirrorlist ,使用 baseurl 只指定了一个 URL。

<code>
[base]
name=CentOS-$releasever - Base
baseurl=http://centos.candishosting.com.cn/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[updates]
name=CentOS-$releasever - Updates
baseurl=http://centos.candishosting.com.cn/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[addons]
name=CentOS-$releasever - Addons
baseurl=http://centos.candishosting.com.cn/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[extras]
name=CentOS-$releasever - Extras
baseurl=http://centos.candishosting.com.cn/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://centos.candishosting.com.cn/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
</code>


==== 设置本地更新源 ====

为了使用安装光盘作为更新源,可以修改 CentOS-Media.repo 文件,下面是一个配置实例。

<code>
[c5-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta
</code>


  * 为了使用 c5-media 仓库,需将 CentOS-Base.repo 文件中的 base 仓库使用 ''enabled=0'' 设置成不可用。
  * 若本地磁盘空间有足够空间,您也可以将安装光盘复制到本地磁盘的一个目录中





==== 设置非官方更新源 ====

下面以安装 rpmforge 软件包为例添加非官方更新源。

  - 到 http://dag.wieers.com/rpm/packages/rpmforge-release/ 查找适用于 RHEL5/CentOS5 的软件包
  - 下载适用于 RHEL5/CentOS5 的软件包
<code>
# wget http://dag.wieers.com/rpm/packag ... 6-1.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-*
</code>

安装了 rpmforge-release 软件包之后可以看到 /etc/yum.repos.d/rpmforge.repo 文件。以后使用 yum 就可以使用这个更新

源了。
您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。