Linux軟件管理 - YUM工具
文本關鍵字:Linux、軟件管理、YUM工具、解決依賴前端
1、YUM介紹
1. YUM含義
YUM的全稱是:Yellowdog Updater Modified,是一個基於RPM包管理的Shell前端軟件包管理器。因爲是基於RPM包管理器,那麼使用的場景也就和RPM相似,主要支持的Linux操做系統爲:RedHat、CentOS、Fedora。YUM還提供了圖形化前端工具:yumex和kyum,須要在yum正常工做的前提下使用。python
2. YUM特色
- 使用python開發
- 須要對應的軟件倉庫(repository)
- 自動化升級、安裝、移除rpm軟件包
- 能夠很好的解決RPM軟件包依賴問題
- 能夠自定義多個資源庫/yum源(repository)
3. YUM工做流程
- 執行yum命令
- 讀取yum配置文件,獲取倉庫信息
- 在倉庫中搜索元數據文件,肯定所需軟件及依賴的軟件
- 下載相關軟件包及校驗文件
- 按順序安裝軟件包
- 當遠程倉庫更新後能夠經過相應的命令更新本地緩存(軟件元信息)
2、經常使用操做
在系統安裝完畢後已經默認配置了網絡源,在網絡暢通的狀況下,可使用yum命令完成軟件的安裝、升級、卸載等操做。數據庫
1. 經常使用指令
- install {package1} [package2] [...]
- 將安裝最新版的軟件以及相關的依賴,能夠同時安裝多個軟件包,用空格隔開
- 指定的軟件包能夠是一個名稱,也能夠是一個rpm軟件包文件
- 當指定爲一個rpm軟件包文件時,效果等同於localinstall
- update/update-to [package1] [package2] [...]
- 不填寫軟件包參數時將更新系統的全部軟件至最新版
- 指定的軟件包能夠是一個名稱,也能夠是一個rpm軟件包文件
- 當指定爲一個rpm軟件包文件時,效果等同於localupdate
- update-to:能夠指定將軟件升級至某一版本
- check-update:列出全部可更新的軟件清單
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
- remove/erase {package1} [package2] [...]:刪除指定的軟件包
- list
- 不寫任何參數時等同於all:列出全部可用的軟件包信息以及已安裝的軟件包信息
- available:列出全部在yum源中可安裝的軟件包
- updates:列出全部在yum中可用於升級的軟件包
- installed:列出全部已安裝的軟件包信息
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
- info:列出某一個軟件或全部軟件的詳細信息,支持的選項與list相同
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
- clean
- 不填寫參數時效果等同於clean all:將會清空全部本地緩存文件
- packages:清空已下載的全部軟件包,默認狀況下不會自動刪除
- metadata:清空已下載的元信息緩存文件,再次運行yum時會從新下載進行緩存
- expire-cache:清除過時的緩存,若是緩存數據仍然可用,將不會執行刪除操做
- rpmdb:清空全部緩存在本地的rpm軟件數據庫信息
- plugins:清空全部插件對應的緩存數據
- all:清空上面列出的全部緩存數據
- makecache:在本地緩存元數據
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
- search {string1} [string2] [...]:根據提供的信息搜索軟件包,會優先根據名稱搜索,若是未發現會使用描述信息和url匹配
- localinstall {rpmfile1} [rpmfile2] [...]:使用yum安裝一個rpm軟件包,會自動從可用源中搜索安裝所需依賴軟件
- localupdate {rpmfile1} [rpmfile2] [...]:使用yum升級一個rpm軟件包,會自動從可用源中搜索安裝所需依賴軟件
- reinstall {package1} [package2] [...]:從新安裝某個軟件包,以最近一次安裝的版本爲準
- deplist {package1} [package2] [...]:列出某一個軟件包相關的依賴軟件列表
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
只截取了部份內容,嗯,果真,rpm軟件依賴一不當心就會變成噩夢,yum,感謝有你。centos
- repolist [all/enabled/disabled]
- all:顯示全部的yum源
- enabled:顯示全部開啓狀態的yum源
- disabled:顯示全部關閉狀態的yum源
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
- check:檢查本地rpm數據庫和產品信息是否有誤
2. 經常使用選項
- -y:自動使用yes應答過程當中的選項
- -q:取消輸出內容,靜默安裝
- -v:輸出詳細信息
- -R:設置最大等待時長,單位爲分鐘
- --version:顯示當前yum工具版本
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
- --skip-broken:解決卸載軟件時產生的依賴錯誤問題
- --downloadonly:只進行軟件的下載
- --downloaddir:指定軟件包下載路徑
3、YUM源的管理維護
1. yum配置文件
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
yum makecache
4、本地YUM源配置
1. 配置項說明
- [serverid]:repo的惟一標識,用於區分不一樣的repo
- name:對repo的描述,支持使用$進行引用變量值的寫法
- mirrorlist:鏡像列表地址,打開以後是一個記錄多個鏡像地址的列表,會自動在這些列表中掃描選擇鏡像資源
- release:發行版本,對應的大版本號,如:6,7
- arch:系統架構,32位通常對應i386,64位對應x86_64
- repo:倉庫類型,如os、fasttrack等
- infra:該選項可省略,對應值爲stock,能夠在/etc/yum/vars/infra中查看
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
- baseurl:直接指向一個yum源地址,支持多種協議
- http:網絡傳輸協議
- ftp:文件傳輸協議
- file:文件協議,能夠指向一個本地磁盤路徑
- gpgcheck:是否開啓gpg校驗
- gpgkey:指定校驗文件URL
- enabled:是否啓用該配置
- failovermethode:對應倉庫出現故障時如何挑選
- roundrobin:默認選項,隨機挑選
- priority:按順序挑選
2. 掛載光盤鏡像
因爲系統鏡像中包含了大部分經常使用的軟件包,因此在離線狀況下通常都是使用系統鏡像做爲yum源。使用虛擬機時能夠直接進行光盤鏡像掛載,物理機時能夠搭建ftp服務器或者將光盤鏡像文件燒錄至U盤後掛載,亦或是將其中的內容所有拷貝至系統某一個路徑下。bash
光盤鏡像掛載後,會在/dev下被識別爲cdrom,使用以下命令進行掛載:服務器
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
3. 修改配置文件
- 使默認的Base配置失效,不然在無網絡鏈接的狀況下會出現找不到服務器的錯誤
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
- 以Media文件爲模板,將baseurl指定爲光盤掛載路徑,完整配置內容以下(CentOS-Media.repo):
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/
gpgcheck=0
enabled=1
若是gpgcheck指定爲1,則須要正確指定gpgkey的值爲校驗文件所在路徑,如:/mnt/cdrom/RPM-GPG-KEY-CentOS-6網絡
4. 可用驗證
yum makecache
![Linux軟件管理 - YUM工具](http://static.javashuo.com/static/loading.gif)