yum倉庫管理
可以通過在yum的本地配置文件里設置URL來指定軟件包的位置,方便以后選擇安裝某些程序包;yum可以自動處理包依賴關系,使安裝更方便;
可以通過ftp、http、本地file等方式連接指定的文件服務器上的yum倉庫;
每個rpm包都有元數據,yum倉庫會自動整理各個rpm包的元數據,生成一個元數據的描述信息,當有主機申請到yum倉庫下載安裝軟件時,首先會請求yum倉庫的元數據的描述信息然后存放到緩存當中,接着主機會根據元數據描述信息分析依賴關系,查看並排除那些在本機上已經安裝的,然后會以類似客戶端的身份去yum倉庫去下載所需的軟件包,主機會將它們緩存到本地,依據依賴關系先后安裝所需的軟件包;安裝之后會清除緩存的軟件包但是會保留此yum倉庫的元數據描述信息;
當yum倉庫里的軟件包更新以后,可能會改變原本的依賴關系,如果主機還使用之前保留的元數據描述信息來請求安裝軟件這是很有可能出問題的,但是如果直接請求新的元數據描述信息又浪費帶寬雖然它是經過壓縮的,並且元數據描述信息里面不止一個文件,它可能包含軟件包名、依賴關系、元數據文件以及元數據文件校驗碼等文件,為了節省帶寬,每次主機都會請求校驗碼而不是元數據描述信息,然后比較上次的和新得到的校驗碼,如果改變了就重新請求元數據描述信息再下載安裝需要的軟件包;
使用yum安裝軟件包的時候,沒有安裝完成而終止了,yum無法分析上次安裝成功與否,yum解決這種問題;
使用createrepo可以創建元數據描述信息;
指定yum倉庫URL路徑時其路徑通常為repodate目錄所在的目錄;
YUM:yellow dog,Yellowgod Update Modifier
yum repository:yum repo
存儲了眾多rpm包,以及包的相關的元數據文件(放置於特定目錄向/repodata);
文件服務器
ftp://
http://
file://
nfs://
yum配置文件:
/etc/yum.conf:設置公共配置
/etc/yum.repo.d/*.repo:設置每個倉庫私有的配置
幫助文檔:man yum.conf
倉庫的各個關鍵字定義:
[repositoryID]
name=Some name for this repository :指定軟件倉庫的名稱;
baseurl=url://path/to/repository:指定軟件倉庫的URL,支持同時設置多個URL;
enabled={0|1}:是否啟動此軟件倉庫,默認為1;
gpgcheck={0|1}:是否校驗軟件包的完整性及來源合法性;
gpgkey=URL:指定驗證來自某個軟件倉庫里面的rpm包時所使用的公鑰;
enablegroup={0|1}:是否啟用軟件包組安裝;
failovermethod={roundrobin|priority}:當同時指定多個URL時,設置選擇URL的規則;
默認為roundrobin,輪詢方式即隨機選擇;priority,按優先級選擇即順序選擇;
cost:設置倉庫開銷,越小越優先;
默認為1000
yum管理命令:
yum {option} [command] [packages …]
* install package1 [package2] [...]:安裝軟件包;
* update [package1] [package2] [...]:升級軟件包;
* update-to [package1] [package2] [...]:同上;
* update-minimal [package1] [package2] [...]
* check-update:檢查可用升級包;
* upgrade [package1] [package2] [...]:升級軟件包;
* upgrade-to [package1] [package2] [...]升級軟件包;
* distribution-synchronization [package1] [package2] [...]
* remove | erase package1 [package2] [...]:移除指定軟件包的同時會卸載依賴於此軟件包的軟件;
* autoremove [package1] [...]
* list [...]:按安裝與否等信息顯示所有軟件包,最后一個字段表示來自哪個倉庫源以及安裝狀態;
* info [...]:顯示軟件包信息;
* provides | whatprovides feature1 [feature2] [...]
查看任何feature的簡要信息(提供此功能的軟件包及簡要描述信息等),可以是文件、命令等;
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]:清除元數據緩存;
* makecache [fast]:構建元數據緩存,即到各個倉庫下載元數據描述信息;
* groups [...]:包組安裝;
* search string1 [string2] [...]:模糊查找含有指定string的軟件包;
* shell [filename]
* resolvedep dep1 [dep2] [...]
(maintained for legacy reasons only - use repoquery or yum provides)
* localinstall rpmfile1 [rpmfile2] [...]:安裝從倉庫下載的軟件包時可以結合本地軟件包生成依賴關系,從而方便安裝;
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]:升級從倉庫下載的軟件包時可以結合本地軟件包生成依賴關系,從而方便安裝;
(maintained for legacy reasons only - use update)
* reinstall package1 [package2] [...]:重新安裝;
* downgrade package1 [package2] [...]:軟件包降級;
* deplist package1 [package2] [...]:查看指定軟件包的依賴關系;
* repolist [all|enabled|disabled]:按需查看軟件倉庫;
* repoinfo [all|enabled|disabled]:查看軟件倉庫的詳細信息;
* repository-packages <enabled-repoid> <install|remove|remove-or-reinstall|remove-or-distribution-synchronization> [pack- age2] [...]
* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
* history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
查看用戶安裝、升級、卸載等操作歷史;
* load-transaction [txfile]
* updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates | exclude-all | check-running-kernel]
* fssnapshot [summary | list | have-space | create | delete]:跟快照有關;
* fs [filters | refilter | refilter-cleanup | du]
* check
yum命令選項:
--nogpgcheck:禁止進行gpgcheck檢測;
-y:對於安裝時出現的交互,自動回答為yes
-q:靜默安裝;
--disablerepo=repoidglob:臨時禁用某個repo;
--enablerepo=repoidglob:臨時啟用某個repo;
--noplugins:禁用所有插件;
yum的repo配置文件中可用的變量;
變量的作用:一般情況下yum倉庫會為不同平台、不同版本、不同硬件創建不同的目錄來供 主機訪問,為了使方便,服務器方可能會提供統一的repo配置文件,但是為了適應以上的各種不同,所以引用了變量來自動根據主機的平台設置訪問路徑;達到了一個配置文件可以被多個不同平台使用的方法;
變量:
$releasever:當前OS的發行版的主版本號;
$arch:平台;
$basearch:基礎平台;
$YUM0~$YUM9;
例子:http://www.guowei.com/centos/$releasever/$basearch/os
創建yum庫
creterepo [options] <directory>
createrepo ./
注:根據馬哥視頻做的學習筆記,如有錯誤,歡迎指正;侵刪