一、YUM(Yellowdog Updater, Modified) 1. yum 簡介 RPM 軟體包形式管理軟體雖然方便,但是需要手動解決軟體包的依賴問題。很多時候安裝一個軟體首先需要安裝 1 個或多個(有時多達上百個)其他軟體,手動解決依賴問題很複雜。使用 YUM 可以解決這個問題。Linux ...
一、YUM(Yellowdog Updater, Modified)
1. yum 簡介
RPM 軟體包形式管理軟體雖然方便,但是需要手動解決軟體包的依賴問題。很多時候安裝一個軟體首先需要安裝 1 個或多個(有時多達上百個)其他軟體,手動解決依賴問題很複雜。使用 YUM 可以解決這個問題。Linux 底層也是通過 YUM 來進行軟體包管理的(包括圖形界面)。
2. 設計目標
YUM(Yellowdog Updater, Modified)是一個基於 RPM 包管理的字元前端軟體包管理器,設計目的主要是用來自動解決 RPM 的依賴問題。其特點如下:
- 自動解決依賴關係
- 可以對 RPM 進行分組,並基於組進行安裝操作
- 引入倉庫概念,支持多個倉庫
- 配置簡單(/etc/yum.conf 和 /etc/yum.repos.d/*.repo)
二、YUM倉庫(Repository)
1. 倉庫簡介
YUM 引入了倉庫(Repository)的概念,用來存放所有現有的 RPM包。當使用 YUM 安裝一個 rpm 包的時候,如果存在依賴關係,YUM 會自動地在倉庫中查找依賴併進行安裝。倉庫可以是本地的,也可以通過 http、ftp 或 nfs 形式使用集中、統一的網路倉庫。YUM 通過倉庫來很好地管理 RPM 包。
2. 配置文件
YUM 的配置文件有 2 種:
(1)YUM 的主配置文件 /etc/yum.conf,為所有倉庫提供公共配置。配置參數格式如下:
[main] cachedir=/var/cache/yum/$basearch/$releasever 包的緩存目錄 keepcache=0 安裝後是否保留緩存 debuglevel=2 調試級別,預設為2(0~10) logfile=/var/log/yum.log 日誌文件 exactarch=1 是否需要平臺完全匹配 obsoletes=1 是否需要檢查已過期倉庫 gpgcheck=1 是否檢查包的完整性和合法性 plugins=1 是否允許支持YUM插件功能 installonly_limit=5 允許保留內核包的數量 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release 指定一個軟體包,YUM會根據這個包判斷你的發行版本,CentOS里預設centos-release
(2)各個倉庫的配置文件 /etc/yum.repos.d/ *.repo。配置參數格式如下:
[base] 倉庫名,必須唯一 name=CentOS-$releasever - Base 描述信息 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra 鏡像列表,根據該地址動態獲取baseurl #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ 真正的倉庫地址,可以多個 enabled=1 是否啟用該倉庫 gpgcheck=1 是否進行包的合法性檢測 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 軟體包的公鑰所在的文件路徑 enablegroups=1 是否基於組來批量管理程式包 failovermethod={roundrobin|priority} 有多個url可供選擇時,YUM的選擇次序,預設roundrobin(隨機選擇) cost=1000 倉庫優先順序,預設1000 備註部分: base庫:通常為系統發行版所提供的程式包(光碟) updates庫:存放更新包 extra庫:存放額外包 epel庫:epel庫文件
三、YUM基本命令
YUM 管理軟體包的常用命令有:
yum install package-name 安裝指定軟體包 yum remove package-name 卸載指定軟體包 yum update package-name 升級指定軟體包
四、YUM查詢
yum search keyword 關鍵字搜索相關包 yum list [all|installed|recent|updates] 列出[全部|已安裝的|最近的|更新]所有包 yum info package-name 查詢包信息 yum whatprovides filename 查詢哪個包提供了目標文件
五、創建YUM倉庫
可以通過以下方式手動創建 YUM 倉庫:
1. 將所有 rpm 文件拷貝到一個文件夾中
2. 通過 rpm 命令手動安裝 createrepo 軟體
3. 運行 createrepo -v /rpm-directory
4. 如果有分組信息,則再運行命令的時候使用 -g 參數指定分組文件
createrepo -g /tmp/*comps.xml/rpm-directory
(CentOS/RHEL 的分組信息保存在光碟目錄下 repodata/,文件名以 comps.xml 結尾)
創建好之後,本機可以通過 file 方式直接使用,或者可以通過 http、ftp 或 nfs 協議共用出去。
六、YUM緩存(Cache)
YUM 為了提高速度會有很多緩存,但有時候緩存會造成一些故障,可以通過以下命令來清理緩存:
yum clear all
每次運行 YUM 安裝或查詢一類的命令時會生成緩存。
OK,Linux 入門記錄系列暫時告一段落。
參考鏈接:YUM 的使用和YUM源的配置