1. 程式人生 > 其它 >【搬運】linux中deb與rpm安裝區別

【搬運】linux中deb與rpm安裝區別

Linux下deb包和rpm包區別

有的系統只支援使用rpm包安裝,有的只支援deb包安裝,混亂安裝會導致系統問題。

rpm包主要用於redhat及分支如redhat,centos,Fedora等
而deb包主要用於debian及分支如debian,ubuntu等。
rpm包相對來說版本不是最新的,但是比較穩定;而deb包則相對來說版本比較新,一般某個新軟體出來說可能有deb包,但是使用過程中容易引起bugs。

1 rmp包

rmp 是 LINUX 下的一種軟體的可執行程式,你只要安裝它就可以了。這種軟體安裝包通常是一個RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),字尾是.rpm

rmp是Red Hat公司隨Redhat Linux推出了一個軟體包管理器,通過它能夠更加輕鬆容易地實現軟體的安裝。

相關操作:

  1.安裝軟體:執行rpm -ivh rpm包名,如:
  #rpm -ivh apache-1.3.6.i386.rpm 
  2.升級軟體:執行rpm -Uvh rpm包名。
  3.反安裝:執行rpm -e rpm包名。
  4.查詢軟體包的詳細資訊:執行rpm -qpi rpm包名
  5.查詢某個檔案是屬於那個rpm包的:執行rpm -qf rpm包名
  6.查該軟體包會向系統裡面寫入哪些檔案:執行 rpm -qpl rpm包名

2 deb

deb 是 Unix 系統(其實主要是 Linux )下的安裝包,基於 tar 包,因此本身會記錄檔案的許可權(讀/寫/可執行)以及所有者/使用者組。由於 Unix 類系統對許可權、所有者、組的嚴格要求,而 deb 格式安裝包又經常會涉及到系統比較底層的操作,所以許可權等的設定尤其重要。

deb 包本身有三部分組成:資料包,包含實際安裝的程式資料,檔名為 data.tar.XXX;安裝資訊及控制指令碼包,包含 deb 的安裝說明,標識,指令碼等,檔名為 control.tar.gz;最後一個是 deb 檔案的一些二進位制資料,包括檔案頭等資訊,一般看不到,在某些軟體中開啟可以看到。

deb 本身可以使用不同的壓縮方式。tar 格式並不是一種壓縮格式,而是直接把分散的檔案和目錄集合在一起,並記錄其許可權等資料資訊。之前提到過的 data.tar.XXX,這裡 XXX 就是經過壓縮後的字尾名。deb 預設使用的壓縮格式為 gzip 格式,所以最常見的就是 data.tar.gz。常有的壓縮格式還有 bzip2 和 lzma,其中 lzma 壓縮率最高,但壓縮需要的 CPU 資源和時間都比較長。

data.tar.gz包含的是實際安裝的程式資料,而在安裝過程中,該包裡的資料會被直接解壓到根目錄(即 / ),因此在打包之前需要根據檔案所在位置設定好相應的檔案/目錄樹。

而 control.tar.gz 則包含了一個 deb 安裝的時候所需要的控制資訊。一般有 5 個檔案:control,用了記錄軟體標識,版本號,平臺,依賴資訊等資料;preinst,在解包data.tar.gz 前執行的指令碼;postinst,在解包資料後執行的指令碼;prerm,解除安裝時,在刪除檔案之前執行的指令碼;postrm,在刪除檔案之後執行的指令碼;在 Cydia 系統中,Cydia 的作者 Saurik 另外添加了一個指令碼,extrainst_,作用與 postinst 類似。