Linux 入門記錄:十九、Linux 包管理工具 RPM


一、源代碼管理

絕大多數開源軟件都是直接以源代碼形式發布的,一般會被打包為 tar.gz 的歸檔壓縮文件。程序源代碼需要編譯為二進制可執行文件后才能夠運行使用。源代碼的基本編譯流程為:

  1. ./configure:解壓縮后運行該命令,它主要檢查編譯環境、相關庫文件以及配置參數並生成 makefile
  2. make:對源代碼進行編譯,生成可執行文件
  3. make install:將生成的可執行文件安裝到計算機中

源代碼形式的軟件使用起來較為麻煩,但是兼容性和可控性較好。並且開源軟件一般會大量使用其他開源軟件的功能,所以開源軟件會有大量的依賴關系(使用某軟件需要先安裝其他軟件)。

 

二、RPM(RPM Package Manager,RPM包管理器)

使用源代碼形式安裝軟件的優點是適用於所有系統、可定制,而缺點則是操作復雜、編譯時間較長、極容易出現錯誤。為了方便使用,Erik Troan 和 Marc Ewing 開發了 RPM(RPM Package Manager,RPM 包管理器),RPM 最早是應用在 RedHat(紅帽)中的。

 

1.設計目標

RPM 通過將源代碼基於特定平台系統編譯為可執行文件,並保存依賴關系,來簡化開源軟件的安裝管理。RPM 的設計目標如下:

  • 使用簡單
  • 使用單一軟件包格式文件發布(.rpm 文件)
  • 可升級
  • 追蹤軟件依賴關系
  • 基本信息查詢
  • 軟件驗證功能
  • 支持多平台

 

2.命名規范

packagename-1.2.0-30.el6.x86_64.rpm

包名-版本號-操作系統-硬件平台

其中,

操作系統:el6 表示 RedHat 6.x 或 CentOS 6.x 操作系統。

硬件平台:x86_64 表示 64 位平台,i386 表示 32 位平台,noarch 表示不需要特定的硬件平台(跨平台)。

 

3.基本命令

安裝包:

安裝包:rpm -i packagename.rpm

卸載包:

rpm -e packagename

升級包:

rpm -U packagename-new.rpm

通過 http、ftp 協議安裝:

rpm - ivh http://www.domainname.com/packagename.rpm

常用參數:

-v    顯示詳細信息
-h    顯示進度條
-i    安裝包
-e    卸載包
-U    更新(升級)包
-q    查詢
-a    查詢所有已安裝包
-i    顯示包信息
-h    取hash(哈希)
-f    查詢文件屬於哪個包
-p    未安裝包的信息
-l    列出包里的文件

 

三、RPM查詢

rpm -qa                     列出已安裝的所有rpm包
rpm -qa | grep '.*gnome.*'  列出所有名稱含有gnome的包

rpm -qf filename            查詢目標文件屬於哪個包

rpm -qi package             獲取一個已安裝包的相關信息
rpm -qip package.rpm        獲取一個未安裝包的相關信息

rpm -ql package             獲取一個已安裝包內的文件列表
rpm -qlp package.rpm        列出一個未安裝包內的文件列表

  

四、RPM驗證

軟件包在傳播的過程中可能會被惡意地修改,所以為了安全起見,現代系統都加入了對軟件包的驗證功能。

驗證一般使用非對稱加密算法,所以需要一個公鑰。導入公鑰的方法是:

rpm --import /path/to/key_file

驗證未安裝的軟件包:

rpm -K package.rpm

驗證已安裝的軟件包:

rpm -V package

  

 

參考鏈接:

Linux中RPM包命名規則

YUM 公鑰認證及導入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM