YUM:Yellowdog Updater Modified
php
Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包,無須繁瑣地一次次下載、安裝。(bing 詞典)前端
yum能夠檢測軟件間的依賴性,並提示用戶解決,將發佈的軟件放到yum server,而後分析這些軟件的依賴關係,而後將軟件相關性記錄成列表。當客戶端有軟件安裝請求時,yum客戶端在yum服務器上下載記錄列表,而後通 過列表信息與本機rpm數據庫已安裝軟件數據對比,明確軟件的依賴關係,可以判斷出那些軟件須要安裝。git
列表信息保存在yum客戶端的/var/cache/yum中,每次yum啓動都會經過校驗碼與yum服務器同步更新列表信息。web
使用yum須要有yum repositories,用來存放軟件列表信息和軟件包。yum repositories能夠是http站點,ftp站點,本地站點。sql
路徑格式:數據庫
ftp://hostname/PATH/TO/REPO REPO指repodata所在路徑的父目錄
http://hostname/PATH/TO/REPO
file:///PATH/TO/REPO
vim
yum配置centos
/etc/yum.conf 全局配置,對全部倉庫都適用的配置瀏覽器
[root@localhost ~]# cat /etc/yum.conf [main] #yum 緩存的目錄,yum 在此存儲下載的rpm 包和數據庫,默認設置爲/var/cache/yum cachedir=/var/cache/yum/$basearch/$releasever #安裝完成後是否保留軟件包,0爲不保留(默認爲0),1爲保留 keepcache=0 #Debug 信息輸出等級,範圍爲0-10,缺省爲2 debuglevel=2 #yum 日誌文件位置。用戶能夠到/var/log/yum.log 文件去查詢過去所作的更新。 logfile=/var/log/yum.log #有1和0兩個選項,設置爲1,則yum 只會安裝和系統架構匹配的軟件包 exactarch=1 #容許更新陳舊的RPM包 obsoletes=1 #是否啓用插件,默認1爲容許,0表示不容許。 plugins=1 #容許保留多少個內核包 installonly_limit=5 #bug管理 bugtracker_url= #指定一個軟件包,yum會根據這個包判斷你的發行版本, #默認是redhat-release,也能夠是安裝的任何針對本身發行版的rpm包。 distroverpkg=centos-release
/etc/yum.repos.d/*.repo 一個文件一般用於一個或一組功能相近或相關的倉庫
緩存
[root@localhost yum.repos.d]# cat CentOS-Base.repo [base] #[REPO_ID] 用於區別各個不一樣的repository,惟一性 name=CentOS-$releasever - Base name, #name 是對repository的描述,支持像$releasever $basearch這樣的變量; mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #mirrorlist指定一個鏡像服務器的地址列表,將$releasever和$basearch替換成本身對應的版本和架構, #例如10和i386,在瀏覽器中打開,咱們就能看到一長串鏡可用的鏡像服務器地址列表。 #baseurl= enabled = 1 #這個選項表示這個repo中定義的源是啓用的,0爲禁用 gpgcheck=1 #啓用gpg的校驗,肯定rpm包的來源安全和完整性 0爲禁止 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #定義用於校驗的gpg密鑰 #cost= #cost開銷,默認是1000,開銷越大,優先使用級越低。 .....
注意:[REPO_ID]中不能有空格,不然報錯
定義倉庫指向可用變量:
$releasever: 引用當前系統的主版本號;從[main]部分的distroverpkg獲取;
$basearch: 當前系統的基本架構;i386, i486, i586, i686: i386
例如:http://mirror.centos.org/centos/$releasever/os/$basearch/
示例:配置aliyun的yum源
[root@localhost yum.repos.d]# vim CentOS-aliyun.repo 1 [aliyun] 2 name=CentOS-$releasever-aliyun 3 baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ 4 enabled=1 5 gpgcheck=1 6 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #列出可用yum repository 發現阿里雲已經在列表中 [root@localhost yum.repos.d]# yum repolist enabled Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.skyshe.cn * extras: mirrors.cqu.edu.cn * updates: mirrors.pubyun.com repo id repo name status aliyun CentOS-7-aliyun 8,652 base/7/x86_64 CentOS-7 - Base 8,652 extras/7/x86_64 CentOS-7 - Extras 181 updates/7/x86_64 CentOS-7 - Updates 1,480
yum命令:
語法:yum [options] [command] [package ...]
選項:
安裝: install package1 [package2] [...]
[root@localhost ~]# yum install php
卸載:remove | erase package1 [package2] [...] 卸載指定包
[root@localhost ~]# yum remove php
autoremove [package1] [...] 同時卸載相關依賴包
升級:update [package1] [package2] [...]
check-update 檢測已安裝包的更新信息
#檢查已安裝包的可用更新 [root@localhost ~]# yum check-update ...... NetworkManager.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates NetworkManager-adsl.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates NetworkManager-libnm.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates NetworkManager-tui.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates bind-libs-lite.x86_64 32:9.9.4-18.el7_1.5 updates ...... #更新指定包 [root@localhost ~]# yum update sqlite #更新所有包 [root@localhost ~]# yum update
從新安裝:reinstall package1 [package2] [...]
#從新安裝相同版本的軟件包 [root@localhost ~]# yum reinstall net-tools
降級安裝:downgrade package1 [package2] [...]
[root@localhost packages]# yum downgrade package
查詢:info [...]
#查詢資源庫中指定包的相關信息 [root@localhost ~]# yum info php ...... Available Packages Name : php Arch : x86_64 Version : 5.4.16 Release : 36.el7_1 Size : 1.4 M Repo : updates/7/x86_64 Summary : PHP scripting language for creating dynamic web sites ...... #查詢資源庫中全部能夠安裝或更新的rpm包的信息 [root@localhost ~]# yum info #查詢資源庫中全部能夠更新的rpm包的信息 [root@localhost ~]# yum info updates #查詢已經安裝的全部的rpm包的信息 [root@localhost ~]# yum info installed #列出已經安裝的可是不包含在資源庫中的rpm包的信息 [root@localhost ~]# yum info extras
rpm包列表:list [...]
#列出資源庫中全部能夠安裝或更新的rpm包 [root@localhost ~]# yum list #列出資源庫中特定的能夠安裝或更新以及已經安裝的rpm包 [root@localhost ~]# yum list zip [root@localhost ~]# yum list zip* #注:能夠在rpm包名中使用匹配符,如列出全部以zip開頭的rpm包 #列出資源庫中全部能夠更新的rpm包 [root@localhost ~]# yum list updates #列出已經安裝的全部的rpm包 [root@localhost ~]# yum list installed #列出已經安裝的可是不包含在資源庫中的rpm包 [root@localhost ~]# yum list extras
搜索rpm包:search string1 [string2] [...]
#搜索匹配特定字符的rpm包 #search KEYWORD [root@localhost ~]# yum search php #注:在rpm包名,包描述等中搜索 #搜索有包含特定文件名的rpm包 #provides /PATH/TO/SOMEFILE [root@localhost ~]# yum provides php
清理緩存:clean [ packages | headers | metadata | expire-cache | rpmdb | plugins | all ]
#清除暫存中rpm包文件 [root@localhost ~]# yum clean packages #清除暫存中rpm頭文件 [root@localhost ~]# yum clean headers #清除暫存中包文件 [root@localhost ~]# yum clean metadata #清除暫存中過時數據 [root@localhost ~]# yum clean expire-cache
建立緩存:makecache [fast]
[root@localhost packages]# yum makecache
包組:groups [...]
#包組列表 [root@localhost packages]# yum grouplist ....... Available Groups: Compatibility Libraries Console Internet Tools Development Tools Graphical Administration Tools Legacy UNIX Compatibility Scientific Support Security Tools #包組信息 [root@localhost packages]# yum group info "Security Tools" #安裝包組 [root@localhost packages]# yum group install "Security Tools" #卸載包組 [root@localhost packages]# yum group remove "Security Tools"
倉庫命令:
#repolist [all|enabled|disabled] 列出所有/可用/不可用倉庫 [root@localhost ~]# yum repolist enabled ...... repo id repo name status aliyun/7/x86_64 CentOS-7-aliyun 8,652 base/7/x86_64 CentOS-7 - Base 8,652 extras/7/x86_64 CentOS-7 - Extras 181 updates/7/x86_64 CentOS-7 - Updates 1,480 repolist: 18,965 #repoinfo [all|enabled|disabled] 列出所有/可用/不可用倉庫信息 [root@localhost ~]# yum repoinfo enabled ...... Repo-id : aliyun/7/x86_64 Repo-name : CentOS-7-aliyun Repo-revision: 1427842153 Repo-updated : Wed Apr 1 06:50:46 2015 Repo-pkgs : 8,652 Repo-size : 6.3 G Repo-baseurl : http://mirrors.aliyun.com/centos/7/os/x86_64/ Repo-expire : 21,600 second(s) (last: Thu Sep 17 09:22:44 2015) Repo-filename: /etc/yum.repos.d/CentOS-aliyun.repo ......
使用光盤做爲本地庫:
1 掛載光盤至某目錄
2 定義倉庫,使用file:///指明訪問路徑
示例:
#掛載光盤 [root@localhost cdrom]# mount -r /dev/cdrom /mnt/cdrom/ #定義倉庫 [root@localhost yum.repos.d]# vim centos-local-ISO.repo [centos7-ISO] name=centos-local-iso baseurl=file:///mnt/cdrom enabled=1 gpgcheck=0 cost=100 #查看可用repository root@localhost yum.repos.d]# yum repolist enabled ...... repo id repo name status centos7-ISO centos-local-iso 325 aliyun/7/x86_64 CentOS-7-aliyun 8,652 ......
建立本地倉庫:
1 安裝createrepo工具
[root@localhost ~]# yum install createrepo
2 創建repository資源,創建header文件
#createrepo /PATH/TO/RPMFILES/ [root@localhost ~]# createrepo packages/ Spawning worker 0 with 2 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete #生成repodata文件 [root@localhost ~]# ls packages/ 2048-cli-0.9-4.git20141214.723738c.el7.x86_64.rpm repodata openstack-ceilometer-alarm-2014.2.2-1.fc22.noarch.rpm
3 能夠在/etc/yum.repos.d目錄下定義本地repository
[root@localhost yum.repos.d]# cat local.repo [localrepo] name=local-repo baseurl=file:///root/packages gpgcheck=0 enabled=1
DNF包管理器前端管理工具:
後續更新。
若有錯誤,敬請指正!
謝謝!