在linux上,一個軟件包通常由二進制程序,庫文件,配置文件和幫助文件組成。
其中:
二進制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/usr/local/sbin這幾個目錄下邊;
庫文件都放在/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib和/usr/local/lib64這些目錄下;
配置文件一般都是放在/etc這個目錄下;
而最基本的man幫助文件則是放在/usr/share/man這個目錄下的。
在CentOS上,軟件的安裝方式一般有四種:
通用二進制編譯:由志願者把開發完成的源代碼編譯成二進制文件,打包後發佈在網絡上,大家都可以通過網絡進行下載,到本地之後,經過解壓配置就可以使用。
軟件包管理器:使用包管理工具安裝,有時候必須要解決軟件包之間的依賴問題,例如rpm和deb等。
軟件包前端管理工具:可以自動解決軟件包依賴關係,例如yum和apt-get等。
源碼包安裝:從網絡上下載軟件的源碼包到本地計算機,用gcc等編譯工具編譯成二進制文件後才能使用,有時必須要解決庫文件的缺失問題。
CentOS上默認使用的軟件包格式是rpm程序包。
RPM最初是由RedHat公司開發的一種軟件包管理工具,最初它的全稱是Redhat Package Manager,現在包括SUSE在內的很多linux發行版都使用這種軟件管理工具,使得rpm成爲linux的軟件包管理標準,所以現在它的全稱爲Rpm Package Manager.
rpm包的管理器包括軟件,以及查詢,校驗,安裝,升級,卸載,數據庫管理等功能。
一個rpm程序包的格式爲:
httpd-2.2.15-59.el7.x86_64.rpm
其中:
httpd是程序包的名稱;
2.2.15是版本;
59.el7是發佈許可;
x86_64表示適用於AMD/Intel 64位體系結構構鍵的計算機。
RPM程序包的管理命令-rpm
1、查詢RPM程序包的信息:
(1)查詢已安裝的RPM程序包的信息
命令 | 說明 |
---|---|
rpm -q 程序包名稱 | 查詢指定程序包是否安裝 |
rpm -q 程序包名稱 | 查詢指定程序包是否安裝 |
rpm -qa | 顯示當前系統中所有rpm程序包列表 |
rpm -qi 程序包名稱 | 查看指定程序包的名稱、版本、許可協議、用途描述等詳細信息 |
rpm -ql 程序包名稱 | 顯示指定的程序包在當前系統中安裝的所有目錄、文件列表 |
rpm -qf 文件名或目錄 | 查看指定的文件或目錄是由哪個程序包所安裝的 |
(2)查詢未安裝的RPM程序包
命令 | 說明 |
---|---|
rpm -qpi 程序包名稱 | 查看指定程序包的名稱、版本、許可協議等 |
rpm -qpl 程序包名稱 | 查看該軟件包轉唄要安裝的所有目標目錄、文件列表 |
2、rpm安裝、升級、卸載RPM程序包
使用rpm命令實現操作是,基本的命令選項如下:
選項 | 作用 |
---|---|
-i | 在當前系統中安裝一個新的RPM程序包 |
-e | 卸載指定名稱的程序包 |
-U | 檢查並升級系統中的某個軟件包,若該軟件包未安裝,則等同於“-i”選項 |
-F | 檢查並更新系統中某個軟件包,若該軟件包未安裝,則放棄安裝 |
--force | 強制安裝某個程序包 |
--nodeps | 忽略依賴關係安裝某個程序包 |
-h | 在安裝或升級軟件過程中,以“#”號顯示安裝進度 |
-v | 顯示軟件安裝過程中的詳細信息 |
安裝:
rpm -ivh 程序包名稱
注:程序包要寫絕對路徑,這裏本機使用本地系統鏡像文件中的程序包。
卸載:
rpm -e 程序包名稱
可以結合--nodeps忽略依賴關係。
3、維護RPM數據庫
RPM數據庫用於記錄Linux系統中安裝、卸載、升級應用程序的相關信息,由RPM包管理系統自動完成維護,一般不需要用戶干預。
當RPM數據庫發生損壞(誤刪文件、非法關機、病毒破壞等導致),且Linux系統無法自動完成修復是,將導致無法使用rpm命令正常安裝、卸載及查詢軟件包。
這時客戶以使用rpm命令:
rpm --rebuilddb 或者 rpm --initdb
對RPM數據庫進行重建。