Linux 程序包管理
功能:將編譯好的應(yīng)用程序文件打包成一個(gè)或是幾個(gè)程序文件, 從而方便程序的安裝、卸載、升級(jí)、查詢和校驗(yàn)等管理工作。
程序包的組成
文件包的組成清單, 私有部分;
文件清單
安裝卸載時(shí)運(yùn)行的腳本;數(shù)據(jù)庫(kù),公共部分。
程序包名稱及版本
依賴關(guān)系
功能說(shuō)明
安裝生成的各個(gè)文件的路徑及校驗(yàn)碼信息
說(shuō)明:
arch 與平臺(tái)有關(guān) x86 x86_64
noarch 與平臺(tái)無(wú)關(guān)
管理工具 rpm
包管理工具: rpm
前端工具: yum dnf
獲取程序包的途徑
(1) 系統(tǒng)發(fā)行的程序包光盤或是服務(wù)器;
(2) 項(xiàng)目官網(wǎng)
(3) 第三方組織
Fedora - epel
http://pkgs.org
http://rpmfind.net
http://rpm.phone.net
(4) 手動(dòng)制作
注意: 使用斯三分包需要驗(yàn)證來(lái)源的合法性和完整性
Windows 虛擬Linux環(huán)境: wine
Linux 虛擬Widow 環(huán)境: cywin
查看二進(jìn)制文件依賴的庫(kù)文件
ldd /PATH/TO/BINARY_FILE
管理及查看本機(jī)裝載的庫(kù)文件
ldconfig
idconfig -p 顯示出所有的已經(jīng)裝載的庫(kù)文件和文件路徑的映射關(guān)系
配置文件為: /etc/id.so.conf. /etc/id.so.conf.d/*.conf
緩存文件: /etc/ld.so.cache
rpm 命令使用
rpm 可以用來(lái)安裝、卸載、升級(jí)、校驗(yàn)和數(shù)據(jù)庫(kù)維護(hù)
安裝用法 rpm {-i|--install} [install-options] PACKAGE_FILE ...
-v verbose 顯示詳細(xì)信息
-vv 顯示詳細(xì)更信息
-h: 以#顯示包管理的執(zhí)行進(jìn)度 #表示2%的進(jìn)度
-i: install 安裝
[install-options] 安裝選項(xiàng)
--test 安裝測(cè)試 不真正安裝
--nodeps 忽略依賴關(guān)系
--replacepkgs 重新安裝,替換
--nodegist 不檢查包的完整性
--noscript 安裝程序但是不執(zhí)行腳本片段
%pre 安裝前腳本 --nopre
%post 安裝后腳本 --nopost
%prenu 卸載前腳本 --nopreun
%postun 卸載后腳本 --nopostun
常用安裝組合: rpm -ivh rpmpkg
升級(jí)用法
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
upgrade 如果安裝有舊版本就升級(jí),如果沒(méi)有就版本就安裝, 即安裝又升級(jí)
freshen 如果安裝有舊版本就升級(jí),如果沒(méi)有舊版本就不執(zhí)行安裝 只升級(jí)
常用安裝組合:
rpm -Uvh rpmpkg
rpm -Fvh rpmpkg
[install-options]
--oldpackages 降級(jí)
--force 強(qiáng)制
注意:
(1) 不對(duì)內(nèi)核使用升級(jí)操作, Linux支持多版本并存,因此可以直接安裝新版內(nèi)核;
(2)
查詢操作:
rpm {-q|--query} [select-options] [query-options]
-q query 查詢操作
-p 表示是一個(gè)程序包,還沒(méi)有安裝 , 可以對(duì)一個(gè)未安裝的包做查詢操作
[select-options] 挑選
-a all 查詢所有已安裝rpm包
-f file 查詢文件由那個(gè)安裝包生成
例如: [root@ansible1 ~]# rpm -qf /etc/issue
-g 查詢指定包組的程序包
--whatprovides CAPABILITY 查詢指定的功能由那個(gè)包提供
--whatrequires CAPABILITY 查詢指定的功能由那個(gè)包依賴
[query-options] 查詢
--changelog 查詢一個(gè)包的修改日志
-c 查詢程序包的配置文件, 例如:
[root@ansible1 ~]# rpm -qc ansible
-d, --docfiles 安裝生成的文檔
-i, --info 查詢包的描述信息
-l, --list 查看程序包生成的所有文件列表
--scripts 查看包自帶的安裝腳本
-R 列出依賴的包
常用查詢用法
-qi package
-qf file
-qc package
-ql package
-qd package
-qpi package_file
-qpl package_file
-qa
卸載程序包
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACK-
-e 卸載
校驗(yàn)
rpm {-V|--verify} [select-options] [verify-options]