linux學習之路之軟體包的管理(RPM)

來源:互聯網
上載者:User

標籤:主要介紹如何使用rpm來安裝、查詢、升級、卸載、校正資料包的正確性和重建資料庫

目前linux界管理軟體有2種方式,一是使用dpt來管理,二是使用RPM來管理

dpt使用Debian linxu社區開發的,目前使用dpt來管理的發行商包括:B2D,Ubuntu等。

而RPM是有Red Hat公司開發出來的,目前使用RPM來管理軟體的發行商包括:Fedora、CentOS、SuSE等。

由於當前最主流的軟體包管理大多使用RPM來管理的,因此在這裡我們只介紹如何使用RPM來管理軟體包


什麼是RPM呢?

RPM:全名是RedHat Package Manager,簡稱RPM,他是以一種資料庫記錄的方式將你所需要的軟體安裝到你的linux系統上的一套管理機制。也就是安裝某個軟體時,該軟體的資訊全部寫入到了RPM資料庫中,以後關於該軟體包的升級、卸載、以及校正等操作都是根據RPM資料庫中的資料來進行的。


RPM軟體包的命名規則:

name-version-release.arch.rpm

軟體名稱-版本號碼-發行次數.操作平台.rpm

其中版本號碼分為主要版本號和次版本號碼

主要版本號:當軟體包的重大功能發生改進時,才用於修正主要版本號

次版本號碼:某個子功能發生改變時,才會改變,才用於修正次版本號碼

發行次數就是編譯的次數

操作平台主要由以下幾種:

    i386:適用於所有的x86平台

    i586:針對586等級的電腦進行最佳化編譯的

    x86_64:針對64位的CPU進行最佳化編譯的

    noarch:表示沒有任何硬體等級上的限制




軟體包管理器的核心功能是:

1、製作軟體包。

    我們知道RPM包是經過原始碼編譯而來的,所以RPM包是可以直接用來安裝的,但是不同的發行商的RPM包是不用相互連用的,有的連相同發行商不同版本的RPM包也不可以使用。原因是編譯這些RPM包的編譯環境不一樣所導致的。這些編譯環境包括硬體平台、庫檔案等等。

    換句話說,只有編譯環境和安裝RPM的環境一致時,該軟體包才可以使用。而軟體包管理器就可以用來編譯原始碼,使其在特定的平台上使用。


2、軟體包管理器可以來安裝、查詢、升級、卸載、校正軟體包中檔案的正確性、重建資料庫等操作。


在這裡我們先介紹如何使用RPM來安裝軟體的。

在linux系統中,許多軟體在安裝過程中,存在依賴關係,這裡所謂的依賴關係就是說在安裝A軟體時,必須先安裝B軟體,才能在安裝A軟體。這就是軟體的相依屬性。

一、RPM包安裝

文法格式:rpm [option] package_file(這個是軟體的檔案名稱,全稱)

-i:install的意思

-v:顯示安裝過程中的詳細資料

-vv:顯示更加詳細的資訊

-h:以#號來顯示安裝進度,其中每個#表示2%的進度

其中ivh通常一起使用

--nodeps:在安裝過程中,忽略依賴關係,這可能會導致安裝的軟體無法使用

--replacepkgs:重新安裝,替換原有的安裝

--replacefiles:在安裝過程中,如果某個安裝檔案已經存在,可以使用此選項覆蓋。

--force:強行安裝,可以實現重新安裝或者降級安裝


二、RPM包查詢

之前說過RPM包在安裝的時候會產生一個資料庫檔案,這個檔案是/var/lib/rpm/目錄,RPM查詢就是在這個目錄下尋找資料庫檔案的。

文法格式:rpm [option] [package_name]

-q:查詢指定的包是否已經安裝

-qa:查詢已經安裝的所有包,後面不接包名

-qi:查詢指定包的說明資訊

-qc:查詢指定包的設定檔

-qd:查詢指定包的協助檔案(與man相關)

-ql:查詢指定包安裝後產生的檔案清單

-q --scripts:查詢指定包中所包含的指令碼

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/3F/A7/wKiom1PLzuLinDwdAAFEfrLBSMo212.jpg" title="sc.png" alt="wKiom1PLzuLinDwdAAFEfrLBSMo212.jpg" />

-qf /path/to/somefile:查詢指定的檔案是由那個rpm包安裝產生的。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/3F/A7/wKioL1PL0jbSWFPLAAEIgKW2BOc249.jpg" title="qq1.png" alt="wKioL1PL0jbSWFPLAAEIgKW2BOc249.jpg" />

如果某個軟體包未安裝,想要查詢其相關資訊,可以使用-qp來查詢

文法格式:rpm -qp[ilcfd] package_name(未安裝的軟體包名)

其中-iclfd意思和上面一樣


三、RPM包升級

rpm -Uvh package_file :如果該軟體包已安裝,則升級;沒有安裝,則進行安裝

rpm -Fvh package_file:如果該軟體以安裝,則升級;沒有安裝,則退出

其中選項--oldpackage用於降級安裝


四、RPM包卸載

rpm -e package_name:卸載某個軟體包

--nodeps:在卸載過程中忽略依賴關係。

在卸載過程中,最好從上層一次往下卸載,避免系統混亂。


五、校正RPM安裝產生的檔案

校正RPM中的檔案可以用來檢測某個檔案是否被修改過,以及該檔案是否被誤刪了等資訊。它是通過對比/var/lib/rpm/下的資料庫內容和當前系統上面的所有檔案等機制來檢測的。

文法格式:

rpm [option] [package_name]

-V :檢測指定的軟體包中的檔案是否被修改過,只有被更動過的檔案才會顯示出來

-Va:列出系統上所有被更動的檔案

-Vf:檢測某個檔案是否被更動過

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/3F/A9/wKioL1PL52zypcd1AABHLHPufPs693.jpg" title="xg.png" alt="wKioL1PL52zypcd1AABHLHPufPs693.jpg" />

其中這上面的每一個點代表的是SM5DLUGT,只有改變的才會顯示出來

S:檔案的大小發生改變

M:檔案的類型或者許可權發生改變

5:MD5隨機碼不同

D:裝置的主/次代號發生改變

L:Link路徑發生改變

U:檔案的屬主發生改變

G:檔案的屬組發生改變

T:檔案的修改時間發生改變


其中後面的字元表示檔案類型

c:表示設定檔

d:資料檔案

g:該檔案不被某個軟體所包含

l:許可證檔案(license file)

r:讀我檔案(read me)


六、建立資料庫

如果某個使用者別不小心損毀了/var/lib/rpm/目錄下的檔案,那麼可以使用rpm來重建資料庫

文法格式:

rpm --rebuilddb:不管RPM資料庫是否存在,使用該選項一定會重新建立資料庫

rpm --initdb:初始化資料庫,也就是說如果資料庫不存在則建立資料庫;存在則不用建立。






本文出自 “linux學習之路” 部落格,謝絕轉載!

linux學習之路之軟體包的管理(RPM)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.