Linux_軟件管理_YUM

YUM是什麼?

YUM是Yellodog Update Modified的縮寫,暱稱“黃狗更新器”。

是紅帽系列Linux中的一個軟件。

其主要作用就是解決RPM軟件包安裝時的依賴問題。

YUM能夠自動查找並解決rpm包之間的依賴關係,無需用戶逐個手動的去安裝/卸載每一個rpm軟件包。

幾乎所有紅帽系列的Linux系統中 均會默認安裝有yum。

yum只是爲了解決RPM依賴關係問題的一個工具,而不是一種軟件封裝模式。

RPM仍然是紅帽系列Linux中的默認軟件管理器,yum可以視爲RPM的一個前臺工具。

 

YUM

· 工作原理

RPM軟件包存在一個包頭header,header中有該軟件的依賴關係。

yum服務器端事先對RPM軟件包進行分析,將軟件包所有依賴關係記錄成一個文件。

並將其依賴的所有軟件包囊括到yum服務器中備用。

 

yum服務器端放着軟件源,軟件源中有軟件倉庫。

倉庫裏放着:所有RPM軟件包的目錄索引,每個RPM軟件包的依賴性關係數據,該軟件倉庫中所有RPM軟件包。

 

用戶需要安裝某個軟件包時,可通過yum客戶端,查詢某個yum服務器上有無該軟件。

如有則下載軟件包的依賴關係數據,根據這些數據一次性的將其所依賴的軟件全部下載下來進行安裝。

 

· 使用YUM之前

建議先執行兩個步驟

1、使用yum命令的clean參數,清除yum原有的軟件包緩存數據

2、使用yum命令的makecache參數,將當前服務器上的軟件包相關信息存到本地以提高搜索軟件的速度。

[root@hanaii ~]# yum clean all
[root@hanaii ~]# yum makecache

 

· 軟件管理

1、安裝

命令:yum install package_names

[root@hanaii ~]# yum install gcc-c++

yum會檢查軟件的依賴關係,然後詢問是否安裝。

鍵入Y開始下載安裝。

 

2、查詢

命令:yum list package_names(支持通配符)

當軟件在本機上經安裝時,會提示Installed Package。

[root@hanaii ~]# yum list gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
gcc-c++.x86_64    4.8.5-28.el7_5.1     @updates                                                            

 

當軟件未在本機上安裝,且源的軟件倉庫中存在軟件包,會提示Available Packages。

[root@hanaii ~]# yum list bind
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Available Packages
bind.x86_64    32:9.9.4-61.el7_5.1    updates


當軟件不在軟件源中,會提示No matching Packages to list

[root@hanaii ~]# yum list xxx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Error: No matching Packages to list

 

list後可跟:installed和available兩個參數。分別表示本機以安裝軟件,當前源可用軟件包。 
由於這兩個命令的輸出較多,建議用管道結合less命令來進行查看。

 

3、查看軟件包的描述信息和概要信息

命令:rpm info package_names

[root@hanaii ~]# yum info gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
Name        : gcc-c++
Arch        : x86_64
Version     : 4.8.5
Release     : 28.el7_5.1
Size        : 16 M
Repo        : installed
From repo   : updates
Summary     : C++ support for GCC
URL         : http://gcc.gnu.org
License     : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Description : This package adds C++ support to the GNU Compiler Collection.
            : It includes support for most of the current C++ specification,
            : including templates and exception handling.

 

4、更新

命令:rpm update package_names

[root@hanaii ~]# rpm update pythron

...

Updated:
  python.x86_64 0:2.7.5-69.el7_5                     

Dependency Updated:
  python-libs.x86_64 0:2.7.5-69.el7_5


5、卸載

命令:rpm remove packages_names

[root@hanaii ~]# yum remove gcc-c++

...

Removed:
  gcc-c++.x86_64 0:4.8.5-28.el7_5.1    
Complete!

相關依賴也會被卸載

 

· 需要注意的

普通用戶只能用yum列出和查看軟件,無法用yum安裝、卸載軟件。

 

YUM配置第三方軟件源

· 默認軟件源

CentOS中的yum,默認使用的是CentOS提供的軟件源。

CentOS官方源十分審慎,其收錄的軟件包:

不包括任何有版權爭議的軟件包,其包裏的軟件不求新。一般爲較舊的穩定版本。

 

基於此,CentOS官方源中所包含的軟件包數量不會很多。

許多有用的軟件都不在CentOS的官方源中,如:Eclipse、mplayer等等。

所以需要通過額外的配置第三方軟件源,實現對更多軟件的管理。

 

· 推薦的第三方軟件源

以下軟件源是完全兼容CentOS紅帽等Linux系統的第三方源。

補充:阿里雲鏡像源https://opsx.alibaba.com/mirror

 

· 安裝與配置

以RepoForge源爲例。

 1、下載安裝

下載適用於系統的軟件源安裝包。使用rpm或yum安裝。

[root@hanaii ~]# wget http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
[root@hanaii ~]# yum install rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm 

 

2、找到配置文件

進入/etc/yum.repos.d目錄,該目錄爲yum的配置目錄,放置的是軟件源的配置文件。
找到第三方軟件源對應的配置文件。如RepoForge源對應的就是rpmforge.repo。

[root@hanaii yum.repos.d]# ls -al
total 32
...
-rw-r--r--   1 root root 1128 Jun 12  2014 rpmforge.repo

 

3、 優先級配置

安裝後的第三方源現還無法使用。

因爲存在一個官方源,在管理時,yum不知道從哪個源獲取軟件包。

所以要對源進行優先級的配置。

 

首先爲yum安裝一個優先級排序插件:yum-plugin-priorities

[root@hanaii yum.repos.d]# yum install yum-plugin-priorities
...
Installed:
  yum-plugin-priorities.noarch 0:1.1.31-46.el7_5                                                  

Complete!

 

安裝成功後,進入官方源配置文件和第三方源配置文件,

分別在配置文件的每個軟件倉庫後,設置priority的值。(值越小,優先級越高)

官方源配置文件CentOS-Base.repo

[base]
...
priority=1

[updates]
...
priority=1

[extras]
...
priority=1

第三方源配置文件

[rpmforge]
...
priority = 10

[rpmforge-extras]
...
priority = 10

...

到此,源的優先級配置完成。yum會先到優先級高的源去獲取軟件,若不存在,再按優先級從高到低的順序去獲取軟件。

 

 

[root@hanaii yum.repos.d]# yum install mplayer
Loaded plugins: fastestmirror, priorities
base                                                                                                                                                | 3.6 kB  00:00:00     
extras                                                                                                                                              | 3.4 kB  00:00:00     
updates                                                                                                                                             | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
164 packages excluded due to repository priority protections
No package mplayer available.
Error: Nothing to do

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章