Linux系統紅帽軟件包管理器(RPM)
1、源代碼管理
絕大多數開源軟件都是直接以源代碼形式發布的,一般會被打包為tar.gz 的歸檔壓縮文件。程序源代碼需要編譯為二進制可執行文件後才能夠運行使用。源代碼的基本編譯流程為
- ./configure:解壓縮後運行該命令,它主要檢查編譯環境、相關庫文件以及配置參數並生成 makefile
- make:對源代碼進行編譯,生成可執行文件
- make install:將生成的可執行文件安裝到計算機中
源代碼形式的軟件使用起來較為麻煩,但是兼容性和可控性較好。並且開源軟件一般會大量使用其他開源軟件的功能,所以開源軟件會有大量的依賴關系(使用某軟件需要先安裝其他軟件)。
2、RPM包管理器
在RPM(Redhat Package Manager,紅帽軟件包管理器)公布之前,要想在Linux系統中安裝軟件只能采取源碼包的方式安裝。早期在Linux系統中安裝程序是一件非常困難、耗費耐心的事情,而且大多數的服務程序僅僅提供源代碼,需要運維人員自行編譯代碼並解決許多的軟件依賴關系,因此要安裝好一個服務程序,運維人員需要具備豐富知識、高超的技能,甚至良好的耐心。而且在安裝、升級、卸載服務程序時還要考慮到其他程序、庫的依賴關系,所以在進行校驗、安裝、卸載、查詢、升級等管理軟件操作時難度都非常大。
RPM機制是專門為解決這些問題而設計的。RPM有點像Windows系統中的控制面板,會建立統一的數據庫文件,詳細記錄軟件信息並能夠自動分析依賴關系。目前RPM的優勢已經被公眾所認可,使用範圍也已不局限在紅帽系統中了,下表是一些常用的RPM軟件包命令。
安裝軟件的命令格式 |
rpm -ivh packagename.rpm |
升級軟件的命令格式 |
rpm -Uvh packagename.rpm |
卸載軟件的命令格式 |
rpm -e packagename.rpm |
查詢軟件描述信息的命令格式 |
rpm -qpi packagename.rpm |
列出軟件文件信息的命令格式 |
rpm -qpl packagename.rpm |
查詢文件屬於哪個RPM的命令格式 |
rpm -qf packagename |
查看某一個軟件包是否安裝 |
rpm -qa|grep packagename.rpm |
-i: install 安裝
-v: verboes 可視化
-h: hash 顯示安裝進度
另外的常用的附帶參數為:
--force: 強制安裝,即使覆蓋其他包的文件也要安裝
--nodeps: 當要安裝的rpm包依賴其他包的時候,即使其他包沒有安裝,也要安裝這個包
-U: upgrade 即升級的意思
查詢一個包是否安裝
rpm -q packagename(這裏的包名是不帶有平臺信息以及後綴名的)
eg:rpm -q alacarte-0.10.0-1.fc6(如果加了平臺信息及後綴名alacarte-0.10.0-1.fc6.noarch.rpm反而不能查出來)
rpm -qa 查詢當前系統上所安裝的所有rpm包
rpm -qa | grep packagename 查看某個軟件包是否安裝(這裏的包名是帶有平臺信息以及後綴名的)
Linux系統紅帽軟件包管理器(RPM)