# 版權宣告: 1999 Copyright OLS3 All rights reserved.
# 作者: OLS3 (臥龍小三)
# 本講義僅供台南縣 87 學年度網路管理進階研習班上課之用.
# 學員可保存一份自用, 供日後網管時參考備查.
# 作者保有一切形式的著作權.
# 欲作其它用途者, 需經作者授權同意.
# 未經作者授權同意之前, 請勿轉載刊登.
RPM 的使用
一. 簡介.
RPM 是 RedHat Package Manager 的簡稱, 主要是用來簡化程式的安裝及管理.
以往, 在 Unix 上, 要安裝程式, 通常, 要自行抓回原始檔, 它大多是 *.tar.gz 的壓縮檔, 解開壓縮檔之後, 詳讀 README 或 INSTALL 的說明文件, 檢視相關配合條件, 如是否有 gcc 編譯器, 何種 Unix 平台.... 然後按照上面的說明步驟來安裝.
運氣好一點, 倒可以正確地使用, 運氣差時, 經常會碰到編譯錯誤的訊息, 還要得手動調整修改原始碼, 再重新編譯一次. 或者, 怎麼試就是無法編譯使用.
再者, 安裝好之後, 若時日一久, 若要找出它究竟安裝在哪裡了? 可能得費點工夫. 若要將安裝好的程式移除, 有時也不是一件容易的事.
現在有了 RPM 之後, 一切輕鬆 OK.
RPM 具有以下功能:
RPM 是免費的軟體, 在 RedHat 大力推廣之下, 許多 Unix 平台上, 也可以看到它的影子.
不過, RPM 這種簡化程式安裝管理的點子, 並非獨創. 事實上, 許多 Unix 平台, 都有類似的管理工具.
比如: SunOS 的 pkgadd, FreeBSD 的 pkg_add, Debian Linux 上的
(但還是以 RPM 來得親切好用! ^_^)
二. 選項列表.
RPM version 2.3.9
Copyright (C) 1997 - Red Hat Software
This may be freely redistributed under the terms of the GNU Public License
usage: rpm {--help}
rpm {--version}
rpm {--initdb} [--dbpath <dir>]
rpm {--install -i} [-v] [--hash -h] [--percent] [--force] [--test]
[--replacepkgs] [--replacefiles] [--root <dir>]
[--excludedocs] [--includedocs] [--noscripts]
[--rcfile <file>] [--ignorearch] [--dbpath <dir>]
[--prefix <dir>] [--ignoreos] [--nodeps]
[--ftpproxy <host>] [--ftpport <port>]
file1.rpm ... fileN.rpm
rpm {--upgrade -U} [-v] [--hash -h] [--percent] [--force] [--test]
[--oldpackage] [--root <dir>] [--noscripts]
[--excludedocs] [--includedocs] [--rcfile <file>]
[--ignorearch] [--dbpath <dir>] [--prefix <dir>]
[--ftpproxy <host>] [--ftpport <port>]
[--ignoreos] [--nodeps] file1.rpm ... fileN.rpm
rpm {--query -q} [-afpg] [-i] [-l] [-s] [-d] [-c] [-v] [-R]
[--scripts] [--root <dir>] [--rcfile <file>]
[--whatprovides] [--whatrequires] [--requires]
[--ftpuseport] [--ftpproxy <host>] [--ftpport <port>]
[--provides] [--dump] [--dbpath <dir>] [targets]
rpm {--verify -V -y} [-afpg] [--root <dir>] [--rcfile <file>]
[--dbpath <dir>] [--nodeps] [--nofiles] [--noscripts]
[--nomd5] [targets]
rpm {--setperms} [-afpg] [target]
rpm {--setugids} [-afpg] [target]
rpm {--erase -e} [--root <dir>] [--noscripts] [--rcfile <file>]
[--dbpath <dir>] [--nodeps] [--allmatches]
package1 ... packageN
rpm {-b|t}[plciba] [-v] [--short-circuit] [--clean] [--rcfile <file>]
[--sign] [--test] [--timecheck <s>] specfile
rpm {--rebuild} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm
rpm {--recompile} [--rcfile <file>] [-v] source1.rpm ... sourceN.rpm
rpm {--resign} [--rcfile <file>] package1 package2 ... packageN
rpm {--addsign} [--rcfile <file>] package1 package2 ... packageN
rpm {--checksig -K} [--nopgp] [--nomd5] [--rcfile <file>]
package1 ... packageN
rpm {--rebuilddb} [--rcfile <file>] [--dbpath <dir>]
rpm {--querytags}
三. 操作
1. 安裝.
安裝新的程式套件:
rpm -ivh foo-1.0-1.i386.rpm
或 rpm -ivh foo*
透過 FTP 來安裝程式套件:
rpm -ivh ftp://ftp.pht.com/pub/linux/redhat/rh-2.0-beta/RPMS/foo-1.0-1.i386.rpm
若已安裝過了, 可多加 --replacepkgs , 以強迫安裝
如:
rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
若有 confilcting files 的情形, 可多加 --replacefiles
如:
rpm -ivh --replacefiles foo-1.0-1.i386.rpm
2. 升級版本.
rpm -Uvh foo-1.0-1.i386.rpm
3. 移除.
解除某一個已安裝的程式套件:
rpm -e foo
4. 查詢.
rpm -q 套件名稱
如:
rpm -q foo
例如: rpm -q imap
則顯示 imap-4.5-3
rpm -qa 則查詢所有已安裝的套件.
系統將顯示所有安裝過的套件!
其它範例:
rpm -qpi koules-1.2-2.i386.rpm
結果得到:
Name : koules Distribution: Red Hat Linux Colgate Version : 1.2 Vendor: Red Hat Software Release : 2 Build Date: Mon Sep 02 11:59:12 1996 Install date: (none) Build Host: porky.redhat.com Group : Games Source RPM: koules-1.2-2.src.rpm Size : 614939 Summary : SVGAlib action game with multiplayer, network, and sound support Description : This arcade-style game is novel in conception and excellent in execution. No shooting, no blood, no guts, no gore. The play is simple, but you still must develop skill to play. This version uses SVGAlib to run on a graphics console.
/usr/doc/koules /usr/doc/koules/ANNOUNCE /usr/doc/koules/BUGS /usr/doc/koules/COMPILE.OS2 /usr/doc/koules/COPYING /usr/doc/koules/Card /usr/doc/koules/ChangeLog /usr/doc/koules/INSTALLATION /usr/doc/koules/Icon.xpm /usr/doc/koules/Icon2.xpm /usr/doc/koules/Koules.FAQ /usr/doc/koules/Koules.xpm /usr/doc/koules/README /usr/doc/koules/TODO /usr/games/koules /usr/games/koules.svga /usr/games/koules.tcl /usr/man/man6/koules.svga.6
5. 更新.
rpm -Fvh bind-8.2.3.*.rpm
-F 選項有個特性:只有已經安裝過的套件才會更新,因此極適合拿來大量修補套件之用。
6. 驗證.
如果不小心誤刪檔案, 但不確定到底是哪些檔案, 那麼, 可以對整個系統進行確認的動作, 便可以了解哪些部份可能已經遺失了:
rpm -Va