linux程序包管理
RPM ==================================================================
#ldd 查看二進制程序調用的動態鏈接庫
#ldconfig -p 顯示本機已緩存的所有可用庫文件
dll: Dynamic link library
so : Shared Object
API: Application Program Interface 應用編程接口
ABI: Application Binary INterface 應用二進制接口
Unix-like ELF
C/C++程序格式:
源代碼:文本格式的程序代碼
編譯開發環境:編譯器,頭文件,開發庫
二進制格式:文本格式的程序代碼-編譯器-二進制格式(二進制程序,庫文件,配置文件)
java/pathon程序格式:
源代碼:編異成能夠在其虛擬機(jvm/pvm)運行的格式
開發環境:編譯器,開發庫
項目構建工具:
c/c++:make
java:maven
程序包管理器:
源代碼 – 目標二進制格式 – 組織成幾個包文件;完成安裝、升級、查詢、卸載、效驗等操作
debian:dpt,dpkg ".deb"
redhat:rpm ".rpm"
S.u.S.E:rpm ".rpm"
rpm:Redhat Package Manage
RPM Package Manage
rpm包命名格式:
name-VERSION-rpmrelease.arch.gz archetecture 架構
VERSION:major.minor.release
yum-3.2.29-73.el6.centos.noarch.rpm
yum-3.2.29版本 73次修改 Redhat Enterprise 6
changelog
拆包:選擇完整程序包中需要的功能
前端工具:自動解決依賴關系
yum: rhel
apt-get(apt-cache): deb
zypper: suse
dnf: fedora 22+
程序包管理器:
功能:將編譯好的應用程序的各組成文件打包成一個或幾個程序包文件,
從而方便的實現程序包的安裝,卸載,升級等操作
debian:dpt,dpkg ".deb"
redhat:rpm ".rpm"
S.u.S.E:rpm ".rpm"
/var/lib/rpm/ rpm數據庫
獲取程序包途徑:
1.系統發行版的光盤或官方的文件服務器(或鏡像站點)
mirrors.aliyun.com
mirrors.sohu.com
mirrors.163.com
2.項目的官方站點
3.第三方組織
pkgs.org
rpmfind.net
rpm.pbone.net
4.自己制作
檢查其合法性:
來源合法性
程序包完整性
#rpm [OPTIONS] [PACKAGE_FILE]
-i 安裝 –install
rpm -ivh packagefile -v 顯示詳細信息 -h 以#號表示進度
-U 升級或安裝 –update
-F 僅可升級
–oldpackage 降級
–force 強制升級
-e 卸載 –erase rpm -e http(包名)
–allmatchs 刪除指定名稱軟件包所有版本
–nodeps 忽略依賴關系
–test 測試卸載
-q 查詢 –query
[select-options]
-a –all 查詢所有已裝包;可配合grep
]#rpm -qa | grep httpd
-f FILE 查詢指定文件由哪個軟件包安裝生成
]#rpm -qf /etc/named
-p –package PACKAGE_FILE 對未安裝的程序包執行查詢 -qpc -qpl -qpi
–whatprovides CAPABILITY 查詢指定能力由哪個程序提供
–whatrequires CAPABILITY 查詢指定能力被哪個包依賴
[query-options]
–changelog 查詢rpm包的changelog
–provides 列出指定程序包提供的所有CAPABILITY
-R –requires查詢指定程序包的依賴關系(CAPABILITY)
-l –list 列出程序安裝生成的所有文件
-qpl 查詢未安裝的程序包安裝后會生成哪些文件
-i –info 程序包相關信息
-c –configfiles 查詢指定程序提供的配置文件
-d –docfiles 查詢指定程序包提供的幫助文檔
–scripts 查看程序包自帶的腳本
-V 校驗 –verify 可指定檢查哪些
]#rpm -V bash ]#S.5....T
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
通用選項:
–nodeps 忽略依賴關系
–replacepkgd 重新安裝 刪除某個配置文件后可重新安裝
–replacefiles 替換不同程序包中可能出現的相同的文件
–test 測試安裝 僅測試能否安裝 不真正安裝
–nosignature 不檢查包簽名信息,不檢查來源合法性
–nodigest 不檢查包完整性
數據庫重建: 默認位置:/var/lib/rpm
rpmdb
–initdb 初始化數據庫。當前無數據庫可初始化創建新的數據庫;如果存在則不作操作
–rebuilddb 重新創建數據庫
–dbpath 指定創建數據庫文件存放路徑
–builddb,initdb 數據庫維護
包來源和發行、完整性驗證:
包制作者:
提取程序包的特征碼
使用自己的私鑰對特征碼加密(簽名)
將簽名加入包放到互聯網
使用者:
使用公鑰驗證包來源合法性、完整性
驗證:
安裝時自動驗證
手動驗證:rpm -K PACHAGE-FILE
原創文章,作者:Jasper,如若轉載,請注明出處:http://www.www58058.com/36960