一、源代碼管理
絕大多數開源軟件都是直接以源代碼形式發布的,一般會被打包為 tar.gz 的歸檔壓縮文件。程序源代碼需要編譯為二進制可執行文件后才能夠運行使用。源代碼的基本編譯流程為:
- ./configure:解壓縮后運行該命令,它主要檢查編譯環境、相關庫文件以及配置參數並生成 makefile
- make:對源代碼進行編譯,生成可執行文件
- 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
參考鏈接: