2009年8月3日 星期一

Linux RPM 使用講解


================================================
Linux RPM 使用講解
by AYO 阿佑

================================================
前言:
原文出處:

作者: 我從山中來
http://tw.group.knowledge.yahoo.com/hacker-cracker/article/view?aid=1202

http://doc.linuxpk.com/153.html

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/

AYO阿佑 這次來講說,Linux 世界中,有一種工具叫做 RPM,
這個是 Linux 套件安裝、升級、更新 的方法之一,
先行說明一下幾個名詞解釋 :
RPM : 這是 Linux 安裝、升級、更新方法之一,
      泰半都是 Red Hat 公司出品的 Linux 居多,
      會這麼說是因為是因為 RPM 全名叫做,RedHat Package Managmer,
      所以 Red Hat 相關的 Linux,都 100% 支援此種方式,
      例如 : RedHat、RHEL、Fedora Core、CentOS
DPKG : 這又是另外一種 Linux 安裝、升級、更新方法之一,
       源出自 Debian Linux,
       而 Linux 中,N User 比較常聽過的 Ubuntu,也是支援這個方法喔!!
       當然還有 FreeBSD 也是支援此方式做的喔!
YUM : 這是 Linux 線上更新的方式之一,
      也是 Red Hat 所發展的線上更新方式,
      可以做成自動更新,保證所有的套件都是最穩定的新版本,
      以防入侵問題產生,
      所以 RedHat、Fedora Core、CentOS 都支援此方式更新
Up2date : 這是 Linux 線上更新的方式之一,
      也是 Red Hat 所發展的線上更新方式,
      可以做成自動更新,保證所有的套件都是最穩定的新版本,
      以防入侵問題產生,唯一不同的是,
      這只有 RHEL 獨有,因為 RHEL 叫做 RedHat Enterprise Linux,
      這個作業系統可以跟 RedHat 官方購買 ""技術諮詢"",
      技術諮詢就包含線上更新
apt-get : 源出自 Debian Linux,而 Linux 中,
      End User 比較常聽過的 Ubuntu,
      也是支援這個方法喔!!
      當然還有 FreeBSD 也是支援此方式做的喔!
tarball : *.tgz、*.tar.gz、*.gz、*.tbz、*.bz2 都是 Linux 壓縮檔案,
      而這些壓縮檔,也可以下載之後,
      自己來安裝,只是程序上,會比上述幾樣更複雜,
      而且也必須更新的時候,純手工更新

本次 AYO阿佑 僅討論 rpm 的部份,而 rpm 要怎麼使用呢??
下面的文件介紹的很詳細,不過呢? 老實說,泰半都少用到,
這邊 AYO阿佑 先介紹 ""實用的"",
其他的比較少用的,您可以用到的時候再查閱即可

安裝:
rpm -ivh *.rpm 這是 rpm 安裝的方式
-i : 指的是 install
-v : 是指 verbose,附加資訊,會在安裝的時候顯示的比較仔細
-h : 這個指的是安裝時顯示安裝進度 hash,
      再安裝時候會出現 #### 這種安裝進度

rpm -Uvh *.rpm 這是 rpm 更新的方式
-U : 指的是 Upgrade
-v : 是指 verbose,附加資訊,會在安裝的時候顯示的比較仔細
-h : 這個指的是安裝時顯示安裝進度 hash,
      再安裝時候會出現 #### 這種安裝進度

還有剩下這三樣比較常用
--replacepkgs 強制重新安裝已經安裝的套裝軟體
--force 忽略套裝軟體及檔的衝突
--nodeps 不檢查依賴性關係

移除:
rpm -e *.rpm 這是移除套件的辦法
-e : 是指 erase 囉!

查閱:
rpm 不論是 自己 或者是 當初安裝時本身就已經安裝了不少套件囉!!
那想要查閱套件已經裝了哪些怎麼做呢?

rpm -q 這樣就會列出完整的 rpm 列表來囉!
但是往往這個列表超級長,
想找到自己想看的套件簡直會眼花,
所以說大部分的做法是 :
範例 : rpm -q |grep kernel 
這個意思是說 查詢 rpm 全部列表,
但是只要顯示有關 kernel 的列表出來

基本上 rpm 的安裝、更新、查閱,重點也就上面這些而已!
不難對吧! 只需要先懂上面這幾項在做什麼,就可以囉!
至於下面的參考文獻,可以當作 Extension 來閱讀即可

================================================
參考文獻如下 :

一、安裝

命令格式:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

參數:

file1.rpm ... fileN.rpm 將要安裝的RPM包的檔案名

詳細選項:

-h (or --hash) 安裝時輸出hash記號 (``#'')

--test 只對安裝進行測試,並不實際安裝。

--percent 以百分比的形式輸出安裝的進度。

--excludedocs 不安裝套裝軟體中的文檔檔

--includedocs 安裝文檔

--replacepkgs 強制重新安裝已經安裝的套裝軟體

--replacefiles 替換屬於其他套裝軟體的文件

--force 忽略套裝軟體及檔的衝突

--noscripts 不運行預安裝和後安裝腳本

--prefix 將套裝軟體安裝到由 指定的路徑下

--ignorearch 不校驗套裝軟體的結構

--ignoreos 不檢查套裝軟體運行的作業系統

--nodeps 不檢查依賴性關係

--ftpproxy 用 作為 FTP代理

--ftpport 指定FTP的埠號為

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

二、刪除

命令格式:

rpm -e ( or --erase) options pkg1 ... pkgN

參數

pkg1 ... pkgN :要刪除的套裝軟體

詳細選項

--test 只執行刪除的測試

--noscripts 不運行預安裝和後安裝腳本程式

--nodeps 不檢查依賴性

通用選項

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

三、升級

命令格式

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

參數

file1.rpm ... fileN.rpm 套裝軟體的名字

詳細選項

-h (or --hash) 安裝時輸出hash記號 (``#'')

--oldpackage 允許"升級"到一個老版本

--test 只進行升級測試

--excludedocs 不安裝套裝軟體中的文檔檔

--includedocs 安裝文檔

--replacepkgs 強制重新安裝已經安裝的套裝軟體

--replacefiles 替換屬於其他套裝軟體的文件

--force 忽略套裝軟體及檔的衝突

--percent 以百分比的形式輸出安裝的進度。

--noscripts 不運行預安裝和後安裝腳本

--prefix 將套裝軟體安裝到由 指定的路徑下

--ignorearch 不校驗套裝軟體的結構

--ignoreos 不檢查套裝軟體運行的作業系統

--nodeps 不檢查依賴性關係

--ftpproxy 用 作為 FTP代理

--ftpport 指定FTP的埠號為

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

四、查詢

命令格式:

rpm -q ( or --query) options

參數:

pkg1 ... pkgN :查詢已安裝的套裝軟體

詳細選項

-p (or ``-'') 查詢套裝軟體的文件

-f 查詢屬於哪個套裝軟體

-a 查詢所有安裝的套裝軟體

--whatprovides 查詢提供了 功能的套裝軟體

-g 查詢屬於 組的套裝軟體

--whatrequires 查詢所有需要 功能的套裝軟體

資訊選項

顯示套裝軟體的全部標識

-i 顯示套裝軟體的概要資訊

-l 顯示套裝軟體中的檔列表

-c 顯示配置檔列表

-d 顯示文檔檔列表

-s 顯示套裝軟體中檔列表並顯示每個檔的狀態

--scripts 顯示安裝、卸載、校驗腳本

--queryformat (or --qf) 以用戶指定的方式顯示查詢資訊

--dump 顯示每個檔的所有已校驗資訊

--provides 顯示套裝軟體提供的功能

--requires (or -R) 顯示套裝軟體所需的功能

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

五、校驗已安裝的套裝軟體

命令格式:

rpm -V ( or --verify, or -y) options

參數

pkg1 ... pkgN 將要校驗的套裝軟體名

套裝軟體選項

-p Verify against package file

-f 校驗所屬的套裝軟體

-a Verify 校驗所有的套裝軟體

-g 校驗所有屬於組 的套裝軟體

詳細選項

--noscripts 不運行校驗腳本

--nodeps 不校驗依賴性

--nofiles 不校驗檔屬性

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

六、校驗套裝軟體中的文件

語法:

rpm -K ( or --checksig) options file1.rpm ... fileN.rpm

參數:

file1.rpm ... fileN.rpm 套裝軟體的檔案名

Checksig--詳細選項

--nopgp 不校驗PGP簽名

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--rcfile 設置rpmrc檔為

七、其他RPM選項

--rebuilddb 重建RPM資料庫

--initdb 創建一個新的RPM資料庫

--quiet 盡可能的減少輸出

--help 顯示幫助檔

--version 顯示RPM的當前版本

================================================
篇後語:
本篇文章,已經盡量減短,
但是由於 rpm 可以說的東西真的不少,
也不是短短的一篇文章可以講完,
所以寫著寫著 AYO阿佑 也不知不覺囉嗦的這麼多!!
不知道 讀者們是否看的懂呢?
有關於 rpm 新手,可以嘗試僅閱讀第一段,
然後嘗試看看,其實只需要懂第一段,
您對於 rpm 已經掌握近八成囉!
其他的 rpm 包裝、拆解 等等等,都是很進階的技術,
老實說,就算是專業工程師 也不太常用,
因此以一般駕馭 Linux Server 來說,
本文的第一段已經差不多足夠囉!

================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/



沒有留言:

張貼留言