詳解Linux軟件安裝中RPM與YUM 區別和聯繫

概述

一般Linux軟件安裝有這麼幾種方式:

  • 通用二進制格式:直接解壓壓縮文件,就可以使用。但一定要注意安裝平臺。
  • 軟件包管理器:如RPM。
  • 軟件包管理器的前端工具:如YUM。
  • 源代碼編譯。

那麼其中rpm與yum有什麼區別呢?


RPM

RPM管理支持事務機制。增強了程序安裝卸載的管理。

RPM的功能:打包、安裝、查詢、升級、卸載、校驗、數據庫管理。

1、RPM的缺點

由於Linux中的程序大多是小程序。程序與程序之間存在非常複雜的依賴關係。RPM無法解決軟件包的依賴關係。

2、RPM包

用RPM工具可以將二進制程序進行打包,包被稱為RPM包。RPM包並不是跨平臺的。RedHat的RPM包與SUSE的RPM包不能混用。實際上RedHat的安裝,初始軟件也都是使用RPM包進行安裝的。

源程序的命名規範name-version.tar.{gz|bz2|xz}

版本號:major.minor.release

例:bash-4.3.1.tar.xz

RPM包的命名規範name-version-release.os.arch.rpm

name:程序名稱。

version:程序版本號。

release(發行號):用於標識RPM包本身的發行號,與源程序的release號無關。

os:即說明RPM包支持的操作系統版本。如el6(即rhel6)、centos6、el5、suse11。

arch:主機平臺。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依賴平臺)

例:bash-4.3.2-5.el6.x86_64.rpm

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

rpm包

3、安裝RPM包

命令格式:rpm -i /PATH/TO/RPM_FILE

一般組合起來使用:-ivh

命令格式:rpm -ivh PATH/TO/RPM_FILE

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

4、卸載RPM包

命令格式:rpm -e 包名

查詢RPM相關信息

命令格式:rpm -q 包名

查詢所有已經安裝包:rpm -qa

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

5、RPM的數據庫

數據庫文件位於:/var/lib/rpm

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

若庫損壞,很多RPM的查詢將無法使用。


YUM

YUM客戶端基於RPM包進行管理,可以通過HTTP服務器下載、FTP服務器下載、本地軟件池的等方式獲得軟件包,可以從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係。

YUM在安裝RPM時,會從服務器下載相應包,且緩存在本地。

使用YUM進行RPM包的管理,非常簡單方便。

1、YUM客戶端的使用

YUM客戶端的配置

YUM的配置方式是基於分段配置的。

主配置文件:/etc/yum.conf

YUM的片段配置:/etc/yum.repos.d/*.repo

主配置文件配置了一個特殊的倉庫,名稱為main。main是為其他倉庫提供默認的全局配置的。

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

配置文件的說明:

[main] #main倉庫。[ ]中括號表示一個倉庫的定義。其中是倉庫的名稱。
cachedir=/var/cache/yum/$basearch/$releasever #RPM包的緩存位置。
keepcache=0 #RPM包在本地是否需要長期保存。1表示yes,0表示no。
debuglevel=2 #日誌級別。
logfile=/var/log/yum.log #日誌文件。
exactarch=1 #下載的RPM包是否需要與本地平臺完全匹配。1表示yes,0表示no。
obsoletes=1
gpgcheck=1 #是否需要自動來源合法性檢測。
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bdistroverpkg=centos-release

查看CentOS-Base.repo配置文件:

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

對配置文件中的一些配置項作說明:

[ ... ]:倉庫的名稱。不能重複。
name:對倉庫的描述,該項必須有。
baseurl:配置倉庫的路徑。用於指定一個url。
mirrorlist:指向一個鏡像列表,裡面有多個url。
enabled:是否啟用當前倉庫。值為1或0,默認為1。
gpgcheck:是否需要gpg校驗。值為1或0,默認為1。
gpgkey:驗證RPM包的密鑰文件路徑。該文件可以在遠處服務器上,也可以在本地。
cost:代價,其本質是倉庫優先級的配置。值越低,表示訪問的代價越低,也即優先使用。
注意:配置文件中的"="號的前後不能有空格。

2、yum命令的使用

yum的命令形式一般是如下:yum [options] [subcommand] [package ...]

yum list相關命令

獲取yum倉庫中所有的包信息。

命令:yum list all

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

結果說明:

第一列:軟件包名稱.平臺名稱。
第二列:軟件版本號-release號。
第三列:安裝情況。

查看yum倉庫中指定包名的軟件包,可以使用通配符。

命令:yum list all mysql*

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

查看倉庫

查看當前能夠使用的yum倉庫

命令:yun repo list

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

顯示所有倉庫

命令:yum repo list all

清空本地yum的緩存

yum倉庫若更新,則本地緩存就沒有意義了。所以本地緩存需要清空。

命令格式:yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

手動在本地建立緩存

yum客戶端會下載遠程yum的文件。在本地生成緩存。

命令:yum makecache

安裝應用程序

基本格式:yum [-y] install 包1 包2 ... 包n

說明:

若安裝多個包,則使用包名之間使用空格隔開。

安裝過程中,yum會詢問用戶是否安裝,使用yum -y 選項,表示自動回答為yes。

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

卸載軟件包

命令格式:yum remove 包1 包2 ... 包n

注意:若該包被依賴,則該卸載可能會導致一些問題。如A依賴B,若卸載B,則A也會被卸載。


上面都是比較常用的命令,如果基本上用過的話那麼在這一塊的內容也就基本達標了。

後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~

詳解Linux軟件安裝中RPM與YUM 區別和聯繫

相關推薦

推薦中...