| 本帖最后由 浪子雙城 于 2011-6-21 19:14 編輯
YUM 工作原理詳細(xì)介紹 YUM 優(yōu)點(diǎn) 自動解決包的依賴性的問題能更新的添加/刪除/更新/RPM包 便于管理大量系統(tǒng)的更新問題 可以同時配置多個資源庫(Repository) 簡潔的配置文件(/etc/yum.conf) 保持與RPM數(shù)據(jù)庫的一致性 有一個比較詳細(xì)的log.可以查看何時升級了什么軟件包 CentOS的鏡像站點(diǎn) 了解 鏡像站點(diǎn)的文件結(jié)構(gòu) 對理解 yum 配置文件 .repo 文件有幫助 http://mirror-status.centos.org http://isoredirect.centos.org/centos/5/isos/i386/ addons/ 本目錄包含Centos的addons 倉庫 centosplus/ 本目錄包含Centos的centosplus 倉庫 extras/ 本目錄包含Centos的extras 倉庫 fasttrack/ 本目錄包含Centos的extras 倉庫 isos-dvd/ 本目錄包含發(fā)行版的DVD iso 下載 isos/ 本目錄包含發(fā)行版 CD iso 下載 os/ 本目錄包含發(fā)行版(distributions)的倉庫 updates/ 本目錄包含Centos的updates倉庫
CentOS 的倉庫 倉庫(repository) 是一個預(yù)備好的目錄或網(wǎng)站,包含了軟件包和索引。 yum 可以在倉庫中自動定位并獲取正確的RPM軟件。 鏡像服務(wù)器為每個版本的Centos分別提供了一些倉庫。 Centos中的軟件管理工具 yum已經(jīng)預(yù)先配置為使用下列四個倉庫: base: 構(gòu)成Centos發(fā)行版(distributions)的軟件包和安裝光盤上的內(nèi)容一樣 updates: base 倉庫中軟件包的更新版本 addons: 已編譯的但不在發(fā)行版(distributions)中的軟件包 extras: 一大批附加的軟件包 centospuls: 用于增強(qiáng)一些現(xiàn)有軟件包的功能(默認(rèn)未啟用)
CentOS 倉庫的目錄結(jié)構(gòu) updates/ |--SRPMS #源代碼目錄 | |--*.src.rpm #源代碼包目錄 | |--repodata/ #源代碼的索引文件 |--i386 #Intel 32位平臺的目錄 | |--RPMS #Intel 32位平臺的RPMS目錄 | | |--*.i386.rpm #在intel 32位平臺上編譯的包文件 | | |--*.centos.noarch.rpm #與平臺無關(guān)的已編譯的包文件 | |--repodata/ #intel 32位平臺的索引文件 |--x68_64 #64位平臺的目錄 |--RPMS #64位平臺的RPMS目錄 | |--x68_64.rpm #在64位平臺上編譯的包文件 | |--*.centos.noarch.rpm #與平臺無關(guān)的已編譯的包文件 |--repodata/ #64位平臺的索引文件 配置YUM客戶的更新源 yum使用reposdir /etc/yum.repos.d 目錄下的一系列.repo 文件列出可獲取軟件包倉庫的鏡像站點(diǎn)地址. 默認(rèn)情況下有兩個: Centos-Base.repo: 用于設(shè)置遠(yuǎn)程倉庫 Centos-Media.repo: 用于設(shè)置本地倉庫
yum程序的目錄結(jié)構(gòu) /etc |--yum/ | |--/pluginconf.d | |--/yum-updatesd.conf/ | |--downloadonly.conf | |--fastestmirror.conf | |--priorities.conf |--yum.conf |--yum.repos.d/ |--CentOS-Base.repo |--CentOS-Media.repo
在.repo 文件中,配置語法是分段的,每一段配置一個軟件倉庫,語法如下:
設(shè)置網(wǎng)絡(luò)更新源 ----------------------------------------------------------------------------------------- [base] \\用于指定倉庫 name=CentOS-$releasever - Base \\用于指定易讀的倉庫名稱 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os \\用于指定本倉庫的URL #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ # =ftp:// \\用于指定遠(yuǎn)程ftp協(xié)議的愿 # =file:// \\ 用于本地鏡像或NFS掛載文件系統(tǒng) #nabled=0/1 \\用于指定是否使用本地倉庫,默認(rèn)為1,即可用。 gpgcheck=1 \\用于指定是否檢查軟件包的GPG簽名 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 \\用于指定GPG簽名文件的URL
注: 若指定mirrorlist,系統(tǒng)將從Centos 的鏡像站點(diǎn)中選擇離你最近的倉庫。 [$releasever]當(dāng)前系統(tǒng)的版本號 [$basearch] 當(dāng)前系統(tǒng)的構(gòu)架 baseurl 可以指定多個URL ,系統(tǒng)會依次檢查你列出的倉庫。以便某個服務(wù)器宕機(jī)時使用另一臺服務(wù)器
設(shè)置本地更新源 為了使用 [c5-media]倉庫,需將Centos-Base ----------------------------------------------------------------------------------------- [c5-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
----------------------------------------------------------------------------------------- 設(shè)置非官方更新源 以安置rpmforge 軟件包為例 在 http://rpm.pbone.net/ http://dag.wieers.com/rpm/ http://rpmforge.net http://rpm.livna.org http://freshrpms.net http://atrpms.net 中找到適用于 Centos 5 的軟件包 wget http://................rpmforge-release..... .rpm(省略了路徑和具體包的版本等信息,這要看你用網(wǎng)址和版本了) rpm -ivh rpmforge-release........... .rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-*
安裝 rpmforge-release 軟件包之后可以看到/etc/yum.repos.d/rpmfoge.repo文件
或者 建立一個DAG 的倉庫 vi /etc/yum.repos.d/dag.repo # [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1 gpgkey=http://dag.wieers.com/packages/RPM-GPG-KYE.dag.txt #
yum 命令工具
yum check-update 檢查可更新的軟件包 yum update 下載更新系統(tǒng)已安裝的所有軟件把 yum upgrade 大規(guī)模的升級,不同于上面的是,連舊的淘汰的包也升級 yum install <packages> 安裝指定的軟件包 yum update <packages> 更新指定的軟件包 yum remove <packages> 卸載指定的軟件包 yum groupinstall <packages> 安裝指定的軟件組中的軟件包 yum groupupdate <packages> 更新 ... ... yum groupremove <packages> 卸載 ... ... yum grouplist 查看系統(tǒng)中已經(jīng)安裝的和可以用的軟件組 yum list 列出資源庫中所有可以安裝or 更新以及已經(jīng)安裝的的rpm包 yum list <regex> 列出資源庫中與正則表達(dá)式匹配的可以安裝或更新以及已經(jīng)安裝的rpm包 yum list available 列出資源庫中所有可以安裝的rpm包 yum list available <regex> 列出資源庫中與正則表達(dá)式匹配的所有可以安裝的rpm包 yum list updates 列出資源庫中所有可以更新的rpm包 yum list updates <regex> 列出資源庫中與正則表達(dá)式匹配的所有可以更新的rpm包 yum list installed 列出資源庫中所有已經(jīng)安裝的rpm包 yum list installed <regex> 列出資源庫中與正則表達(dá)式匹配的所有已經(jīng)安裝的rpm包 yum list extras 列出已經(jīng)安裝的但是不包含在資源庫中的rpm包 yum list extras <regex> 列出與正則表達(dá)式匹配的已經(jīng)安裝的但是不包含在資源庫中的rpm包 yum list recent 列出最近被添加到資源庫中的軟件包 yum search <regex> 檢測所有可用的軟件的名稱、描述、概述和已列出的維護(hù)者,查找與正則表達(dá)式匹配的值 yum provides <regex> 檢測軟件包中包含的文件以及軟件提供的功能,查找與正則表達(dá)式匹配的值 yum clean headers 清除緩存中的rpm頭文件 yum clean packages 清除緩存中rpm包文件 yum clean all 清除緩存中的rpm頭文件和包文件 yum deplist <packages> 顯示軟件包的依賴信息
第一次使用yum或者yum資源庫有更新是.yum會自動下載所有需要的headers 放置于/var/cache/yum 還可以用yum info 命令列出包信息,yum info 可用的參數(shù)與 yum list的相同 yum 命令還可以使用 -y 參數(shù) 回答命令運(yùn)行時所提出的問題。
yum update 升級時 排除升級內(nèi)核 yum update 排除升級內(nèi)核,方法有兩個: 1.修改yum的配置文件 vi /etc/yum.conf,在[main]的最后添加exclude=kernel* 2.直接在yum的命令行執(zhí)行如下的命令: yum –exclude=kernel* update
附: 當(dāng)倉庫配置文件 *.repo 使用了多個URL yum-fastestmirror 可以自動選擇最快的鏡像站點(diǎn) yum -y install yum-fastestmirror yum-fastestmirror 的配置文件在 /etc/yum/pluginconf.d/fastestmirror.conf 默認(rèn)不需要修改。
yum -updatesd rpm -ql yum-updatesd
yum -cron yum -y install yum-cron rpm -ql yum-cron /etc |--/cron.daily/yum.cron 每日更新腳本 |--/cron.weekly/yum.cron 每周更新腳本 |--/rc.d/int.d/yum 啟動腳本 |--/yum/yum-daily.yum /usr/share/doc/yum-cron-0.1 |--/COPYING |--/README
使用yum下載而不安裝rpm包 先安裝yum-downloadonly # yum install yum-downloadonly
安裝后使用方法如下: # yum update httpd -y --downloadonly ###下載到默認(rèn)目錄 /var/cache/yum OR # yum update httpd -y --downloadonly --downloaddir=/opt ##下載到指定目錄 # yum install perl-MailTools --downloadonly --downloaddir=/opt -y ##如果軟件已經(jīng)下載過了,必須使用這個來下載
|
|