yum是什么
Yum (Yellow dog Updater, Modified) 由Duke University團隊,修改Yellow Dog Linux的Yellow Dog Updater開發而成,是一個基于 RPM 包管理的字符前端軟件包管理器。能夠從指定的服務器自動下載 RPM 包并且安裝,可以處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux采用。
yum工作機制
C/S架構:client –> server
yum倉庫(server端):
保存rpm包以及元數據,如:包名、版本信息、各包所包含的文件列表、依賴關系、包分組信息等。
yum客戶端(client端):以安裝過程為例
第一步:獲取倉庫元數據,緩存于本地,緩存目錄/var/cache/yum
第二步:yum客戶端讀取并分析本地緩存的元數據文件,結合本地系統環境做出要安裝的程序包的決策,如依賴關系
第三步:根據決策聯系yum倉庫,下載各程序包緩存到本地,一并進行安裝
yum倉庫:
可以理解為rpm包的文件服務器,repodata目錄所在的父目錄就是一個可用倉庫。
自建一個yum倉庫:
1、把rpm包放到一個目錄
2、通過createrepo命令分析該目錄的rpm包,然后生成元數據目錄repodata
3、配置yum客戶端使用此倉庫即可,就是這么簡單。
yum客戶端:
要想通過yum管理rpm包,需要讀取yum倉庫的配置文件,指明倉庫訪問路徑及各種屬性信息
主配置文件:/etc/yum.conf
一個或幾個相關倉庫的配置信息可保存為一個文件,文件名以.repo結尾:/etc/yum.repos.d
文件格式:
[REPOID] name=Some name for this repository #設置該yum倉庫的名稱 baseurl=url://server1/path/to/repository/ #方式1:指定yum倉庫訪問路徑,支持多種url,如:ftp、nfs、http等,可指定多個url http://mirror.centos.org/centos/$releasever/os/$basearch/ #URL中也支持$releasever 、$basearch這樣的變量,指定系統版本號 mirrorlist=/path/to/urlfile #方式2:可以將多個url寫入一個文件,然后讀取這個文件 enabled={0|1} #是否啟用該yum倉庫,0為不啟用,1為啟用,默認為1 gpgcheck={0|1} #是否校驗rpm包,0為不啟用,1為啟用 gpgkey=URL #如果校驗,指定公鑰文件路徑
yum配置文件中可用的四個變量:
$releasever: 程序的版本,對Yum而言指的是redhat-release版本;只替換為主版本號,如RedHat 6.5,則替換為6;
$arch: 系統架構
$basearch: 系統基本架構,如i686,i586等的基本架構為i386;
$uuid:
$YUM0-9: 在系統中定義的環境變量,可以在yum中使用;
一個配置文件支持多個yum倉庫
1、列出所有repo
[root@qin ~]# yum repolist {enabled|disabled|all} #enabled列出可用的,disabled列出禁用的,all列出所有(默認)
2、列出rpm包及包組
[root@qin ~]# yum list {all|installed|available} #all列出所有包(默認),installed列出已安裝的包,available列出可安裝的包 [root@qin ~]# yum list KEYWORD* #列出指定前綴的所有包,支持文件名通配
3、包的描述信息
[root@qin ~]# yum info package_name
4、列出所有包組信息
[root@qin ~]# yum grouplist
5、顯示包組的信息:例如組中包含的程序包列表
[root@qin ~]# yum groupinfo "GROUP NAME"
6、清理緩存
[root@qin ~]# yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}
7、安裝程序包
[root@qin ~]# yum install package_name [root@qin ~]# yum reinstall package_name #重新安裝
8、包的升級和降級
[root@qin ~]# yum check-update #檢查可用的升級包 [root@qin ~]# yum update package_name #可以指定升級包的版本號升級;如果不指定包名,就升級所有可用的升級包 [root@qin ~]# yum downgrade package_name #包降級
9、包的卸載
[root@qin ~]# yum {remove|erase} package_name
10、查詢某文件是由哪個包安裝生成的
[root@qin ~]# yum {whatprovides|provides} /path/to/somefile
11、安裝包組
[root@qin ~]# yum groupinstall "GROUP NAME"
12、卸載包組
[root@qin ~]# yum groupremove "GROUP NAME"
13、只下載包,不安裝
[root@qin ~]# yumdownloader package_name #此命令由yum-utils包提供
14、另外一些常用選項介紹
--nogpgcheck #不對包做校驗 --disablerepo=[repo] #安裝時禁用某些yum倉庫 -y: #對所有交互式操作返回yes [root@qin ~]# yum history #顯示yum的歷史記錄 [root@qin ~]# yum history list X #X是歷史事務ID,顯示指定事務明細操作 [root@qin ~]# yum history redo X #重新執行指定事務 [root@qin ~]# yum history undo X #回滾指定事務 [root@qin ~]# yum makecache #生成元數據 [root@qin ~]# yum search STRING #查找包含指定關鍵字的包
原創文章,作者:秦,如若轉載,請注明出處:http://www.www58058.com/4241