本節主要介紹基於Red Had的系統(測試系統centos)html
yum是CentOS/Fedora系統自帶的,所以它能使用CentOS官方的軟件源,完成各類官方發佈的各類升級。對於第三方軟件源的支持,yum也不差,大多數支持apt的repository,也能支持yum 。linux
yum主要功能是更方便的添加/刪除/更新RPM包,自動解決包的倚賴性問題,便於管理大量系統的更新問題。正則表達式
yum能夠同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf),自動解決增長或刪除rpm包時遇到的依賴性問題,保持與RPM數據庫的一致性。數據庫
1.1 查看系統默認安裝的yumvim
yum的基礎安裝包包括:centos
1.2 yum倉庫瀏覽器
yum 是linux環境安裝軟件包的一種方式。不少時候安裝一個軟件安裝一個軟件須要安裝1個或者多個其餘軟件。緩存
yum倉庫用來存放全部的現有的.rpm包,當使用yum安裝一個rpm包時,須要依賴關係,會自動在倉庫中查找依賴軟件並安裝。倉庫能夠是本地的,也能夠是HTTP、FTP、nfs形式使用的集中地、統一的網絡倉庫 。服務器
若是你的linux環境不能訪問外網,那你裝yum沒有意義,由於他須要訪問http的倉庫裏面的。固然若是你有本地倉庫,就把/etc/yum.repos.d改一下地址就能夠。
1.3 安裝yum
能夠經過wget從網上下載相關包安裝,也能夠掛載系統安裝光盤進行安裝。
命令 | 功能 |
---|---|
yum check-update | 檢查可更新的全部軟件包 |
yum update | 下載更新系統已安裝的全部軟件包 |
yum upgrade | 大規模的版本升級,與yum update不一樣的是,連舊的淘汰的包也升級 |
yum install <packages> | 安裝新軟件包 |
yum update <packages> | 更新指定的軟件包 |
yum remove <packages> | 卸載指定的軟件包 |
yum groupinstall <groupnames> | 安裝指定軟件組中的軟件包 |
yum groupupdate <groupnames> | 更新指定軟件組中的軟件包 |
yum groupremove <groupnames> | 卸載指定軟件組中的軟件包 |
yum grouplist | 查看系統中已經安裝的和可用的軟件組 |
yum list | 列出資源庫中全部能夠安裝或更新以及已經安裝的rpm包 |
yum list <regex> | 列出資源庫中與正則表達式匹配的能夠安裝或更新以及已經安裝的rpm包 |
yum list available | 列出資源庫中全部能夠安裝的rpm包 |
yum list available <regex> | 列出資源庫中與正則表達式匹配的全部能夠安裝的rpm包 |
yum list updates | 列出資源庫中全部能夠更新的rpm包 |
yum list updates <regex> | 列出資源庫中與正則表達式匹配的全部能夠更新的rpm包 |
yum list installed | 列出資源庫中全部已經安裝的rpm包 |
yum list installed <regex> | 列出資源庫中與正則表達式匹配的全部已經安裝的rpm包 |
yum list extras | 列出已經安裝的可是不包含在資源庫中的rpm包 |
yum list extras <regex> | 列出與正則表達式匹配的已經安裝的可是不包含在資源庫中的rpm包 |
yum list recent | 列出最近被添加到資源庫中的軟件包 |
yum search <regex> | 檢測全部可用的軟件的名稱、描述、概述和已列出的維護者,查找與正則表達式匹配的值 |
yum provides <regex> | 檢測軟件包中包含的文件以及軟件提供的功能,查找與正則表達式匹配的值 |
yum clean headers | 清除緩存中的rpm頭文件 |
yum clean packages | 清除緩存中rpm包文件 |
yum clean all | 清除緩存中的rpm頭文件和包文件 |
yum deplist <packages> | 顯示軟件包的依賴信息 |
3.1 說明:yum的配置文件分爲兩部分:main和repository
YUM的工做原理並不複雜,每個RPM軟件的頭(header)裏面都會紀錄該軟件的依賴關係,那麼若是能夠將該頭的內容紀錄下來而且進行分析,能夠知道每一個軟件在安裝以前須要額外安裝哪些基礎軟件。也就是說,在服務器上面先以分析工具將全部的RPM檔案進行分析,而後將該分析紀錄下來,只要在進行安裝或升級時先查詢該紀錄的文件,就能夠知道全部相關聯的軟件。因此
YUM的基本工做流程以下:
3.2 yum.conf文件詳解
3.3 yum.repos.d文件詳解
在.repo文件中,配置語法是分段的,每一段配置一個軟件倉庫,配置語法以下:
[repositoryid] name=Some name for this repository baseurl=url://server1/path/to/repository/ url://server2/path/to/repository/ url://server3/path/to/repository/ mirrorlist=url://path/to/mirrorlist/repository/ enabled=0/1 gpgcheck=0/1 gpgkey=A URL pointing to the ASCII-armoured GPG key file for the repository
在name baseurl中常用以下的變量:
baseurl : 用於指定本倉庫的URL, #從服務器獲取軟件的路徑,只有設置正確,才能從上面獲取軟件。
基本格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
baseurl後能夠跟多個url,你能夠本身改成速度比較快的鏡像站,但baseurl只能有一個,其中url指向的目錄必須是這個repositoryheader目錄的上一級,它也支持$releasever$basearch這樣的變量。其中url支持的協議有http://ftp://file://三種:
3.3.1 設置網絡更新源
下面是一個CentOS-Base.repo文件的實例,在此文件中沒有設置mirrorlist ,使用baseurl只指定了一個URL。
[base] name=CentOS-$releasever - Base baseurl=http://centos.candishosting.com.cn/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [updates] name=CentOS-$releasever - Updates baseurl=http://centos.candishosting.com.cn/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [addons] name=CentOS-$releasever - Addons baseurl=http://centos.candishosting.com.cn/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [extras] name=CentOS-$releasever - Extras baseurl=http://centos.candishosting.com.cn/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [centosplus] name=CentOS-$releasever - Plus baseurl=http://centos.candishosting.com.cn/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
3.3.2 設置本地更新源
爲了使用安裝光盤做爲更新源,能夠修改CentOS-Media.repo 文件,下面是一個配置實例。
[c5-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta
4.1 設置yum本地源:
[root@localhost /]# vim /etc/yum.repos.d/local.repo # 配置yum本地源
[local #] name = local yum baseurl = file://mnt #設置本地源文件 gpgcheck=0 enabled=1
測試:
使用rpm安裝的時候,會提示依懶性關係,須要依序一步一步才能安裝。
使用yum安裝的時候,直接安裝完成。
爲何rpm在路徑/mnt/Packages下就不能自行處理依懶性關係, 而yum在路徑/mnt/ 就能夠的呢?
緣由是由於yum先讀取配置文件裏的信息 baseurl = file://mnt 查找本地源,
重點還要查找一個依懶性文件(早已寫好依賴性關係)repodata, 找到須要的全部的安裝包文件
.....