Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
/$\yAOA'y .Di+G-#aEs 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
)M#~/~^f+ @]6)j& 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
60[f- 0X 50rCW)[# 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
&.an- --------------------------------------------------------------------------------
zv <, W:4]-i?2 3F5r3T6j} 以下简要介绍RPM包的安装,删除和查询
ppN96-]^0 7SoxsT) RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
}/x `w f";70}_ rpm命令的格式为:
RQy|W}d_ j,/OzVm9 rpm [options] [packages]
+z+25qWi #E5Sc\, 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
$V]D7kDph* Cj"k
Fq4 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
%N|7<n<S --------------------------------------------------------------------------------
9x ?" %b 92]>" DvF`KHsy RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
*oY59Yf Q
{3"& 以下为rpm --showrc命令显示的节选:
mc?5,oz;pz 64#~ p) 示例:
_I<eJ\ ZWG$MFEjl 此为部分显示结果
VHM ,W]
[root@localhost ~]# rpm --showrc
pJ6bX4QnDX ARCHITECTURE AND OS:
|08 tQ build arch : i386
IJD'0/R'c compatible build archs: athlon i686 i586 i486 i386 noarch
I/|)? build os : Linux
Up`$U~%- compatible build os's : linux
LZ|G" 5X[ install arch : athlon
x7L$x=8s install os : Linux
t.j q]L compatible archs : athlon i686 i586 i486 i386 noarch
l|%7)2TyG) compatible os's : linux
o83HR[ RPMRC VALUES:
J}i$ny_3OB macrofiles : /usr/lib/rpm/macros:/usr/lib/rpm/i386-linux/macros:/usr/lib/rpm/redhat/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/i386-linux/macros:~/.rpmmacros
FGr0W|?v optflags : %{__global_cflags} -m32 -march=athlon
wDem
}uO Features supported by rpmlib:
1mJBxg}( rpmlib(VersionedDependencies) = 3.0.3-1
rMTtPuc2 PreReq:, Provides:, and Obsoletes: dependencies support versions.
ykRKZYfsw( rpmlib(CompressedFileNames) = 3.0.4-1
D(~6h,=m file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
j Z3N+_J1 rpmlib(PayloadIsBzip2) = 3.0.5-1
*;m5^i<,;S package payload can be compressed using bzip2.
#8R\J[9 --------------------------------------------------------------------------------
b^y#.V.|k )qn
= I>=7|G rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
[\V]tpl! XsQ<yeun 示例:
A0oC*/ _R8)%<E [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
EqUiC*u8{I Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
6y%BJU.I Preparing... ########################################### [100%]
rP2^D[uM. 1:lynx ########################################### [100%]
]0ouJY --------------------------------------------------------------------------------
y:iE'SRRK6 M7eO5 >>(2ZJ 以下列出一些通用选项(可以用于所有模式):
r7C
m dB<BEe\$g. --dbpath path
^-4mZXAy1| 用path作为RPM数据库的路径。
^(N+s? 5EFow-AH --ftpport prot
4D$$KSa 用port作为FTP端口。
f|Z3VS0x ~b3xn T --ftpproxy host
&ad9VB7 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
42Gr0+Mb viD+~j18 --help
<H}"xp)j0 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
0Ny0#;P
H#m)`=nZSZ --justdb
OZ![9l 只更新数据库;不改变任何文件。
V/"0'H\"1 ItYG9a --pipe command
9w11kut-! 用管道把rpm输出到commond。
@`wBe#+\ U[U$1LSS --quiet
]AERi]
B 仅显示错误信息。
dvyE._/v _f|Au`7m --rcfile filename
@o9EX } 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
A{x&5yX8 *vJ1~SRV --root dir
NZ{kjAd3c 在dir目录内执行所有操作。
S &s7] fa\<![8LAU --version
|rW}s+Kcr 输出rpm版本号。
$d,30hK W
qci51y># -vv
e{To&gy~ 输出调试信息。
B
wtD!de$ f]T#q@|lE --------------------------------------------------------------------------------
9y.C])(2 q6H90Zb ,GVHwTZ0` 安装升级和刷新
jTSw 0\} wd..{j0& 安装或升级一个RPM包,install命令的语法为:
CN\s,. ] LtejLCf/ rpm -i [install-options] package_file
&IXr*I rpm --install [install-options] package_file
:!g|0CF_ Wj.)wr! 示例:
`5[VO y ?4|jN [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
-Zocu<Rs package lynx-2.8.5-18 is already installed
lQi2ym? [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
i1FFf[[ L --------------------------------------------------------------------------------
>/5D/}4 .LnXKRd{ Yfxc$ub 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
Qs#v/r )bi*y`UM] rpm -U [install-options] package_file
`j_R ?mY rpm --upgrade [install-options] package_file
L
G{N s8@f Z4 示例:
X*$ 7g; zr8 4%_^ 先安装旧版
?o9l{4~g [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
?kE2S6j5 <mrLld#_:C 再安装新版
9XobTi3+' [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
#\%GrtM FE/&<g0,: 显示出新版本信息
6st(s@> [root@localhost ~]# rpm -q lynx
'~liDz*O lynx-2.8.5-18
1hi^ .7~Kfm@2 说明:
aH'^`]'_= -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
2=F_<Jh|+ ScZ$&n 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
LO#{ --------------------------------------------------------------------------------
j1**Ch/ Dih~5 =E4nNL? 刷新的语法是:
~g1@-)zYxK 2kCJqyWy rpm -F [install-options] package_file
C[gSiL
RDzL@xCcn rpm --freshen [install-options] package_file
-lb}}z+/ ^6J*yV% 示例:
+1h^9Y' 7@+0E2' 从未安装过lynx包,使用-F选项,将无法升级。
{oBVb{< g.F{yX] [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
w$61+KH K [root@localhost ~]# rpm -q lynx
8ne5 B4 package lynx is not installed
2R<1^ --------------------------------------------------------------------------------
2HQHC] ;#rtV; ~@itZ,d\ 安装和更新选项为:
Z;WqKIM# 8 hWQ --allfiles
@H7dQ,% 安装或更新所有文件。
M&Ycw XV:Z Z!LzyCVl --badreloc
tkNuM0 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
Kq-y1h]7H 1<bSH n9 --excludedocs
B<:i[~`7t 不安装任何文档文件。
<;v{`@\j{ [0)iY%^ --excludepath path
w5qhKu!1 不安装文件名以path开始的任何文件。
?;^_%XSQ* Ai#W.
n --force
v6oZD;;~ 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
i$%;z~#wW Nm\I_wjX -h,--hash
Oe2Tmvl 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
W]6Y
buP: jZm1.{[> --ignorearch
Z)6bqU<LQE 即使二进制包用于不同的体系结果也进行安装。
%9Ulgs8 = {H"gp?Z- --ignoreos
!u4oo- 即使操作系统不匹配也安装二进制包。
K})j5CJ/ /V&$SRdL* --ignoresize
{d^&$~ 安装前不检查磁盘的可用空间。
VZ_4B *D 0 B3*\ H}5 --includedocs
(`>4~?|+T 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
/xf%Rp4} <7^_M*F9 --nodeps
W dIr3 不检查这个包是否依赖于其他包的存在。
+yCIA\i#t6 }\l5|Ft[! --noorder
=>S5}6 安装之前,不为了满足依赖关系而对包进行重新排序。
k}jH K
7YpGGd5 --noscripts
!f7}5/YC7v 不执行任何预安装或后安装脚本。
*h-nI= gDAA>U3|$ --notriggers
6Y}#vZ 不执行任何由包安装触发的脚本。
B8w0DJ yt_?4Hc" --oldpackage
T(3"bS., 允许升级以用旧包替换新包。
2v%~KV %) q5hB --percent
LvW9kL+WiQ 当文件被解压时输出完成百分比的信息。
`n5|4yaG~ ,)oUdwR k --prefix path
8 kd 把可重定位包的安装前缀设置为path。
9>%f99n w_\niqm<y --replacefiles
oN)K2&M0 即使包替换了来自其他安装包的文件,也安装这些包。
P8;|>OLZ) \7("bB= --replacepkgs
VCvuZU{< 即使某些包已经被安装,也安装他们。
{\lu; b! +J+]P\: --test
)v
['p 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
B6=8cf"i MdEZ839J --------------------------------------------------------------------------------
Q1s`d?P/` my*UN_] Ld+}T"Z&M> 查询
X3RpJ#m"' \zgRzO'N query命令的语法为:
HOu<,9?>Q $IB@|n rpm -q[information-options] [package-options]
+2C:] rpm --query[information-options] [package-options]
bO^%#<7 F/@#yQv? 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
w 7=Y_ --------------------------------------------------------------------------------
(lEWnf=2h w*Kw#m'U pm<<!`w" 以下简单示演示一下包查询:
bQ {WFYNEQ[ 简单查询:
Rn-L:o@?
:
<m0
GG 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
8+gSn 4S03W
示例:
Ct
#hl8b: }t"!I\C [root@localhost ~]# rpm -q lynx
gKS^-X{x
lynx-2.8.5-18
h2uO+qEsu --------------------------------------------------------------------------------
"$
u"Py Cn+TcdHX ^@L 信息查询:
a)`h*P5@ c5O1h8 rpm -qi packagename命令可以得到安装包的汇总信息。
]iPTB Xo]FOJ5 示例:
a=C?fh [root@localhost ~]# rpm -qi lynx
gsT%_2>CL Name : lynx Relocations: (not relocatable)
%;ny Version : 2.8.5 Vendor: Red Hat, Inc.
yK [~(!c5 Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
!f_Kq$.{ Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
8FbBv"LI,g Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
^"*r' Size : 4837340 License: GPL
@GjWeOj] Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
Vf O0 z5& Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> 2BRY2EF URL :
http://lynx.isc.org/ C]eb=rw$ Summary : 一个基于文本的网页浏览器。
:5C9uW# Description :
xr.fZMOh4 Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
K$f~Fft 图像,但是它支持框架、表格、以及多数其它 HTML
lC^q}Bh: 标签。Lynx 优于图形化浏览器的地方是它的速度――
%Ix^Xb0 Links 能够快速启动、退出、及显示网页。
INcJXlv 标识拥有者
!U=;e ?o --------------------------------------------------------------------------------
/z5j.TMs b:W]L3Z8 okr'=iDg 找出什么包拥有文件file:
E-Cj^#OY|N vW YN?"d 示例:
8 I,(\<Xv ]NsbV [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
a-8~f8na{( lynx-2.8.5-18
/5zzzaj{ --------------------------------------------------------------------------------
*i)GoQoB #WfJz}P,! a Se.]_ 列表包中的文件:
&ec_jxF }7Pd\t G] 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
BKV vu}V(o 1 5rE|m^ 示例:
1~ZDHfd5 21w<8:Vg 此为部分显示结果
h`Y t4-Y [root@localhost ~]# rpm -ql lynx
=:9n+7~$
/etc/lynx-site.cfg
RI-whA8+ /etc/lynx.cfg
w;{k\=W3Ff /etc/lynx.cfg.cs
qH"0?<$9 /etc/lynx.cfg.ja
sOVaQ&+y /etc/lynx.cfg.sk
ZtDHNL /usr/bin/lynx
x$6-7<p /usr/share/doc/lynx-2.8.5
n |.- :Zy /usr/share/doc/lynx-2.8.5/INSTALLATION
5M*q{kX) /usr/share/doc/lynx-2.8.5/README
!)_5 z< /usr/share/doc/lynx-2.8.5/docs
l.b /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
|
M-@Qvgh /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
a?Q~C<k /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
o3}12i S /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
~5]AXi'e~ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
4Mg09 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
ZYu^Q6b3 /usr/share/doc/lynx-2.8.5/docs/CMU.announce
%3"3OOT7 /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
c( gUH /usr/share/doc/lynx-2.8.5/docs/FM.announce
9-p d{Z~l /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
Z p]Bs /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
?mgr#UN /usr/share/doc/lynx-2.8.5/docs/README.TRST
7|65;jm+ /usr/share/doc/lynx-2.8.5/docs/README.chartrans
{`l]RIig cS{ l2}E --------------------------------------------------------------------------------
;
Sh|6 $W`
&7 } vcr71u 列出包所提供的实际能力:
^k u~m5v t41\nTZr --provides选项的作用是列出这个包所提供的实际能力。
_H:SoJ' `qs'={YtU 示例:
-c|O!Lc- AGrGZ7p] [root@localhost ~]# rpm -q --provides lynx
T /[)U
config(lynx) = 2.8.5-18
w)DO"Z7 webclient
"D@m/l lynx = 2.8.5-18
RTF{<,E.UX --------------------------------------------------------------------------------
EKwS~G.b! '[Nu;(>a APK@Oq 列出这个包所倚赖的任何包:
S,Tm=} wj ;zz"95X7 -R,--requires选项的作用是列出这个包所依赖的任何包。
7e}p:Vfp GlD@Ud>o) 示例:
a$9UUH-| rr9HC]63 [root@localhost ~]# rpm -qR lynx
3PBg3Y$ /bin/sh
nC>#@*+jK config(lynx) = 2.8.5-18
Hi.JL indexhtml
9(u2jbA libc.so.6
|bd5aRS9 libc.so.6(GLIBC_2.0)
xx/DD%IZ libc.so.6(GLIBC_2.1)
1
4(?mM3
libc.so.6(GLIBC_2.2)
?\^u},HnE| libc.so.6(GLIBC_2.3)
;&:UxmTf libcrypto.so.4
E 8,53$ libncursesw.so.5
N} Q, libssl.so.4
zxwpS libz.so.1
eZ
]6Q rpmlib(CompressedFileNames) <= 3.0.4-1
%>24.i"l rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Blaj07K --------------------------------------------------------------------------------
\a|gzC1G ~(hmiNa; rEddX 列出包中的配置文件
hoU&'P8 ;5 IS58L -c,--configfiles选项的作用是列出包中的配置文件
0}P&G^%" Uv%"45&7 示例:
A.z~wu%( gvwR16N [root@localhost ~]# rpm -qc lynx
+Pa!pj/< z /etc/lynx-site.cfg
hi.{ /etc/lynx.cfg
w8@MUz}/# /etc/lynx.cfg.cs
~ZvZk /etc/lynx.cfg.ja
yChC&kX
Z+ /etc/lynx.cfg.sk
&,KxtlR![ --------------------------------------------------------------------------------
L6Ynid.k ?$r+#'asd( !q7M+j4 显示有关于包的改变信息的日志:
}Pw5*duq IXzad --changllog选项的作用是显示有关于包的改变信息的日志。
NWoZDsu ?(g kkYI 示例:
!)LR41>? x`B:M7+\ 此为部分显示结果
b_wb!_ [root@localhost ~]# rpm -q --changelog lynx
/~AwX8X * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
sav2 .w - Removed perl dependencies (bug #127423).
n.7 $*9)# * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
`5!7Il - rebuilt
jhg!K.A * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
T-<^mX[} - No longer need lynx-284-ipv6-salen.patch.
x/9`2X`~ - No longer need lynx2-8-2-telnet.patch.
ngdVRJL * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
[r]USCq - rebuilt
"KFCA9u- * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
FWD9!M K - Updated to dev16, fixing bug #110196.
nLQ X?: - No longer need crlf patch.
?]P&3UU>0z - Use shipped ja translations.
@aj"12 - Use %find_lang.
MhJ`>.z1
- Default config file now sets UTF-8 (bug #110986).
:uI}"Bp --------------------------------------------------------------------------------
?G8 D6 7Y!^88,f. e7hPIG 包选择选项
j" YJ1R-5 uIWCVR8`Y package_name
5Impv3qaZ 查询已安装包的package_name。
{ !FrI@ g`1*p| -a,--all
Gt 2rJ<> 查询所有已安装拨。
NtA}I)'SWU MJ7!f+!5
-f file,--file file
rj:$'m7 找出什么包拥有文件file。
UO!OO&l! >i=O =w -g group,--group group
Duz}e80 找出什么包拥有组group。
QDgOprha U+'?#"
J8( -p package_file
^Yn6kF 查询未安装包package_file
9OTw6 +$v$P!), --querybynumber num
b"f4}b 查询第num个数据库条目。主要用于调试。
ETtK%%F0
3g5i5 G\ -qf,--queryformat num
FoEZ1O< 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
0|NbU /,B"H@J --specfile specfile
Fd ]! 7 查询specfile,就好象它是个包
&[kwM395 P}aJvFlmP --triggeredby pkg
0<o#;ZQ] 列出触发安装pkg包的包。
A70_hhP S"}FsS;k<? --whatrequires capability
S'?XI@t[ 列出要求特定能力来行使职责的包。
qWP1i7]=/ .[CXW2k --whatprovides capability
6}|/~n 列出提供特定能力的包。
x9@%L{* --------------------------------------------------------------------------------
!H.&"~w@ d B?I( ) d\Se9! 信息选择选项:
Q<78<#I pX!S*(Q{ -c,--configfiles
43 |zjE 列出包中的配置文件。
i{%~&! KsHovv-A --changelog
*y`^Fc 显示有关于包的改变信息的日志。
Ebp8})P/~ SYl:X -d,--docfiles
_c%~\LOk 列出包中的文档文件。
'g ,Oi1|~ 9l(e:_`_ --dump
g]d@X_ &D 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
jMd's|#OP 以下列顺序输出信息:
iVmf/N@A| path size mtime md5sum mode owner group isconfig isdoc rdev symlink
5oORwOP {;z3$/JB --filebypkg
s7&%_!4 列出每个包中的所有文件。
m;[z)-&" ~LkReQI -i
CZ1tqAk- 显示包的信息,包括名字,版本和描述。
g#Yqw &A%#LVjf -l,--list
V+( 列出包中所有文件
o5zth^p[ Lmj?V1% V --last
y.mojx%?a 根据安装时间列出包,最新的包排第一位。
>.M
`Fz. }g(aZ --provides
(4b&}46 列出这个包所提供的实际能力。
M@csB. ' nA+[[(6 -R,--requires
s{A-K5S 列出这个包所依赖的任何包。
+5^*c^C 'v\!}6 -s,--state
8/=[mYn`- 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
' OJXllGi 2]Y (<PC --scripts
r+
vtKb 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
}V9146 QmgwIz_ --------------------------------------------------------------------------------
-?@$`{-K ,[~Ydth 9lny[ {9 卸载
BPi>SI0 Zwq
uS9 uninstall命令的语法为:
vy-{BH |5g*pXu{ rpm -e package_name
B&L{/.v_z\ rpm --erase package_name
S%Ja:0=}? 7N'F]x 示例:
sU{+.k{ c~c3; [root@localhost ~]# rpm -e lynx
v[lytX4) [root@localhost ~]# rpm -q lynx
sW=@G'}3 package lynx is not installed
.# M5L --------------------------------------------------------------------------------
9Z#37) 0BE%~W KAUYE^ 卸载选项为:
{uckYx-A /$q;-/DnTZ --allmatches
2c+q~8Jv 删除包的所有版本。应该只指定一个包,否则会导致错误。
Q/0}AQO A.<X78!^ --nodeps
Ha 3XH_ 在卸载包之前不检查依赖性。
gXf_~zxS <{cPa\ --noscripts
?xeq*<qfI 不执行任何预卸载和后卸载脚本。
b?bIxCA8 Xi0/Wb h\ --notriggers
r3*wH1n 不执行任何由这个包的删除而出发的脚本。
=`/X
Wem Sb{S^w\m0 --test
^?juY}rZ=| 不真正卸载任何包,仅仅查看活动过程。