Yum 全稱是 (Yellow dog Updater Modified)×××狗更新 呵呵 藉助於Yum,可以更新,卸載,升級rpm 軟件包,並且他能夠自動解決rpm包之間的依賴關係。能夠讓管理人員的工作更加輕鬆自如。特別是一些擁有大量linux主機的網絡中,Yum機制顯得就格外重要。
先說說他的工作機制吧,其實Yum的配置並不是很難,主要要理解Yum的工作機制,他爲什麼能夠自動解決rpm之間的依賴關係,靠的又是什麼?
簡單的說,yum機制可有有兩大部分組成,yum的服務端和yum的客戶端。如圖
Yum的客戶端:
只需要在 /etc/yum.repros.d/*.repo 有repo 爲後綴的文件來指向yum源即可(前提:物理和協議上能夠通信)
Yum 的服務器端:
Yum的服務器有可以稱爲Yum倉庫 它的構成必須有兩個條件
① 以 .rpm爲結尾的文件 也就是我們說的rpm軟件包文件。
那麼rpm包的來源可以可以分爲三類
——Red Hat發佈的RPM包集合 (就是各linux安裝光盤中的)
——第三方組織發佈的RPM包集合
——用戶自定義的RPM包集合
② 有相應的倉庫數據庫文件, 倉庫數據庫文件中就是記錄了每個rpm軟件包中的包頭信息以及各個rpm包之間的依賴關係, 這是YUM 機制的重點。
爲了大家的理解,我在這分析了一下linux6.0的光盤結構
Linux 6.0 x 32 位
HighAvailability 高可用相關軟件包,如rhcs等相關套件
Server 常規軟件包,如mysql,httpd,開發工具,系統管理工具等
LoadBalancer 負載均衡相關軟件包,如lvs,pirihan
ResilientStorage 存儲方面的軟件包
Linux 6.0 32位的光盤提供了這四個YUM倉庫 他們四個每個目錄下都有一個repodata的目錄來存放倉庫的數據庫文件 .xml的文件是索引文件。
其他結構
Packages 真正存放所有軟件包的目錄images rhel安裝進程所需要的引導和驅動鏡像文件,
isolinux 鏡像文件引導時所需要的文件
而linux6.0 x64位的光盤 提供了5個YUM倉庫
新增加了 ScalableFileSystem 可擴展的文件系統 包括 SAN ISCSI 等
軟件倉庫是由若干的rpm軟件包和倉庫數據庫所組成。怎樣提供給客戶端使用那?大致也是分爲三種類型:
本地訪問file:///…… 也就是本機既是rpm倉庫, 有事yum的客戶端
FTP 訪問 ftp://……
WEB 訪問 http://……
其實也可以分爲兩類: 本地訪問 和 網絡訪問
Yum命令格式:
yum <options> <command> <package name...>
參數說明:
options: 常用的有:
-y : 如果在工作過程中如要使用者響應,這個參數可以直接回答yes
command:
list : 列出在yum server 上面有的RPM套件;若執行yum list installed則表示只列出系統中已安裝的軟件包,yum list available則表示只列出軟件倉庫中可用(尚未安裝)的軟件包,yum list update則表示列出可以升級版本的軟件包。
install: 安裝某個套件
update : 升級某個套件,如果update後面沒有接套件名稱,即更新目前主機所有已安裝的套件.
info : 列出某個套件的詳細信息,相當於rpm -qi package內容
clean : 將已下載到本機的packages或headers移除
remove : 移除已經安裝在系統中的某個套件
yum updates 全部更新
yum updates package 更新指定程序包package
yum check-update 檢查可更新的程序
yum info <package> 顯示安裝包信息
yum list 顯示所有已經安裝和可以安裝的程序包
yum list <package> 顯示指定程序包安裝情況
yum search <keyword>查找軟件包,當需要根據某個關鍵詞來查找相關的軟件包時,可以執行yum search 關鍵詞,默認僅根據軟件包名稱和描述信息進行搜索。若執行yum search all 關鍵詞,可以擴大搜索範圍,例如,以下將搜索軟件倉庫並列出與httpd相關的軟件包。Yum search all httpd
yum clean headers 清除header
yum clean packages 清除下載的rpm包
yum clean all 清除header與rpm包
yum grouplist ,列出所有組
yum groupinstall 安裝某個軟件組如:yum groupinstall Virtualization 安裝虛擬化
下面就以上做幾個實驗案例
先來 以本地方式 搭建yum
我用的是linux6.0
配置YUM 倉庫
掛載光盤
查看
倉庫數據庫目錄
其他YUM 倉庫的查看略
構建YUM倉庫的條件都已經符合
下面要在/etc/yum.repos.d/ 下創建以 .repo結尾的文件指向yum倉庫
內容如下
[ ] #來指定yum倉庫的名稱 可以自定義
name= #描述信息
baseurl=file:/// #本地訪問
ftp:// #FTP方式訪問
http:// #web訪問
enable= # 1表示啓用這個倉庫 0 表示不啓用 enable也可以是enabled
gpgcheck= # 1表示啓用校驗簽名 0 表示不校驗
gpgkey= #如上面值爲1 校驗 要指定GPG公鑰位置
如file:///etc/pki/RPM-GPG-KEY-redhat-release
如值爲0 則本行可以省略 或添加#號註釋
我的配置如下
驗證
沒有加 -y 選項 會詢問
如果要把其他的倉庫全添加上 如下
下面分別是通過 ftp的方式和http的方式搭建YUM
FTP:
YUM SERVER 192.168.1.1
YUM CLIENT 192.168.1.2
Server:
先要搭建ftp服務 並且防火牆要允許通過
添加規則
添加ftp模塊 vim /etc/syconfig/iptables-config
重啓防火牆服務 啓動ftp
ftp沒有問題了 還要把yum倉庫中的文件複製到ftp的目錄中(直接掛載也行)
YUM 倉庫配置完成
到192.168.1.2上面配置
先測試ftp是否能夠正常登陸
這是因爲ftp客戶端軟件沒有安裝 提示找不到命令
測試
YUM 客戶端文件
我用scp命令把1.1上面的文件複製了過來 懶得寫了
最終
如果第二次使用yum安裝時提示一下錯誤
側是/etc/yum.repos.d/ 目錄下一定有兩個或多個.repo結尾的文件 刪除多餘的即可,也可以mv成其他後綴的名稱
WEB:
總體上是擦不多的,YUM 主要的就是倉庫的配置和客戶機的配置
先192.168.1.1上面安裝web服務 注意防火牆
YUM倉庫的rpm包文件和倉庫數據庫文件
然後客戶端的配置
最後注重點一下 第三方YUM 源的問題
從網站上下載的軟件包的集合 只有rpm軟件包文件,而沒有yum倉庫數據庫文件。這時候就要用到createrepo 軟件了 他是專門用於生成yum倉庫數據文件的
用法:createrepo --database 跟rpm集合的目錄
如createrepo --database /var/other
安裝
執行
end