yum(全稱為 Yellow dog Updater, Modified)yum相對于rpm來說:rpm為基礎包管理器,yum則是rpm的前端工具。能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。,yum無法獨立存在,系統不允許有兩個yum命令同時運行,如果有兩個,第二次運行時會報錯。這是為了防止yum之間的沖突。
yum接收到需要安裝的程序包的名稱之后,通過文件共享協議(或者文件傳輸協議),在配置文件中指向的yum倉庫(可以是多個)中查詢需要的程序包。找到之后,通過文件下載協議,將程序包下載至本地yum的緩存目錄中,當安裝完成后,緩存目錄便會被刪除
但如果yum每次到yum倉庫都需要遍歷,就會導致速度很慢。而yum倉庫中有兩類數據:程序和程序的元數據。yum倉庫在創建時,會將所有程序的名字、大小、版本以及依賴關系這類的屬性信息提取出來并保存至repodata目錄中。所以在yum第一次訪問yum倉庫時,會獲取倉庫中元數據(repodata),并下載至本地。因此,下次需要安裝程序包時,只需從本地緩存中獲得信息,直接到倉庫下載即可
如何保持本地緩存repodata和服務器端的repodata實時同步呢?yum每次訪問倉庫都會先獲取repodata目錄中每個文件的特征碼,并與本地的進行比較,如果不相同,就重新下載并覆蓋
yum repository:yum repo
存儲了眾多的rpm包,以及包的相關的元數據文件(放置于特定目錄下:repodata);
文件服務器
URL:統一資源定制地址
ftp://
http://
nfs://
file://
yum客戶端
rpm -q yum :查詢本地是否安裝了yum客戶端,如果安裝了則可以使用yum功能
rpm -qc yum :查詢yum的配置文件
配置文件:
指向倉庫的位置以及相關的各種配置信息。每個yum命令行可以同時指向多個倉庫,倉庫間可以進行優先級等相關配置,優先級是由開銷決定的。
配置文件有兩部分組成:主配置文件以及各倉庫的配置文件。因為如果所有的配置信息都放在一個文件中就顯得太臃腫、不方便。其中主配置文件所在路徑為/etc/yum.conf,它為各倉庫指向提供公共配置文件;而各倉庫的配置文件所在路徑為:/etc/yum.repos.d/*.repo,里面都是以賦值的格式存在
/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置信息
倉庫指向的定義
[repositoryID]
name=some name for this repository
baseurl=url1://path/to/repository/倉庫指向的路徑
url2://path/to/repository/
url3://path/to/repository/
enabled={1|0}:是否啟用此倉庫;默認為啟動
gpgcheck={1|0}:是否檢查完整性及來源合法性
repogpgcheck={1|0}:是否檢測源數據文件的gpgcheck
gpgkey=URL:檢查所需的密鑰文件
enablegroup={1|0}:是否支持在此倉庫上使用組:默認為啟用
failovermethod={roundrobin|prioity}:輪循,優先級取安裝包路徑;默認為roundrobin(輪循),意為隨機挑選。
cost=1000(默認)開銷
1:表示開
0:表示關
yum命令
yum [options] [command] [package …]
顯示倉庫列表:
repolist [all|enabled|disabled]
顯示程序包
list
yum list [all | glob_exp1] [glob_exp2] […]
yum list available|install|updates [glob_exp1] […]
安裝程序包
install
安裝時可以指定版本號
reinstall package1 [package2] […](重新安裝)
升級程序包
update [package1] [package2] […]
downgrade package1 [package2] […](降級)
檢查可以升級
check-update
卸載程序包
remove | erase package1 [package2] […]
查看程序包的infomation
info […]
查看指定的特性(可以是某文件)是由哪個程序包提供;
provides | whatprovides feature1 [feature2] […]
清理本地緩存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
構建緩存:
makecache
搜索:
search string1 [string2] […]
以指定的關鍵字搜索程序包名及summary信息;
查看指定包所以來的capabilities
deplist package1 [package2] […]
查看yum事物歷史
history [info|list|packages-list|packages-info|sum-mary|addon-info|redo|undo|rollback|new|sync|stats]
安裝及升級本地程序包
localinstall rpmfile1 [rpmfile2] […](maintained for legacy reasons only – use install)
localupdate rpmfile1 [rpmfile2] […](maintained for legacy reasons only – use update)
包組管理的相關命令:
groupinstall group1 [group2] […]
groupupdate group1 [group2] […]
grouplist [hidden] [groupwildcard] […]
groupremove group1 [group2] […]
groupinfo group1 […]
mount -r /dev/cdrom /media/cdrom
mount 掛載
yum的命令行選項
–nogpgcheck:禁止進行gpg check;
-y:自動回答為“yse”
-q:靜默模式
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啟用此處指定的repo
–noplugins:禁用所有插件
yum的repo配置文件中可用的變量
$releasever:當前os的發行版的主版本號
$arch:平臺
$basearch:基礎平臺
$YUM0-$YUM9
http://mirrors.mageedu.com/centos/$releasever/$basearch/os
如何使用光盤當作本地yum倉庫
(1)掛載光盤至某目錄,例如/media/cdrom
#mount -r -t iso9660 /dev/cdorm /media/cdrom
(2)創建配置文件
進入/etc/yum.repos.d目錄下創建一個名為.repo結尾的配置文件,并編輯以下信息
[base]
name=
baseurl=
gpgcheck=
enabled=
gpgkey=
使用yum repolist查看yum倉庫列表
安裝報錯問題
gpg key parsing failed:no key found in given key data
使用yum makecache和yum update 解決,并且成功安裝軟件
創建本地yum源倉庫
createrepo 選項 目錄
首先使用命令yum install createrepo安裝createrepo文件,這個文件是可以幫我們組織和管理創建出rpm包的相關的repodata目錄文件,
然后使用lftp命令鏈接到FTP服務器上去下載rpm包(以教室環境為例)
lftp 10.1.0.1:/pub/Sources/6.x86_64/xen4centos/x86_64/Packages> mget *.rpm
cd到下載RPM包的指定目錄(目錄需事先創建)中可看到剛才下載的包
然后cd到下載包的目錄中執行createrepo ./(直接指定當前工作目錄)命令生成repo目錄
命令執行成功后及可在路徑下看到已經生成了repodate目錄
至此!本地yum源已經創建完成了,此yum源可以放在ftp或http服務中被遠程使用,也可以在本地使用。
在/etc/yum.repos.d/base.repo將此yum源添加進配置文件
使用yum repolist命令查看yum源列表可看到此源已經被添加,并且可以正常安裝
命令整理
-
-y:自動回答為yes
-
list:列出所有倉庫中的程序包,支持通配符
-
all:所有程序包
-
available:可用的,倉庫中有尚未安裝的
-
installed:已經安裝的
-
clean:清理緩存。yum緩存路徑:/var/cache/yum/
-
yum clean all:清除所有緩存信息,但不會清除目錄
-
repolist:顯示倉庫列表及其簡要信息
-
all:所有的倉庫
-
enabled:已經啟用的倉庫
-
disabled:未啟用的倉庫
-
install:安裝
-
yum install [-y] PACKAGE_NAME
-
remove|erase:卸載。和此程序包有依賴性的其他包也會被一并卸載
-
infoPACKAGE … :查詢程序的相關簡要信息。這個包裝不裝都沒有關系,只要倉庫中有就行
-
grouplist:列出所有包組
-
groupinstall:安裝包組
-
可直接用install、remove或update來管理包組,在包組前面加@用以區分:yuminstall @"Server Platform Development"
完
原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/37963