rpm包管理 程式源代碼 >預處理 >編譯 >彙編 >鏈接 數據處理 轉為彙編代碼 進行彙編 引入庫文件 靜態編譯:.a 動態編譯:.so包的組成: 二進位文件、庫文件、配置文件、幫助文件程式包管理器: debian: deb文件, dpkg包管理器 redhat: rpm文件, rpm包管理器 r ...
rpm包管理
程式源代碼---->預處理---->編譯---->彙編---->鏈接
數據處理 轉為彙編代碼 進行彙編 引入庫文件
靜態編譯:.a
動態編譯:.so
包的組成:
二進位文件、庫文件、配置文件、幫助文件
程式包管理器:
debian: deb文件, dpkg包管理器
redhat: rpm文件, rpm包管理器
rpm:Redhat Package Manager
RPM Package Manager
rpm包命名方式:
bash-4.2.46-19.el7.x86_64.rpm
name-版本-編譯次數.發佈版本.架構
systemctl start autofs --啟動服務
systemctl enable autofs
cd /misc/cd --會自動掛載光碟到/misc/cd
包:分類和拆包
Application-VERSION-ARCH.rpm: 主包
Application-devel-VERSION-ARCH.rpm 開發子包
Application-utils-VERSION-ARHC.rpm 其它子包
Application-libs-VERSION-ARHC.rpm 其它子包
解決依賴包管理工具:
yum:rpm包管理器的前端工具
apt:deb包管理器前端工具
查看二進位程式所依賴的庫文件
ldd /PATH/TO/BINARY_FILE
ldd /bin/cat --查看cat依賴的庫
管理及查看本機裝載的庫文件
ldconfig 載入配置文件中指定的庫文件
/sbin/ldconfig –p 顯示本機已經緩存的所有可用庫文件名及文件路徑
映射關係
配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
緩存文件:/etc/ld.so.cache
rpm包管理:
rpm -i [install-options] PACKAGE_FILE
-v:verbose:顯示詳細信息
-vv:顯示的更加詳細
-h:以#顯示程式包管理秩序進度
rpm包安裝:
[install-options]
--test: 測試安裝,但不真正執行安裝,即dry run模式
--nodeps:忽略依賴關係
--replacepkgs | replacefiles
--nosignature: 不檢查來源合法性
--nodigest:不檢查包完整性
--noscripts:不執行程式包腳本
%pre: 安裝前腳本 --nopre
%post: 安裝後腳本 --nopost
%preun: 卸載前腳本 --nopreun
%postun: 卸載後腳本 --nopostun
rpm包升級:
升級:
rpm -U [install-options] PACKAGE_FILE...
rpm -F [install-options] PACKAGE_FILE...
-U:安裝有舊版程式包,則“升級”
如果不存在舊版程式包,則“安裝”
-F:安裝有舊版程式包,則“升級”
如果不存在舊版程式包,則不執行升級操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
--oldpackage:降級
--force: 強制安裝
包查詢:
rpm -q [select-options] [query-options]
[select-options]
-a:所有包
-f:查看指定的文件由哪個程式包生成
rpm -qf /etc/yum.conf
-p profile:針對未安裝的程式包文件做查詢操作
示例:rpm -qp dnf-0.6.4-2.sdl7.noarch.rpm
--whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供
示例:rpm -q --whatprovides httpd
--whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
示例:rpm -q --whatrequires bash
rpm2cpio 包文件|cpio –itv 預覽包內文件
rpm2cpio 包文件|cpio –id “*.conf” 釋放包內文件
[query-options]
--changelog:查詢rpm包的changelog
rpm -q --changelog httpd
-c:查看程式的配置文件
-d:查詢程式的文檔
-i:information
-l:查看指定程式安裝後生成的所有文件
--scripts:程式包自帶的腳本
--provives:列出指定程式包所提供的能力
-R:查詢指定的程式包所依賴的能力
包卸載:
rpm -e PACKAGE_NAME
導入所需要公鑰
rpm -K|checksig rpmfile 檢查包的完整性和簽名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
rpm資料庫
/var/lib/rpm
rpm {--initdb|--rebuilddb}
initdb:初始化,如果事先不存在資料庫則新建,否則不處理
rebuilddb:重建已安裝的包頭的資料庫索引目錄
常用命令:rpm -ivh | -evh | -qa | -qf | -qp | -qc | -qd | -qi | -ql | --provides | --scripts