|
本帖最后由 浪子雙城 于 2011-6-21 19:14 編輯
YUM 工作原理詳細介紹
YUM 優(yōu)點
自動解決包的依賴性的問題能更新的添加/刪除/更新/RPM包
便于管理大量系統(tǒng)的更新問題
可以同時配置多個資源庫(Repository)
簡潔的配置文件(/etc/yum.conf)
保持與RPM數據庫的一致性
有一個比較詳細的log.可以查看何時升級了什么軟件包
CentOS的鏡像站點
了解 鏡像站點的文件結構 對理解 yum 配置文件 .repo 文件有幫助
http://mirror-status.
http://isoredirect./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) 是一個預備好的目錄或網站,包含了軟件包和索引,。
yum 可以在倉庫中自動定位并獲取正確的RPM軟件,。
鏡像服務器為每個版本的Centos分別提供了一些倉庫。
Centos中的軟件管理工具 yum已經預先配置為使用下列四個倉庫:
base: 構成Centos發(fā)行版(distributions)的軟件包和安裝光盤上的內容一樣
updates: base 倉庫中軟件包的更新版本
addons: 已編譯的但不在發(fā)行版(distributions)中的軟件包
extras: 一大批附加的軟件包
centospuls: 用于增強一些現有軟件包的功能(默認未啟用)
CentOS 倉庫的目錄結構
updates/
|--SRPMS #源代碼目錄
| |--*.src.rpm #源代碼包目錄
| |--repodata/ #源代碼的索引文件
|--i386 #Intel 32位平臺的目錄
| |--RPMS #Intel 32位平臺的RPMS目錄
| | |--*.i386.rpm #在intel 32位平臺上編譯的包文件
| | |--*.centos.noarch.rpm #與平臺無關的已編譯的包文件
| |--repodata/ #intel 32位平臺的索引文件
|--x68_64 #64位平臺的目錄
|--RPMS #64位平臺的RPMS目錄
| |--x68_64.rpm #在64位平臺上編譯的包文件
| |--*.centos.noarch.rpm #與平臺無關的已編譯的包文件
|--repodata/ #64位平臺的索引文件
配置YUM客戶的更新源
yum使用reposdir /etc/yum.repos.d 目錄下的一系列.repo 文件列出可獲取軟件包倉庫的鏡像站點地址.
默認情況下有兩個:
Centos-Base.repo: 用于設置遠程倉庫
Centos-Media.repo: 用于設置本地倉庫
yum程序的目錄結構
/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 文件中,,配置語法是分段的,,每一段配置一個軟件倉庫,語法如下:
設置網絡更新源
-----------------------------------------------------------------------------------------
[base] \\用于指定倉庫
name=CentOS-$releasever - Base \\用于指定易讀的倉庫名稱
mirrorlist=http://mirrorlist./?release=$releasever&arch=$basearch&repo=os \\用于指定本倉庫的URL
#baseurl=http://mirror./centos/$releasever/os/$basearch/
# =ftp:// \\用于指定遠程ftp協議的愿
# =file:// \\ 用于本地鏡像或NFS掛載文件系統(tǒng)
#nabled=0/1 \\用于指定是否使用本地倉庫,,默認為1,,即可用。
gpgcheck=1 \\用于指定是否檢查軟件包的GPG簽名
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 \\用于指定GPG簽名文件的URL
注:
若指定mirrorlist,系統(tǒng)將從Centos 的鏡像站點中選擇離你最近的倉庫,。
[$releasever]當前系統(tǒng)的版本號
[$basearch] 當前系統(tǒng)的構架
baseurl 可以指定多個URL ,系統(tǒng)會依次檢查你列出的倉庫,。以便某個服務器宕機時使用另一臺服務器
設置本地更新源
為了使用 [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
-----------------------------------------------------------------------------------------
設置非官方更新源
以安置rpmforge 軟件包為例
在
http://rpm./
http://dag./rpm/
http://
http://rpm.
http://
http://
中找到適用于 Centos 5 的軟件包
wget http://................rpmforge-release..... .rpm(省略了路徑和具體包的版本等信息,,這要看你用網址和版本了)
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./redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag./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)中已經安裝的和可以用的軟件組
yum list 列出資源庫中所有可以安裝or 更新以及已經安裝的的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或者yum資源庫有更新是.yum會自動下載所有需要的headers 放置于/var/cache/yum
還可以用yum info 命令列出包信息,yum info 可用的參數與 yum list的相同
yum 命令還可以使用 -y 參數 回答命令運行時所提出的問題。
yum update 升級時 排除升級內核
yum update 排除升級內核,,方法有兩個:
1.修改yum的配置文件 vi /etc/yum.conf,,在[main]的最后添加exclude=kernel*
2.直接在yum的命令行執(zhí)行如下的命令:
yum –exclude=kernel* update
附:
當倉庫配置文件 *.repo 使用了多個URL yum-fastestmirror 可以自動選擇最快的鏡像站點
yum -y install yum-fastestmirror
yum-fastestmirror 的配置文件在 /etc/yum/pluginconf.d/fastestmirror.conf 默認不需要修改。
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 ###下載到默認目錄 /var/cache/yum
OR
# yum update httpd -y --downloadonly --downloaddir=/opt ##下載到指定目錄
# yum install perl-MailTools --downloadonly --downloaddir=/opt -y ##如果軟件已經下載過了,,必須使用這個來下載
|
|
|