Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
(L?fYSP! =>Vo|LBoe 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
vv
_I o W^W^5-'"D, 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
b:Lp`8Du iNR6BP
W 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
dlC)&Ai --------------------------------------------------------------------------------
}Lx?RU+@= t)LD-%F ;f7(d\=y
以下简要介绍RPM包的安装,删除和查询
M$z.S0" :J-@+_J RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
#;Y JR9VN Da!A1|" rpm命令的格式为:
\FSkI0 |~bl%g8xP rpm [options] [packages]
aD,sx#g0 $
+h~VC 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
1O1/P,u+ %_wX9ZT 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
3~\mP\/4v --------------------------------------------------------------------------------
}u&.n
pc A('=P}I^ 15_OtK RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
|b{XnD_g V?v,q'? $ 以下为rpm --showrc命令显示的节选:
mHo}, |
(bi}?V* 示例:
F_=RY]
4G&E? 此为部分显示结果
ja}_u}: [root@localhost ~]# rpm --showrc
6)m}e?D> ARCHITECTURE AND OS:
T9\wkb. build arch : i386
|k:MXI compatible build archs: athlon i686 i586 i486 i386 noarch
7=t4;8|j; build os : Linux
j0!Z 20 compatible build os's : linux
1FUadSB5) install arch : athlon
W XDl\*n install os : Linux
s_-G`xT>{ compatible archs : athlon i686 i586 i486 i386 noarch
1+RG@Cp compatible os's : linux
|ul25/B
B RPMRC VALUES:
5BCXI8Ox9x 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
{,tEe'H7 optflags : %{__global_cflags} -m32 -march=athlon
*SQ hXTn Features supported by rpmlib:
'5.n28W> rpmlib(VersionedDependencies) = 3.0.3-1
mL`,v
WL/` PreReq:, Provides:, and Obsoletes: dependencies support versions.
q'77BRD3 rpmlib(CompressedFileNames) = 3.0.4-1
f8kPbpV, file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
W}bed],l rpmlib(PayloadIsBzip2) = 3.0.5-1
5\}A8Ng package payload can be compressed using bzip2.
Tw"u{%t --------------------------------------------------------------------------------
BRbx. 4G0Er?D
X[:Hp`_$ rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
blNJ U7O~ch[, 示例:
6Y0k}+j|>E | ?3\xw [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
x?Doe`/6? Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
v{
Md4p Preparing... ########################################### [100%]
>&3M
#s(w 1:lynx ########################################### [100%]
t7tX<|aN --------------------------------------------------------------------------------
S/)P&V% 2apR7 fqA\Rp6Z 以下列出一些通用选项(可以用于所有模式):
dO}6zQ\ M_*"g>Z --dbpath path
+<7~yZ[Z8 用path作为RPM数据库的路径。
p/L|;c >%5Ld`c:SD --ftpport prot
}Tf~)x 用port作为FTP端口。
-/rP0h5# kx0(v1y3gT --ftpproxy host
"s[wLclfG 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
F8mS5oB|^
esU9 --help
-qaJ@T+J+7 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
UIgs/ 7p*PDoM6` --justdb
tIfA]pE 只更新数据库;不改变任何文件。
&7_xr.c7 H<41H;m --pipe command
jWk1FQte 用管道把rpm输出到commond。
]R[j]E. 7pf]h$2 --quiet
lWr=79 仅显示错误信息。
Z6C!-a Qc1NLU9: --rcfile filename
`L# pN5 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
L!G]i;=: VbX+`CwH --root dir
shlMJa? 在dir目录内执行所有操作。
UW%zR5q A)6xEeyR --version
,9;RP/"7 输出rpm版本号。
2$ m#)*\ &[71~.Od -vv
sZ,xbfZby 输出调试信息。
ou8V7 $>^DkrOd --------------------------------------------------------------------------------
@GTkS!86 KA~eOEjM oA/[>\y 安装升级和刷新
2tPW1"M.n i/UDda"E 安装或升级一个RPM包,install命令的语法为:
VPOzt7: K9-;-{qb rpm -i [install-options] package_file
DzZEn]+zt rpm --install [install-options] package_file
|q|?y`X4/ Vx'82CIC 示例:
ctg U |w; hu] [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
?X
$#J'U; package lynx-2.8.5-18 is already installed
\e)>]C}h [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
H(|n,c --------------------------------------------------------------------------------
6gfn5G au=A+ }+mIP:T 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
AS1#_fC 6ijL+5 rpm -U [install-options] package_file
9j94]w2v rpm --upgrade [install-options] package_file
{"v~1W) nR%ey" 示例:
h@kq>no b@v_db]|t. 先安装旧版
zv%]j0 ? [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
z6'Cz}%EP' DUrfC[jpv 再安装新版
gWk?g^KJL [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
ZYS`M?Au r~[Bzw"c 显示出新版本信息
^Uq%-a [root@localhost ~]# rpm -q lynx
qg2fTe lynx-2.8.5-18
y
-6{>P/ Bm>>-nG; 说明:
k3PFCl~e -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
s!IX3rz &u`]Zn 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
!V^wq]D2 --------------------------------------------------------------------------------
ayGcc` ~:JoKm`vU
<(Rbu2_ 刷新的语法是:
#"qP4S2
Y+d+ rpm -F [install-options] package_file
$./&GOus fzdWM:g rpm --freshen [install-options] package_file
F G:t2ea T)Y{>wT 示例:
ROhhd. u<['9U 从未安装过lynx包,使用-F选项,将无法升级。
,*kh{lJ MvKr~ [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
Q]{ `m [root@localhost ~]# rpm -q lynx
eF"k"Ckt' package lynx is not installed
9oU1IT9 --------------------------------------------------------------------------------
"Cz0r"N b!<\#[
A4 pi|=3W 安装和更新选项为:
eH_< <Xh!v =OeLF --allfiles
^O3i)GO 安装或更新所有文件。
^'ws/( j.ZXLe~ --badreloc
/jl/SV+ 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
s'^sT=b } *jmW P --excludedocs
4 KX\'K 不安装任何文档文件。
`m`Y3I (PC)R9r5 --excludepath path
:V0sKg|sS 不安装文件名以path开始的任何文件。
z*)kK *.6m,QqJ( --force
MW2{w<-]7 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
C"QB`f: sOO_J!bblP -h,--hash
>}E 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
(nwp s 3UX6 Y]E3 --ignorearch
I}+9@d 即使二进制包用于不同的体系结果也进行安装。
gW-mXb !C@+CZXLx --ignoreos
n%6ba77 即使操作系统不匹配也安装二进制包。
[(2XL"4D +i~kqiy. --ignoresize
N;v]ypak 安装前不检查磁盘的可用空间。
UP7?9\ (]` rri*^ --includedocs
d2?#&d'aq 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
NRT@"3,1YP >qVSepK3 --nodeps
*\Lr]6k 不检查这个包是否依赖于其他包的存在。
kEp{L -wr_x<7 --noorder
<1#hX(Q 安装之前,不为了满足依赖关系而对包进行重新排序。
Oye6IT" =6
3tp 9 --noscripts
V KxuK0{ 不执行任何预安装或后安装脚本。
Us.k, w*]FJ-b<.j --notriggers
NwVhJdo 不执行任何由包安装触发的脚本。
'6cXCO-_P vY7@1_" --oldpackage
y'!"GrbZ 允许升级以用旧包替换新包。
B3<sSe8L0 Vg(M ^2L --percent
|\>Ifv%{ 当文件被解压时输出完成百分比的信息。
pqTaN=R8 y\})C-& --prefix path
TPs
]n7]: 把可重定位包的安装前缀设置为path。
lwz\"8 '\GU(j --replacefiles
JL>frS3M 即使包替换了来自其他安装包的文件,也安装这些包。
O~v~s
'c& <k0/O --replacepkgs
M ziOpraj 即使某些包已经被安装,也安装他们。
z4~p(tl 4U16'd --test
/\;m/cwrl" 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
#WJ*)$A@& Pf/8tXs} --------------------------------------------------------------------------------
O"/Sv'|H# t-5Y,}j &r,)4q+ 查询
$4}G 6`vW4]zu query命令的语法为:
zWv0y8[d B=$O4nW_b rpm -q[information-options] [package-options]
ksCF"o/@V rpm --query[information-options] [package-options]
N!MDD?0 nt+OaXe5D 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
74a@/'WbE --------------------------------------------------------------------------------
NuOxEyC FE]UqB YRCs&tgs 以下简单示演示一下包查询:
gWoUE7.3` qE|syA9 简单查询:
/%s:aO JT!9LNh;R` 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
4P"bOt5izR Z1:%AqxP 示例:
~%C F3?e6 6}?d%K [root@localhost ~]# rpm -q lynx
9(nq 4HvI lynx-2.8.5-18
HsUh5; --------------------------------------------------------------------------------
_ziSH 3( IVkB)9IW la)^`STh 信息查询:
l)dE7$H _ilitwRN3 rpm -qi packagename命令可以得到安装包的汇总信息。
<nN.$4~X i>]PW|]
示例:
u '/)l} [root@localhost ~]# rpm -qi lynx
J{-`&I'b Name : lynx Relocations: (not relocatable)
w$AR Version : 2.8.5 Vendor: Red Hat, Inc.
[U8/nT Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
ux)*B}/xh Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
DU$#tg}{ Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
Kx&"9g$ Size : 4837340 License: GPL
Su"Z3gm5Kw Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
kY'Wf`y( Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> ,LN^Zx* URL :
http://lynx.isc.org/ oKCy,Ot< Summary : 一个基于文本的网页浏览器。
lFnYQab Description :
"n`z`{<n Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
LUId<We 图像,但是它支持框架、表格、以及多数其它 HTML
[M,4qe8,} 标签。Lynx 优于图形化浏览器的地方是它的速度――
/\# f@Sg Links 能够快速启动、退出、及显示网页。
Wm`*IBWA 标识拥有者
y|KQ`; --------------------------------------------------------------------------------
Xi) ;dcNJ W
h 9L!5 SFd_k9 找出什么包拥有文件file:
3CjixXaA$ D@gC(&U/6 示例:
+cqUp6x. JJ
?'<)EF [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
1xd6p lynx-2.8.5-18
6>rz=yAM_ --------------------------------------------------------------------------------
Ca5#'3Eh 8| =C/k GI/NouaNfm 列表包中的文件:
r8:"\%"f> 0VtjVz*C7& 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
gM>?w{!LBx ,^8':X"A{! 示例:
P>iZgv "WQ6[;&V 此为部分显示结果
XV]xym~ [root@localhost ~]# rpm -ql lynx
g/!MEOVx /etc/lynx-site.cfg
UtTlJb{-j /etc/lynx.cfg
)5~T%_ /etc/lynx.cfg.cs
pXO09L/nv /etc/lynx.cfg.ja
C 8wGbU6` /etc/lynx.cfg.sk
SDO:Gma /usr/bin/lynx
G6zFQ\&f /usr/share/doc/lynx-2.8.5
tm.60udbo /usr/share/doc/lynx-2.8.5/INSTALLATION
9 ;p5z[jI /usr/share/doc/lynx-2.8.5/README
n4S`k%CI /usr/share/doc/lynx-2.8.5/docs
TG$#aX\' /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
AZc=Bbh /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
GkI'. /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
~nU9j"$ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
c.Sd~k:3 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
,4t6Cq! /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
6_KvS /usr/share/doc/lynx-2.8.5/docs/CMU.announce
GJcxqgk$ /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
,zM@)Q;9 /usr/share/doc/lynx-2.8.5/docs/FM.announce
(JlPe)Q5 /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
w=;> /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
S._2..%G /usr/share/doc/lynx-2.8.5/docs/README.TRST
4vWiOcJF!O /usr/share/doc/lynx-2.8.5/docs/README.chartrans
FNH)wk O)vGIp?f't --------------------------------------------------------------------------------
$rcv@-l _|I8+(~) iKrk?B< 列出包所提供的实际能力:
]#f%Dku.m tdxzs_V,- --provides选项的作用是列出这个包所提供的实际能力。
=hvPq@C% Gh=I2GSo 示例:
PY7H0\S) (@XQ]S}L [root@localhost ~]# rpm -q --provides lynx
OgIRI8L config(lynx) = 2.8.5-18
N
Nk webclient
z8t;jw lynx = 2.8.5-18
g&y (- --------------------------------------------------------------------------------
o{#aF=`{ 46D`h!7L !38KHq^|& 列出这个包所倚赖的任何包:
v%cCJ SO# lM4 Z7mT / -R,--requires选项的作用是列出这个包所依赖的任何包。
>eG<N@13p b-VtQ%Q 示例:
85G-`T O$6&4p*F. [root@localhost ~]# rpm -qR lynx
oMg-.!6 /bin/sh
vx($o9 config(lynx) = 2.8.5-18
b_nE4> indexhtml
dX/7n= libc.so.6
*1["x;A libc.so.6(GLIBC_2.0)
"LB
MYZ libc.so.6(GLIBC_2.1)
z7IJSj1gQI libc.so.6(GLIBC_2.2)
^4$4x libc.so.6(GLIBC_2.3)
46NuT]6/4 libcrypto.so.4
$k0(iFzR1 libncursesw.so.5
_?O' A" libssl.so.4
V5ZC2H libz.so.1
3,q?WH%_ rpmlib(CompressedFileNames) <= 3.0.4-1
wX}p6yyN rpmlib(PayloadFilesHavePrefix) <= 4.0-1
IXtG
36O --------------------------------------------------------------------------------
Sk+XBX(} asYk#;z\" !@Qk=Xkg 列出包中的配置文件
q&z'S I{dy,\p -c,--configfiles选项的作用是列出包中的配置文件
b)'CP Cu* RKzty=j4 示例:
,on]Fts >D!R)W` [root@localhost ~]# rpm -qc lynx
fdKE1,; /etc/lynx-site.cfg
?&wrz /etc/lynx.cfg
YRVh[Bqg` /etc/lynx.cfg.cs
(4 ZeyG@ /etc/lynx.cfg.ja
RD[P|4eY /etc/lynx.cfg.sk
}_KzF~ --------------------------------------------------------------------------------
nu+K
N,3R" ?SgFD4<~P )M0(vog 显示有关于包的改变信息的日志:
G?$o+Y'F X,VI5$ --changllog选项的作用是显示有关于包的改变信息的日志。
~{lb`M^]h I[|Y
2i 示例:
,zx{ RDI {7m2vv? Z 此为部分显示结果
hOk9 y= [root@localhost ~]# rpm -q --changelog lynx
xwZ1Q,'C * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
!Q|a R - Removed perl dependencies (bug #127423).
|x1OWm1:< * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
95#]6*#[4! - rebuilt
0=HB!{@ * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
I1>f2/$z* - No longer need lynx-284-ipv6-salen.patch.
y%%VJ}'X! - No longer need lynx2-8-2-telnet.patch.
`Z,WKus * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
El9T>!Z - rebuilt
?1\I/'E9 * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
]pe7I
P - Updated to dev16, fixing bug #110196.
Yf9E0po - No longer need crlf patch.
1W>/4l - Use shipped ja translations.
aPxSC>p - Use %find_lang.
,H6P% - Default config file now sets UTF-8 (bug #110986).
GEy7Vb) --------------------------------------------------------------------------------
Q +l{> sL ZVH 9je %TN$ 包选择选项
iWjNK"W IIY_Q9in package_name
m33&obSP 查询已安装包的package_name。
|GQq:MB;z i695P}J2 -a,--all
Fu{VO~w
查询所有已安装拨。
bX38=.up yWZ_ -f file,--file file
7#"NKxb 找出什么包拥有文件file。
6
DQOar>d 83vZRQw -g group,--group group
2&S^\kf 找出什么包拥有组group。
Jk}3c>^D LkYcFD -p package_file
?yAb=zI1b 查询未安装包package_file
90+Vw`Gz= (^B1Kt!< --querybynumber num
FYik}wH] 查询第num个数据库条目。主要用于调试。
RvA "ug.* :1f,%Z$,q -qf,--queryformat num
O2 Y|<m 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
]v:,<=S uHquJQ4 --specfile specfile
<k1muSe 查询specfile,就好象它是个包
.sit5BX !2AD/dtt --triggeredby pkg
OF1^_s; 列出触发安装pkg包的包。
;FwUUKj tpzWi
W/ --whatrequires capability
vRaxB 列出要求特定能力来行使职责的包。
x!S}Y" E5S(1Z}]p{ --whatprovides capability
0K"+u9D^ 列出提供特定能力的包。
\``w>Xy8 --------------------------------------------------------------------------------
m-C#~Cp36 fMf; arKf9`9 信息选择选项:
.3+8Ip#z 9BOn8p;yz -c,--configfiles
5![ ILa_ 列出包中的配置文件。
se3EI1e pT+OPOSR --changelog
ZiKO|U@/ 显示有关于包的改变信息的日志。
=?Co<972Z hb1h.F -d,--docfiles
-2laM9Ed 列出包中的文档文件。
8M3DG=D #l)o<Z --dump
{1UU `d 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
}n^}%GB 以下列顺序输出信息:
WB (?6" path size mtime md5sum mode owner group isconfig isdoc rdev symlink
FLsJ<C~/~ -1d$w` --filebypkg
H^B,b!5i 列出每个包中的所有文件。
,,EG"Um6 PCDvEbpG -i
&j'k9C2p 显示包的信息,包括名字,版本和描述。
4u2_xbT =<M>fJ) -l,--list
b<r*EY 列出包中所有文件
4,)QV_? 01aw+o --last
S:2 xm8
i 根据安装时间列出包,最新的包排第一位。
qncZpXw^ DB jUHirK --provides
<T'fJcR 列出这个包所提供的实际能力。
`"~ X1; /f.
,xs! -R,--requires
kd
p*6ynD 列出这个包所依赖的任何包。
NXOvC!< ! "08TCc< -s,--state
8z&/{:Z@pH 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
O9N%dir %74f6\ --scripts
>Zf*u;/dW$ 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
b?9'-hK< La^Zr,T! --------------------------------------------------------------------------------
~Ty6]A phwq#AxQ "VsS-b^ P 卸载
7` XECIh <(qdxdUp uninstall命令的语法为:
!VfVpi+- ws]d,] rpm -e package_name
6|Rj
YX rpm --erase package_name
wz:w6q {#{nU NW 示例:
#)6
bfyi- )fT0FLl|1 [root@localhost ~]# rpm -e lynx
5'0kf7 [root@localhost ~]# rpm -q lynx
J2`OJsMwWe package lynx is not installed
,6U=F#z --------------------------------------------------------------------------------
8wS9%+ 6>EoU-YX}l C|ou7g4'p 卸载选项为:
j!"N Eh78H {\=NZ\ --allmatches
Y7yzM1?t 删除包的所有版本。应该只指定一个包,否则会导致错误。
YGq-AB AqrK==0N --nodeps
-g vS3`lX 在卸载包之前不检查依赖性。
.aIFm5N3? Qnp.Na[JV --noscripts
gm&O-N"=U 不执行任何预卸载和后卸载脚本。
?Vr~~v"fg8 N<lf,zGw
--notriggers
9**u\H)P6 不执行任何由这个包的删除而出发的脚本。
ZW8;?#_ bNz2Uo!0K --test
0h 2MmI# 不真正卸载任何包,仅仅查看活动过程。