20121120 新增指令說明
RPM(Redhat Package Manager)是 Linux 必學的套件管理程式,yum 的運行也是透過 rpm,差別在於 yum 可以自動解決相依性的問題,不必使用者自行尋找安裝套件來源。
RPM相依性的問題非常麻煩,安裝完下面所有的套件後(由下而上),才能安裝套件a,而在yum出現之前,都要使用者自行解決相依性的問題。
rpm 安裝流程有下列 5 個步驟:
1. 檢查數位簽章
2. 進行相依性檢查(檢查失敗中斷安裝)
3. 執行 pre script
4. 解壓縮並複製檔案至指定路徑
5. 執行 post script
安裝
# rpm -ivh xxx.rpm // 本地安裝
# rpm -ivh http://aaa.bbb.com/xxx.rpm // 網路安裝
更新
參數 U 和 F 的差別:
下載 pidgin 套件並使用參數 U 和 F 來安裝
參數 F:若 pidgin 原先並未安裝,則該軟體不會安裝,若原先有安裝,就會升級(upgrade)
參數 U:若 pidgin 原先並未安裝,則該軟體會安裝在系統上,若原先有安裝,就會升級(upgrade)
# rpm -Fvh pidgin-2.7.9-5.el6.2.x86_64.rpm // 無後續安裝步驟
# rpm -Uvh pidgin-2.7.9-5.el6.2.x86_64.rpm // 執行安裝步驟,但相依性檢查失敗中斷安裝
error: Failed dependencies:
libgstfarsight-0.10.so.0()(64bit) is needed by pidgin-2.7.9-5.el6.2.x86_64
libpurple = 2.7.9-5.el6.2 is needed by pidgin-2.7.9-5.el6.2.x86_64
libpurple.so.0()(64bit) is needed by pidgin-2.7.9-5.el6.2.x86_64
移除
# rpm -e firefox
GPG(GNU Private Guard)key 數位簽章驗證
安裝(匯入)原廠公開金鑰:
# rpm --import ftp://ftp.nsysu.edu.tw/Unix-like/CentOS/6.3/os/x86_64/RPM-GPG-KEY-CentOS-6
使用原廠公開金鑰驗證該網站下載套件的數位簽章
# rpm -K firefox-10.0.10-1.el6.centos.x86_64.rpm
firefox-10.0.10-1.el6.centos.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
# rpm -K google-chrome-stable_current_x86_64.rpm
google-chrome-stable_current_x86_64.rpm:(SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS:
GPG#7fac5991) // 用 CentOS 的 key 來驗證 google 的套件
查詢
查詢檔案屬於哪一個已安裝的套件:
# rpm -qf /etc/ntp.conf
ntp-4.2.4p8-2.el6.centos.x86_64
查詢套件資訊:
# rpm -qi httpd
查詢所有已安裝的套件:
# rpm -qa
# rpm -q httpd
查詢已安裝的套件的所有檔案及路徑:
# rpm -ql ntp
/etc/dhcp/dhclient.d
/etc/dhcp/dhclient.d/ntp.sh
/etc/ntp.conf
........
查詢套件安裝狀態:
# rpm -qs httpd | tail -n4
normal /var/www/icons/world1.gif // normal 表示安裝正常
normal /var/www/icons/world1.png
normal /var/www/icons/world2.gif
normal /var/www/icons/world2.png
........
查詢套件相依性:
# rpm -qR httpd
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)
system-logos >= 7.92.1-1
rpmlib(PayloadIsXz) <= 5.2-1
........
查詢套件安裝或移除腳本(script):
# rpm -q --scripts httpd
查詢未安裝套件相關指令:
# rpm -qp pidgin
# rpm -qpl pidgin
# rpm -qpR pidgin
# rpm -qpi pidgin
# rpm -q --scripts pidgin
補充:不能與參數 s 同時使用,因為還沒有安裝,不會有安裝時的狀態。重新安裝套件:
# rpm -ivh --replacepkgs vsftpd
補充:此參數也可以解釋為 reinstall,但並不會覆蓋原先的檔案,只是將缺少的檔案再補回去。驗證
檢查檔案內容是否被更動過:
# rpm -Vf /etc/httpd/conf/httpd.conf
S.5....T. c /etc/httpd/conf/httpd.conf // 若檔案未遭到改變,就不會出現此行訊息
檢查套件檔案狀態:
# rm -rf /etc/vsftpd/vsftpd.conf
# rpm -V vsftpd
missing c /etc/vsftpd/vsftpd.conf
補充:
S:file Size differs(檔案的容量大小已被改變)
M:Mode differs (includes permissions and file type)(檔案的類型或檔案的屬性 (rwx) 已被改變)
5:MD5 sum differs(加密總合已被改變)
D:Device major/minor number mismatch(裝置的主 / 次代碼已經改變)
L:readLink(2) path mismatch(Link 路徑已被改變)
U:User ownership differs(檔案的所屬人已被改變)
G:Group ownership differs(檔案的所屬群組已被改變)
T:mTime differs(檔案的建立時間已被改變)
P:caPabilities differ
c:%config configuration file.
d:%doc documentation file.
g:%ghost file (i.e. the file contents are not included in the package payload).
l:%license license file.
r:%readme readme file.
資料來源
沒有留言:
張貼留言