曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4394|回复: 0
打印 上一主题 下一主题

linux下yum的使用(转贴)

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2008-12-11 15:21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Red Hat/Fedora Linux有提供一个非常棒的系统升级机制Red Hat Network,当RedHat公司修正或发表新的RPM程序套件时,如果您想要将某些程序升级成新的RPM套件,只要连接到http://rhn.redhat.com/网站,该网站就会自动侦测系统中应该更新的RPM套件,并自动下载安装替您更新,这个功能非常类似Windows系统的WindowsUpdates在线升级功能。虽然Red HatNetwork有这种好处,但这个服务是专为商业用户而设的,因此向使用者收费亦是必然的,付费会员是年缴60元美金,但由于在线升级服务的质量良好,全球有大量的使用者付款向Red Hat购买这种服务。
但是对于一般不是商业的用户,也可以登入Red HatNetwork网站并注册一个账号使用在线升级机制。但是自从Red Hat公司于2003年9月宣布不再发行Red HatLinux免费版本之后,所有Red Hat Linux爱好者迫切想知道如何继续使用Red Hat Network这个在线升级机制?RedHat的CEO Mathew Szuilk为Red Hat的爱用者解释往后Red Hat Network的运作机制,RedHat公司指出使用Fedora Core并搭配YUM (YellowDog Updater, Modified) 即可免费的继续使用RedHat Network下载最新修补软件。
    YUM的全名是YellowDog Updater,Modified,YellowDog (http://www.yellowdoglinux.com/ )是一个Linux发行套件的名称,YellowDog Updater (YU)是YellowDog这个Linux套件自行开发的RPM软件套件管理系统,这个YU系统的特色是可以配合网络上的软件数据库直接进行软件的更新和移除,后来美国Duke University将之改良,所以改命名为YellowDog Updater, Modified(YUM),yum可以自动更新/移除RPM套件,它会自动计算相依性,判断哪些RPM套件应该安装而哪些不必安装,正因为yum的出现可以解决安装RPM套件时烦人的相依性 (dependency) 问题并且可直接透过网络进行系统升级,所以RedHat与Fedora社群将yum纳入共同开发的Fedora Core Linux之内,这个yum软件于是成为了Red HatNetwork更新软件系统up2date的骨干,所以您可以很容易地透过yum自动升级Fedora Code Linux系统。



取得 yum
基本上因为yum与up2date是FedoraCore预设的在线升级系统,所以您的Linux系统已经预设安装了。如果您的系统还未安装这两个套件,可以从LinuxDVD安装光盘的Fedora/RPMS/取得yum-2.1.11-3.noarch.rpm、up2date-4.3.47-5.i386.rpm以及up2date-gnome-4.3.47-5.i386.rpm。或者从YUM的官方网站 http://www.linux.duke. edu/ projects/yum/下载最新版的YUM。
u yum官方网站: http://www.linux.duke.edu/projects/yum/



安装 yum
# rpm -ivh yum-2.1.11-3.noarch.rpm # rpm -ivh up2date-4.3.47-5.i386.rpm # rpm -ivh up2date-gnome-4.3.47-5.i386.rpm



设定yum服务器
要利用yum自动升级Linux系统之前,您必须先设定可供您索取RPM档案的yum服务器。因为yum升级系统并没有另外发展新的通讯协议,它下载档案的方式主要是透过http与ftp通讯协议来取得档案,也就是说放置Fedora CoreLinux更新档案的WWW站或者FTP站都可以当作您的yum服务器。因此找一台离您较近的服务器会让更新进度快速的完成,否则内订的服务器http://download.fedora.redhat.com因为远在美国,我们要透过它来升级系统,只能说慢的可以。而要寻找一台可供信赖且距离近的yum服务器,最简单的方法就是从Fedora官方网站http://fedora.redhat.com/ download/mirrors.html查出全球服务器的mirror列表,然后找一台离您最近的服务器,再将它设定到/etc/yum.conf档案中即可。底下就是几个离我们较近或速度较快的服务器:
国外 yum 服务器
安装光盘套件
http://mirrors.kernel.org/fedora/core/3/i386/os/
升级套件
http://mirrors.kernel.org/fedora/core/updates/3/i386/
安装光盘套件
http://ftp.freshrpms.net/pub/fedora/linux/core/3/i386/os/
升级套件
http://ftp.freshrpms.net/pub/fedora/linux/core/updates/3/i386/
国内yum服务器
http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/3/i386/os/
http://ftp.isu.edu.tw/pub/Linux/Fedora/linux/core/updates/3/i386/
http://linux.cdpa.nsysu.edu.tw/Linux/Fedora/linux/core/3/i386/os/
http://linux.cdpa.nsysu.edu.tw/L ... ore/updates/3/i386/

以mirrors.kernel.org为例,您必须先知道该FTP站将FedoraProject官方更新的RPM套件放置在哪一个目录底下,该目录通常是以Linux发行套件的版本名称如fedora为字眼,然后再搭配版本号码、系统平台如i386,最后以updates为字眼,您只要一层一层找下去最后只要『找到放置header/目录那一层的网址』即可,因为yum得靠header/目录下的header.info档案找到您所要安装RPM套件的位置,例如:笔者已经替您找好某台服务器的路径了,您可以使用浏览器到下列网址看看,是否有header/目录。
http://mirrors.kernel.org/fedora/core/3/i386/os/  (安装光盘套件)
http://mirrors.kernel.org/fedora/core/updates/3/i386/ (升级套件)
当然您也可以选取其它的FTP站,并不一定要使用笔者设定的FTP站,而且将来若yum服务器上的路径有所更改,您要记得使用FTP程序或者网页浏览器到该FTP站或网站上确定正确路径之后,再设定到yum.conf档案中即可。再来请编辑 /etc/yum.conf设定档:
# gedit /etc/yum.conf
yum.conf的内容共分成四段:base、updates-released、update-testing、以及development,base是定义Fedora安装光盘套件的位置,updates-released是定义Fedora升级套件的位置,后面update-testing与development则是测试与发展中套件的位置。我们只要定义base与updates-released的网址即可,因为update-testing与development套件可能还有错误会造成系统不稳,除非您是开发测试人员,否则不用安装这些套件。再来请把原先系统预设的服务器路径以 # 批注掉,然后改填入离您较近的服务器即可,请将base与updates-released段落中baseurl= 后面的网址替换成:
http://mirrors.kernel.org/fedora/core/3/i386/os/  (安装光盘套件)
http://mirrors.kernel.org/fedora/core/updates/3/i386/ (升级套件)
修改完网址并存盘之后即完成 /etc/yum.conf的设定,完整的设定档如下:
/etc/yum.conf设定档内容
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=20
obsoletes=1
gpgcheck=1
# 以上段落为内订设定,不需更改
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
# 告诉您可以直接将YUM升级网址放在此,或者另存成档案放在
/etc/yum.repos.d目录
# 为了方便性,您可以直接填写在 /etc/yum.conf 即可。
[base]
name=Fedora Core $releasever - $basearch - Base
baseurl=http://mirrors.kernel.org/fedora/core/3/i386/os/
# 请加入此段Fedora安装套件的网址描述
[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://mirrors.kernel.org/fedora/core/updates/3/i386/
# 请加入此段Fedora升级套件的网址描述
# 底下testing与development的网址不用理会,维持批注掉即可。
#[updates-testing]
#name=Fedora Core $releasever - $basearch - Unreleased Updates
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux
/core/updates/testing
#[development]
#name=Fedora Core $releasever - Development Tree
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux
/core/development/$basearch/



在此教您一个小技巧,如果网址太长很难输入,建议您先利用ncftp或者网页浏览器先连接到您预备设定为yumserver的FTP站,然后确认其放置Fedora安装套件的位置,以及Fedora升级套件的位置之后,然后执行pwd显示目前所在位置,这样就可以轻易地取得整个网址了。
启动 yum 升级系统
# yum check-update   (检查需要升级的套件)

Gathering header information file(s) from server(s)
Server: Fedora Core 2 - i386 - Base
Server: Fedora Core 2 - i386 - Released Updates
Finding updated packages
Downloading needed headers
iiimf-protocol-lib-1-11.4 100% |===================| 5.3 kB 00:00
xorg-x11-xauth-0-6.7.0-5. 58% |======== | 40 kB 00:01 ETA



第一次执行yumcheck-update必须花比较久的时间,因为yum必须检查服务器上所有header数据,请耐心等候。完成之后,往后第二次执行 yumcheck-update就会很快了,因为数据已经储存到您的系统上。而在使用yum升级系统之前,基于系统安全性考虑,yum需要所有RPM套件的GPG认证金钥,认证升级RPM套件的完整性之后,才能安全地帮您自动升级系统,所以您必须先加载FedoraDVD安装光盘的RPM-GPG-KEY与RPM-GPG-KEY-fedora这两个GPG认证金钥档案,才能执行yumupdate自动升级所有RPM套件。
# rpm --import RPM-GPG-KEY
# rpm --import RPM-GPG-KEY-fedora
# yum update   (自动升级所有RPM套件)

[update: mkisofs 8:2.01-0.a27.4.FC2.1.i386]
[update: rsync 2.6.2-1.i386]
[update: kdelibs 6:3.2.2-6.i386]
[update: xorg-x11-libs 6.7.0-5.i386]
[update: nfs-utils 1.0.6-22.i386]
[update: xorg-x11-libs-data 6.7.0-5.i386]
[update: xorg-x11-devel 6.7.0-5.i386]

Is this ok [y/N]: y   (最后询问您是否升级这些RPM套件?)
检查完header之后,直接执行yumupdate,yum程序会列出所有需要升级的RPM套件名称,然后询问您要不要更新,等您按y之后,系统就会自动升级了,您完全不需要自己抓取任何的RPM套件,以及理会烦人的RPM套件相依问题,系统会很顺利地升级服务器上的所有RPM套件。
另外yum程序已经自动在系统的/etc/cron.daily目录中放有yum.cron,每天会定时帮您自动执行yum系统升级程序,自动检查并更新服务器上update的新RPM套件,所有的yum执行过程也都会记录在/var/log/yum.log中,所以您的Linux系统安装yum之后,再也不用为系统安全漏洞而要更新哪些RPM套件而烦恼了,yum会永远默默的在背后替您更新成最新的Linux系统。




最后附上“YUM 命令使用方法“:
yum除了可以用来升级整个Fedora Core Linux系统之外,如果您不想每次都要上网去下载RPM档案会来安装,您也可以透过yum来帮您安装一个小软件,并帮您解决RPM套件的相依性问题。
# yum install net-snmp-utils
使用 yum install 单独安装一个RPM套件。关于服务器上的package名称,您可以先执行 yum list | more 来查询。
# yum list
查询服务器上的RPM套件名称。
# yum remove expat-devel
使用 yum remove 则会移除Linux系统上已经安装的RPM套件。您可以先执行 yum list installed | more查看系统已经安装的套件名称。
# yum list installed
查询系统已安装的RPM套件名称。
# yum clean packages
所有使用yum指令安装的RPM套件,都会从服务器下载回来并在 /var/cache/yum目录中,如果您觉得这些已经安装好的RPM套件已经无用了,可以执行yum clean packages把所有暂存的RPM档案都清除掉。
# yum clean headers
清除yum从服务器下载的header/ 目录与header.info档案。
# yum clean all


yum check-update 检查可更新的所有软件包
yum update 下载更新系统已安装的所有软件包
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum install <packages> 安装新软件包
yum update <packages> 更新指定的软件包
yum remove <packages> 卸载指定的软件包
yum groupinstall <groupnames> 安装指定软件组中的软件包
yum groupupdate <groupnames> 更新指定软件组中的软件包
yum groupremove <groupnames> 卸载指定软件组中的软件包
yum grouplist 查看系统中已经安装的和可用的软件组
yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包
yum list <regex> 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
yum list available 列出资源库中所有可以安装的rpm包
yum list available <regex> 列出资源库中与正则表达式匹配的所有可以安装的rpm包
yum list updates 列出资源库中所有可以更新的rpm包
yum list updates <regex> 列出资源库中与正则表达式匹配的所有可以更新的rpm包
yum list installed 列出资源库中所有已经安装的rpm包
yum list installed <regex> 列出资源库中与正则表达式匹配的所有已经安装的rpm包
yum list extras 列出已经安装的但是不包含在资源库中的rpm包
yum list extras <regex> 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包
yum list recent 列出最近被添加到资源库中的软件包
yum search <regex> 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值
yum provides <regex> 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值
yum clean headers 清除缓存中的rpm头文件
yum clean packages 清除缓存中rpm包文件
yum clean all 清除缓存中的rpm头文件和包文件
yum deplist <packages> 显示软件包的依赖信息
yum info 列出包信息
当第一次使用 yum 或 yum 资源库有更新时,yum会自动下载所有所需的 headers 放置于 /var/cache/yum 目录下,所需时间可能较长。
yum 命令可以使用 -y 参数用于用 yes 回答命令运行时所提出的问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-28 11:01 , Processed in 0.067071 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表