1 軟件包管理器
1.1主要功能把一個軟件的二進制程序,庫文件,配置文件,幫助文件打包成一個文件還可以把打包好的這個文件,按照我們指定的位置將二進制程序展開到相關的路徑上來
1.2 生成數據庫,追蹤記錄所安裝的每一個文件並且對實現軟件包的安裝,卸載,升級,查詢,校驗
2 rpm
2.1 rpm基本結構
rpm命令本身是個軟件包,這個軟件包提供了一些命令,然後rpm命令是來管理軟件包的
2.2 rpm本身在管理的時候還需要提供追蹤安裝文件的功能,以便在以後實行卸載更重要的是還要提供查詢的功能,查詢包括根據軟件包所安裝的文件,或者是根據某個文件來查找這個文件是由哪個軟件包安裝所生成的,所以rpm本身有一個龐大的數據庫/var/lib/rpm
2.3軟件包的介紹
一個rpm包為了避免一個主包過大,一般都會做成一個或多個子包
主包(例如是:bind-9.7.1-1.i586.rpm)
子包:在主包下又加了一個子名字,版本號一樣(例如:bind-libs-9.7.1-1.e15.i586.rpm、
bind-utiles-9.7.1-1.e15.i586.rpm)
2.3.1 rpm包名格式:
Name(名稱)-version(版本號)-release(發行號).arch(平台架構)
bind-major(主版本號).minor(次版本號).release(修正號,-release.arch.rpm
主版本號:rpm包的功能有重大改進;次版本號:某個子功能發生重大變化;release發行號;修正了部分bug,調整了一點功能
2.4 rpm命令
2.4.1安裝
rpm -h:以#顯示安裝進度,每個#表示2%
rpm -v:顯示詳細信息
rpm -vv:顯示安裝更詳細的過程
通常是使用命令:rpm –ivh 命令來安裝軟件包
--nodeps:忽略依賴關系; 會導致軟件安裝好後無法運行
--replacepkgs;重新安裝,替換原有安裝;
--replacefiles替換文件
--oldpackage降級
--force:強行安裝,可以實現重裝或降級;
--test:測試軟件包是否可以安裝
2.4.2 查詢
rpm -q 軟件包命令(不是跟路徑):只查詢指定的包(不帶後面的版本信息)
例如:一個軟件包是:zsh-4.2.6-6.el5.i386.rpm
rpm –q zsh
rpm -qa 查詢已安裝的所有包
rpm -qa | gerp "^z" 查詢z開頭的軟件包
rpm -qi 軟件包名:查詢指定軟件包的說明信息
例如:rpm –q zsh
rpm -ql 軟件包名:查詢指定包安裝後生成的文件列表
例如:rpm –ql zsh
rpm -qf /path/to/somefile:查詢指定的文件是由哪個rpm包安裝生成的
例如:rpm -qf /etc/passwd
rpm -qc 軟件包名:查詢指定包安裝的配置文件
例如:rpm -qc zsh
rpm -qd 軟件包名;查詢指定包的幫助文件
例如:rpm -qd zsh
rpm -q --scripts 軟件包名:查詢指定包中包含的腳本
例如:rpm -q --scripts zsh
(1)如果某rpm 包尚未安裝,我們需查詢其說明信息,安裝以後會生成的文件
rpm -qpi 尚未安裝的軟件包路徑
rpm –qpl 顯示安裝後會生成哪些文件
2.4.3升級rpm -Uvh /Path/to/new_package_file 如果裝有老版本的,則升級,否則,則安裝
rpm -Fvh /Path/to/new_package_file 如果裝有老版本就升級,否則,退出
降級:--oldpackage
rpm -ivh --oldpackage
rpm -Uvh --oldpackage 降級
2.4.4 卸載
rpm -e PACKAGE_NAME:卸載不允許其他包依賴
--nodeps 強制卸載
2.4.5校驗
rpm -V PACKAGE_NAME: 校驗軟件包是否被非法改變過