Linux軟體包安裝:
系統調用:庫
API: Posix可移植作業系統規範
ABI: Application Binary Interface應用二進制接口
Debian: dpt
RedHat: rpm, Redhat Package Manager
Dpt、rpm軟體包程式管理工具
glibc: 系統核心庫
軟體包的組成部分:
1:二進制程式:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
2:庫檔案:/lib, /usr/lib, /usr/local/lib
3:配置檔案:/etc
4:幫助檔案:手冊, README, INSTALL (/usr/share/doc/)
軟體包管理工具:
1:檔案清單
2:檔案放置路徑
3:提供的功能說明
4:依賴關系
RPM: RPM is Package Manager
rpm --> yum是rpm的前端工具
編譯安裝:源代碼
編譯器:gcc, g++
提供編譯環境:開發環境
二進制:
庫:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
幫助手冊:/etc/man.config, man -M
頭檔案:/usr/include
安裝程式的方式:
通用二進制格式
軟體包管理器
軟體包管理器的前端工具
源代碼編譯
rpm: 打包、安裝、查詢、升級、卸載、校驗、資料庫管理(重建)
源程式:name-version.tar.{gz|bz2|xz}
version版本号:major.minor.release
例如:bash-4.3.1.tar.xz :主版本号4;次版本号3;發行号1
rpm包:name-version-release.arch.rpm
發行号:用于辨別rpm包本身的發行号,可還包含所适用的作業系統
el6: rhel6 、centos6:
arch: 主機平台
i686、x86_64、amd64、ppc、noarch(不依賴平台)
rpm分包:
主包:核心包
分包:支包
OS: 安裝程式
fedora-epel紅帽額外的rpm包
http://mirrors.sohu.com
http://rpmfind.net搜尋rpm包的站點
http://rpm.pbone.net/
rpm包有驗正機制:來源的合法性、軟體包的完整性
gpg --> pgp
非對稱加密:pu(公鑰), pr(私鑰)
數字簽名、密鑰交換:
RedHat系列官方公鑰:
/etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6就将密鑰導入rpm中,就能驗證合法性了
用單項加密算法計算出rpm包的特征碼,再用rpm包制作者的私鑰加密特征碼并附加在特征碼的後面(裡面),我們驗證時,由于作者是用私鑰加密的,就隻有公鑰可以解密,隻要能解密出來,就驗證了其來源是合法的。解密出來的是生成的特征碼(散列值),使用相同的算法再算一次散列值,如果散列值相同,就驗證了軟體包的完整性
rpm
-K
--checksig
安裝:rpm -i /PATH/TO/RPM_FILE
-i|--install
-v, -vv, -vvv詳細資訊
-h: 以#顯示安裝進度
-ivh
忽略依賴關系:
--nodeps(不建議使用)
測試安裝:
--test
重新安裝:
--replacepkgs
warning: /etc/sysconfig/named created as /etc/sysconfig/named.rpmnew
解除安裝:rpm -e 包名
--nodeps不會将有依賴關系的包都解除安裝掉
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
查詢不加版本号:rpm -q|--query 包名
查詢所有已經安裝包:
rpm -qa不用加包名
rpm -qa | grep 'pattern'
查詢包的摘要資訊:
rpm -qi 包名
查詢包安裝生成的檔案清單:
rpm -ql 包名 rpm -qf由那個包生成的
查詢包安裝生成的配置檔案:
rpm -qc 包名
查詢包安裝生成的幫助文檔:
rpm -qd 包名
查詢包相關的腳本:
rpm -q --scripts 包名
preinstall: 安裝前腳本
postinstall: 安裝後腳本
preuninstall: 解除安裝前腳本
postuninstall: 解除安裝後腳本
查詢尚未安裝的包的相關資訊:
rpm -qpi /path/to/rpm_file可以組合其他選項
-i
-l
-d
-c
--scripts
更新:
-U: 更新+安裝
-F:更新
-Uvh
-Fvh
--force強行更新
--nodeps忽略依賴關系
注意:核心不應該更新,應該盡可能安裝,它允許多版本并存;
校驗:rpm -V 包名
rpm包的資料庫:
/var/lib/rpm
資料庫重建:
--initdb: 建立資料庫
--rebuilddb: 重建資料庫 不需要加任何參數
例子:先确定要下載下傳的包的路徑
顯示所下載下傳的包是合法的,是完整的,就可以安裝了
顯示安裝完成了
通過對軟體包的檢視可以發現軟體包已經解除安裝掉了
本文轉自 宋鵬超 51CTO部落格,原文連結:http://blog.51cto.com/qidian510/1258719,如需轉載請自行聯系原作者