# 版權宣告: 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