一、YUM簡介
??? 1.?YUM: Yellowdog Update Modifier
完成RHEL系列前端自動解決依賴關系安裝工具,依賴rpm存在
??? 2.工作模式:C/S?架構
????? Server端(yum倉庫):依賴關系庫、原文件、校驗碼文件
????? Client端:yum客戶端程序、配置文件(連接Server路徑信息)
??? 3.設計缺陷:
某一次安裝過程中半途終止,再次重啟后將無法解決程序間的依賴關系
yum升級版dnf就是為了解決此類問題
??? 2.yum repository: yum repo,yum倉庫
存儲rpm包,以及包的相關的元數據文件(放置于特定目錄下:repodata);
二、YUM客戶端配置
??? 1.yum配置文件路徑
/etc/yum.conf:為所有yum倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
??? 2./etc/yum.conf主配置定義
????????[root@localhost ~]# man 5 yum.conf?????????? #可獲得yum.conf的詳解
???????[root@localhost ~]# cat /etc/yum.conf
[main]????????????#通用主配置段
cachedir=/var/cache/yum/$basearch/$releasever??????????#?緩存文件路徑
keepcache=0?????????????????????#?緩存到本地的文件是否保存
debuglevel=2???????????????????#?調試級別
logfile=/var/log/yum.log?????????????????#?安裝的日志文件
exactarch=1??????????????????????????????????????????????#?精確嚴格的平臺release匹配
obsoletes=1
gpgcheck=1??????????????????????#檢測來源合法性和完整性
plugins=1?????????????????????????#支持插件機制
installonly_limit=5????????????????????#同時安裝多少程序包
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bu????????#?追蹤bug路徑
distroverpkg=centos-release???????????????#?當前發行版版本號從哪兒獲取
#? This is the default, if you make this bigger yum won’t see if the metadata
# is newer on the remote and so you’ll “gain” the bandwidth of not having to
# download the new metadata and “pay” for it by yum not having correct
# information.
#? It is esp. important, to have correct metadata, for distributions like
# Fedora which don’t keep old packages around. If you don’t like this checking
# interupting your command line usage, it’s much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
??? 3.倉庫(*.repo)配置文件定義:
[repositoryID]????????#倉庫ID,唯一標識別,不能重復
name=Some name for this repository???????#??完整的倉庫名稱
baseurl=url://path/to/repository/??????????# yum倉庫指明的訪問路徑
enabled={1|0}???????????#是否啟用此yum倉庫,默認啟用
gpgcheck={1|0}??????????????#是否檢查完整性和來源合法性
gpgkey=URL?????????????????????#秘鑰文件位置,可能是對方倉庫提供
enablegroups={1|0}??????????????#是否基于組來批量管理程序包
failovermethod={roundrobin|priority}????#故障轉移方法:輪詢、根據優先級選擇;?默認roundrobin隨機
cost=#??????????????????? #設置開銷,默認為1000
… …
?????說明:
??????????????? 1)*.repo可以將多個[repositoryID]的配置信息放在一個而文件內,也可以切成多個方便管理
???? 2)baseurl可以使用:ftp://?、http://?、nfs://?、file:///??指明URL路徑
???? 3)baseurl等號兩邊不能有空格,其后可以填寫多個鏡像訪問路徑,每行一個,不能頂行寫
???????????多個訪問路徑間聯系是鏡像相同,目的是為了做備用訪問
???? 4)更多選項使用man? 5? yum.conf查看,基本配置只需前三行就可以????????
???? 5)發行版光盤鏡像安裝可能會自動配置網絡鏡像URL地址
三、yum命令的用法
?yum???[options]???[command]???[package …]?
??? 1.OPTIONS
????–nogpgcheck:禁止進行gpg check;
??? ????????-y:????自動回答為“yes”;
??? ????????-q:?靜默模式,不輸出顯示信息;
–disablerepo=repoidglob:臨時禁用此處指定的repo;
–enablerepo=repoidglob:臨時啟用此處指定的repo;
–noplugins:禁用所有插件;
??? 2.常用COMMAND
??????? (1)顯示倉庫列表:repolist
???#?yum?repolist [all|enabled|disabled]??? [所有|可用的|不可用]
??????? (2)顯示程序包:list
?????????????????# yum list [all | glob_exp1] [glob_exp2] […]???? [所有的|符合glob通配條件的]
????????????????# yum list {available|installed|updates} [glob_exp1] […]???可用尚未安裝的,已經安裝的,可升級的
??????? (3)安裝程序包:install
??? ???????? #?yum??install package1 [package2] […]
???????????????? # yum?reinstall package1 [package2] […]? (重新安裝)
??????? (4)卸載程序包:此時依賴于此安裝包也會被卸載
??? ????????yum?remove | erase package1 [package2] […]?????????
??????? (5)升、降級安裝程序包:update、downgrade
??? ????????# yum?update [package1] [package2] […]?????????升級操作
??? ????????# yum?downgrade package1 [package2] […]???????降級操作
??????? (6)檢查可用升級:check-uodate
??? ????????# yum?check-update
??????? (7)查看程序包簡要信息:info
??? ????????# yum?info [package1]??[package2]??[…]
??????? (8)查看指定的特性(可以是某文件)是由哪個程序包所提供:provides
??? ????????yum??provides | whatprovides feature1 [feature2] […]
??????? (9)清理本地緩存:clean
??? ????????# yum??clean??<packages | metadata | expire-cache | rpmdb | plugins | all?>
包、源數據、過期緩存、rpmdb、插件、所有
包安裝完了會自動清除、而元數據(依賴關系等)不會自動,但下次yum安裝會自動重新校驗
??????? (10)構建緩存:重新yum安裝會自動創建緩存數據:makecache
??? ????????#? yum?makecache
??????? (11)以指定的關鍵字搜索程序包名及summary信息:search
??? ????????? # yum??search??string1??[string2]??[…]???
??????? (12)查看指定包所依賴的功能(capabilities):
??? ?????????? # yum?deplist??package1??[package2] […]
??????? (13)查看yum事務歷史:history
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
??? 3.COMMAND:安裝及升級本地程序包
指定安裝本地的*.rpm,但是會根據yum源現有依賴關系,解決此安裝可能出現的依賴關系
???????????? # yum??localinstall rpmfile1 [rpmfile2] […]
?????????????# yum??localupdate rpmfile1 [rpmfile2] […]
??? 4.COMMAND:包組管理的相關命令:
包組:一堆程序的一個集合,用于一起安裝,因為某些程序安裝需要依賴包組內容
????????????????? # yum??groupinstall group1 [group2] […]?????安裝包組
????????????????? # yum??groupupdate group1 [group2] […]????升級包組
????????????????? # yum??grouplist [hidden] [groupwildcard] […]???顯示包組列表
???????????????? # yum??groupremove group1 [group2] […]?????移除包組
???????????????? # yum??groupinfo group1 […]???顯示包組信息
四、創建yum倉庫
??? 1.使用光盤當作本地yum倉庫:
光盤的鏡像本身就是一個yum源,自己安裝系統時候選擇安裝工具時就是借助yum自動安裝
???????(1)掛載光盤至某目錄,例如/media/cdrom???# mount -r?[-t iso9660]??/dev/cdrom /media/cdrom
???????(2)創建配置文件
??? ????????[ID]
name=
??? ????????baseurl=file:///… …
gpgcheck=
??? 2.yum的repo配置文件中可用的變量:
$releasever: 當前OS的發行版的主版本號;
$arch: 平臺;
??? ????????$basearch:基礎平臺,同一系列最基本的架構,如32、64;
??? ????????$YUM0-$YUM9?可做自定義
??? 3.手動創建yum倉庫:
??????? (1)安裝工具:createrepo
??????? (2)下載所需要的所有文件到本地某個路徑
??????? (3)創建關聯關系:?createrepo – Create repomd (xml-rpm-metadata) repository
命令:createrepo???[options]???<directory>
當完成狗會生成repodata即可
??????? (4)配置yum源文件,創建*.rope寫入信息即可
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96863