Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
`L]cJ0tAs %^2LTK(P 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
^7Z)/c`" jU@qQ@| 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
$ze%!C -PBm@}* 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
,m8l
/wG --------------------------------------------------------------------------------
xs.>+(@|; jC@$D*"J &]ts*qCEL 以下简要介绍RPM包的安装,删除和查询
]6GdB3?UVM !-U5d9! RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
DNLqipUw 2%. A{! rpm命令的格式为:
pu0IhDMn A=I]1r rpm [options] [packages]
}_@*, TlQ#0_as[ 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
Xb?P'nD Cc$!TZq= 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
{tOu+zy --------------------------------------------------------------------------------
R',Q)< ,=Xr'7w, QPg
QM6 RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
O:{I9V-=>s |XtN\9V. 以下为rpm --showrc命令显示的节选:
!X`
5 c/^}
=t( 示例:
#i%it Kxn/@@z>u 此为部分显示结果
;v^tUyhCb [root@localhost ~]# rpm --showrc
i!*w'[G->Y ARCHITECTURE AND OS:
U rm&4&y build arch : i386
[v^T]L compatible build archs: athlon i686 i586 i486 i386 noarch
;;2XLkWu build os : Linux
5 qt]~v%y compatible build os's : linux
E2Q;1Re@ install arch : athlon
mHM38T9C% install os : Linux
b" 1a7 compatible archs : athlon i686 i586 i486 i386 noarch
r.lH@}i%n compatible os's : linux
p3&/F=T;) RPMRC VALUES:
D\}^<HW 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
K9njD#/ optflags : %{__global_cflags} -m32 -march=athlon
?S~HnIn Features supported by rpmlib:
dPc*!xrq rpmlib(VersionedDependencies) = 3.0.3-1
%nSm 32/t3 PreReq:, Provides:, and Obsoletes: dependencies support versions.
g"EvMv& rpmlib(CompressedFileNames) = 3.0.4-1
4&r[`gL file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
Xx~OZ^t&Vn rpmlib(PayloadIsBzip2) = 3.0.5-1
9s>q4_D package payload can be compressed using bzip2.
WldlN?[j --------------------------------------------------------------------------------
}rj.N98 B:\\aOEj Pv17wUB rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
lG I1LUo Aq yR+ 示例:
Ynl^Z !TA6- ]1 [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
(+`pEDD{X Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
%YkJA: Preparing... ########################################### [100%]
aHNR0L3$}{ 1:lynx ########################################### [100%]
]>tYU --------------------------------------------------------------------------------
,|D_? D)U (#k>cA(} ] JVs/ 以下列出一些通用选项(可以用于所有模式):
4/;hA
z k@L},Td --dbpath path
/BjM&v(5/ 用path作为RPM数据库的路径。
lr'h !8 lG"l|,l --ftpport prot
"1FPe63\*O 用port作为FTP端口。
DzydS=`w |`+kZ-M* --ftpproxy host
A'vQtlvKA 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
Jz&a9 Y,w'Op --help
##+|zka!U 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
jfP2n5X83 \3JZ=/ --justdb
m\o<a| 只更新数据库;不改变任何文件。
|5oK04< UCG8=+t5T --pipe command
VT8PV5z 用管道把rpm输出到commond。
jd8`D6|Z gqV66xmJ3 --quiet
*oopdGue 仅显示错误信息。
ZUePHI-dP UF0W%Z --rcfile filename
,n<t':- 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
'n4Ro|kA s~
||Vv! --root dir
nr7#}pzo 在dir目录内执行所有操作。
me:~q#k Q&+Jeji --version
BmR++ ?L 输出rpm版本号。
a~q_2S]h fFDI qX -vv
O'm><a>8 输出调试信息。
`B6*wE-| 7ss Y*1b --------------------------------------------------------------------------------
,I6jfXI4 K.) ionb uu ahR 安装升级和刷新
=^8*]/k 5&?[Vt 安装或升级一个RPM包,install命令的语法为:
x\PZ.o %LyZaU_sB rpm -i [install-options] package_file
OAJGwm rpm --install [install-options] package_file
a%| I'r FvYgp bEZ 示例:
URU,&gy= 0U|t@&q [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
Hdvtgss! package lynx-2.8.5-18 is already installed
HYcLXh vgu [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
G>Fk
) --------------------------------------------------------------------------------
<Qg).n>;z 8(-V pU ffoL]u\ 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
4<V%7z_.B 3y^PKIIrt rpm -U [install-options] package_file
loRT+u$& rpm --upgrade [install-options] package_file
H<_BnT# dbn9t7'{ 示例:
` 9;0Y LLy w9y1 先安装旧版
qt_ocOr [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
{
0\Ez} T_t5Tg~i[N 再安装新版
R[_Q}W'HG [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
(~>uFH =MR.*m{ 显示出新版本信息
MoAie|MKe [root@localhost ~]# rpm -q lynx
jr/ lynx-2.8.5-18
#(@!:f1 Ov$>CA 说明:
f3yH4r?;w -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
F/pq9 U
?iw 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
#jrtsv] --------------------------------------------------------------------------------
Z9
z!YaOL L
hp x,wXR=H 刷新的语法是:
~[8n+p+&X rR Kbs@1M rpm -F [install-options] package_file
q+iG:B /Z %G0J]QY{(x rpm --freshen [install-options] package_file
4X-" yQ<U CdBpz/ 示例:
Vz.G!*>Dg _V2^0CZ 从未安装过lynx包,使用-F选项,将无法升级。
ak,KHA6u %x'}aTa [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
m:}PVJ-" [root@localhost ~]# rpm -q lynx
7e NLs
package lynx is not installed
mM9a T0_w --------------------------------------------------------------------------------
\;XDPC j VSx9aVPkC 5!QT
}Um 安装和更新选项为:
fe!eZiE '/OcJVSR --allfiles
@h&:xA56 安装或更新所有文件。
epicY }b5omHUE% --badreloc
G2$<Q+UYs? 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
jz,K> QhhL_vP --excludedocs
A<h^.{ 不安装任何文档文件。
O2pntKI "D\>oFu --excludepath path
--fRh N> 不安装文件名以path开始的任何文件。
t1JU_P
HNJR&U t --force
@4t_cxmD 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
V`
T l$EF eOoqH$
i -h,--hash
>jU25"XI[ 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
mjQZ"h0 {MRXKnm;e --ignorearch
gt(^9t; 即使二进制包用于不同的体系结果也进行安装。
T,a71"c '[Sm w'n6- --ignoreos
c@E;v<r' 即使操作系统不匹配也安装二进制包。
M zFFWk DsB30 --ignoresize
Ucx"\/" 安装前不检查磁盘的可用空间。
z!M # p4F%FS:` --includedocs
x H\!j 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
["O_Phb| ZveNe~D7C --nodeps
`q9n`h1 不检查这个包是否依赖于其他包的存在。
eMV{rFmT k vpkWD; --noorder
e#U@n
j6 安装之前,不为了满足依赖关系而对包进行重新排序。
;AG&QdTMh +v2)'?BS --noscripts
r|63T%q! 不执行任何预安装或后安装脚本。
HA J[Y3d< )3 I~6ar --notriggers
O #<F"e;$ 不执行任何由包安装触发的脚本。
A`--*$ 8\ +CVB[r#hu --oldpackage
Dm@h'* 允许升级以用旧包替换新包。
Z0/$XS9|h; CnpQdI --percent
fsl
ZJE 当文件被解压时输出完成百分比的信息。
PNo9.-@G ^e]O-,UBk --prefix path
qeW.~B!B 把可重定位包的安装前缀设置为path。
EI9;J-c Pn,>eD*g --replacefiles
{Rdh4ZKh 即使包替换了来自其他安装包的文件,也安装这些包。
f\rE{% ;reBJk --replacepkgs
k:&vW21E 即使某些包已经被安装,也安装他们。
yq?\.~ax $bDaZGy --test
}[{9u#@# 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
O14\_eAu6 4(91T --------------------------------------------------------------------------------
?KB]
/gT^ 74
WKy }rvX} 查询
e^<'H gyQPQ;"H$2 query命令的语法为:
!4a#);`G m-6&-G# rpm -q[information-options] [package-options]
~ulcLvm:i rpm --query[information-options] [package-options]
A0>r]<y i&1rf | 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
C B`7KK --------------------------------------------------------------------------------
Gshy$'_e EJP] E) a/v]E]=qI 以下简单示演示一下包查询:
E/hT/BOPK cij8'("+! 简单查询:
x=Aq5*A0 .l hS 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
,1g_{dMx ?@z/#3b 示例:
aX~Jk >a0 V.9p4k` [root@localhost ~]# rpm -q lynx
7|o!v);uR lynx-2.8.5-18
k*u6'IKi.4 --------------------------------------------------------------------------------
a)4%sX*I
.EPv4[2%F8 :L {*B$c 信息查询:
b9ud8wLE[ Uqz.Q\A rpm -qi packagename命令可以得到安装包的汇总信息。
?yxQs=&-q~ )@p?4XsT4J 示例:
r7sA;Y\ [root@localhost ~]# rpm -qi lynx
Q_Br{
`c Name : lynx Relocations: (not relocatable)
obGhO Version : 2.8.5 Vendor: Red Hat, Inc.
kdWUz( Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
<$@I*xk[ Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
,N_/J4Us Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
73 4t Size : 4837340 License: GPL
n|pdYe8\ Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
*T#^|<.XG Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> hj&~Dn( URL :
http://lynx.isc.org/ z`YC3_d Summary : 一个基于文本的网页浏览器。
5*f54g"' Description :
DSRmFxkk Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
f`KO#Wc 图像,但是它支持框架、表格、以及多数其它 HTML
}OhSCH'o6 标签。Lynx 优于图形化浏览器的地方是它的速度――
W"*2,R[}% Links 能够快速启动、退出、及显示网页。
H2oxD$s 标识拥有者
\>>P%EU, --------------------------------------------------------------------------------
-$kIVh aNs8T` j74hWz+p4 找出什么包拥有文件file:
dF09_nw J2 / 19'QE 示例:
BG8/ a'`?kBK7`U [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
Ch3MwM5] lynx-2.8.5-18
]DU?N7J --------------------------------------------------------------------------------
_Rb2jq(&0 ML MetRP ,NvXpN 列表包中的文件:
7p hf `|Hk+V 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
'!ks $}$`h 0)cSm"s 示例:
^%!SKhRIK Be6+YM5Cl 此为部分显示结果
O_ZYm{T[7 [root@localhost ~]# rpm -ql lynx
u}%6=V /etc/lynx-site.cfg
!Vg=l[ /etc/lynx.cfg
tHo|8c~[ /etc/lynx.cfg.cs
K,JK9)T /etc/lynx.cfg.ja
t,dm3+R /etc/lynx.cfg.sk
Ssuz%* /usr/bin/lynx
Xz)qtDN|( /usr/share/doc/lynx-2.8.5
<5mv8'{L /usr/share/doc/lynx-2.8.5/INSTALLATION
w3"L5;oH /usr/share/doc/lynx-2.8.5/README
a??8)=0|} /usr/share/doc/lynx-2.8.5/docs
AC'_#nPL# /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
^a`3)WBv8 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
1og+(m`BL /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
G&Dl($ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
52 Qr /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
(hdu+^Qj= /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
SASLeGaV /usr/share/doc/lynx-2.8.5/docs/CMU.announce
/:Gy . /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
'e' p`* /usr/share/doc/lynx-2.8.5/docs/FM.announce
jDqG9] /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
8!cHRtqK /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
'<YBoU{e* /usr/share/doc/lynx-2.8.5/docs/README.TRST
79cM_O /usr/share/doc/lynx-2.8.5/docs/README.chartrans
oGB|k]6]| {l5fKVb\C --------------------------------------------------------------------------------
<xF]ca R|'W#"{@ Y)]C.V,~ 列出包所提供的实际能力:
xp'Q>%v .4 U*.Rf
--provides选项的作用是列出这个包所提供的实际能力。
8Z_ 4%vUBg <K<#)mcv 示例:
Z]R#F0"U qB,0(I1-! [root@localhost ~]# rpm -q --provides lynx
zRD-[Z/- config(lynx) = 2.8.5-18
>$9}" webclient
b}ya9tCl; lynx = 2.8.5-18
>p@b$po --------------------------------------------------------------------------------
?>7-a~*A@ a*LfT<hmU3 0+ $gR~^^ 列出这个包所倚赖的任何包:
s2NBYDi$? c?EvrtND -R,--requires选项的作用是列出这个包所依赖的任何包。
7(X
z%v GM'yOJo 示例:
Y I;iG[T,& Hnk&2bY [root@localhost ~]# rpm -qR lynx
aA52Li /bin/sh
i>,AnkI& config(lynx) = 2.8.5-18
~gW^9nWYU indexhtml
d)bsyZ;U libc.so.6
A9 g%> libc.so.6(GLIBC_2.0)
r~h# libc.so.6(GLIBC_2.1)
K)!^NT libc.so.6(GLIBC_2.2)
5\XD/Q M libc.so.6(GLIBC_2.3)
>(ip-R libcrypto.so.4
^d{5GK' libncursesw.so.5
Q8AAu&te7 libssl.so.4
+x}9a~QG# libz.so.1
2vLun
rpmlib(CompressedFileNames) <= 3.0.4-1
;aWk- rpmlib(PayloadFilesHavePrefix) <= 4.0-1
r
*6S1bW --------------------------------------------------------------------------------
(g/A uL =t)qy5 eh<mJL%T 列出包中的配置文件
:&TM0O aK
-x{ -c,--configfiles选项的作用是列出包中的配置文件
M @-:iP u "jV#,, 示例:
RU4X#gP4Vh (@5`beEd [root@localhost ~]# rpm -qc lynx
(^y"'B /etc/lynx-site.cfg
?YS>_MN /etc/lynx.cfg
pKy4***I3 /etc/lynx.cfg.cs
E5)0YYjHZ /etc/lynx.cfg.ja
9l&q} /etc/lynx.cfg.sk
gee~>l --------------------------------------------------------------------------------
m<-!~ ew 4jC)"tch h2f8-}fsq 显示有关于包的改变信息的日志:
&`v?oN9$ UAhWJ$(C --changllog选项的作用是显示有关于包的改变信息的日志。
kl.; E{PL ;]Q6K9.d8 示例:
bV&9>fC bA#9'Qu^j
此为部分显示结果
)V2W:M [root@localhost ~]# rpm -q --changelog lynx
"W%YsN0 * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
A|
A#|D - Removed perl dependencies (bug #127423).
wV==sV * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
C&H'?0Y@ - rebuilt
5X)M)"rq;V * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
*$-X&.h[ - No longer need lynx-284-ipv6-salen.patch.
=X7kADRq - No longer need lynx2-8-2-telnet.patch.
<JWU@A-.y * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
rY45.,qWs - rebuilt
4BCe;Q^6 * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
^g vTc+| - Updated to dev16, fixing bug #110196.
}rfikm - No longer need crlf patch.
[QgP6f]= - Use shipped ja translations.
}#H,oy;Dz - Use %find_lang.
>lUPOc - Default config file now sets UTF-8 (bug #110986).
VnsV&cx --------------------------------------------------------------------------------
v
f{{z%3T ?PMbbqa0 +`k30-<P 包选择选项
3PU_STSix /"?DOsJ. package_name
>bf.T7wy 查询已安装包的package_name。
mW%8`$rVEO F6[F~^9D -a,--all
uW!XzX[' 查询所有已安装拨。
MmjZq lxL.ztL -f file,--file file
^%9oeT{ 找出什么包拥有文件file。
/Rq\Mgb "x=\mA#` -g group,--group group
.A<Hk1(-) 找出什么包拥有组group。
T3zovnR ]5f;Kz) -p package_file
{V
QGfN 查询未安装包package_file
f_S$CFa@ 6Bjo9,L --querybynumber num
}OAU5P!rp 查询第num个数据库条目。主要用于调试。
hbx4[Pf Cj8&wz}ez -qf,--queryformat num
)dhR&@r*w 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
w!20 49QsT5b) --specfile specfile
F*PhV|XU 查询specfile,就好象它是个包
-/JEKwc (^}t --triggeredby pkg
?lsK?>uU 列出触发安装pkg包的包。
.u7}p# )C8^'*! --whatrequires capability
w g?}c ;
列出要求特定能力来行使职责的包。
(46'#E z[F $3HqVqF^R --whatprovides capability
*XhlIQ 列出提供特定能力的包。
= ){G --------------------------------------------------------------------------------
uxU-N /fp8tL2Y 3E|||3rf 信息选择选项:
fI)XV7,X bN.
G%1 -c,--configfiles
O0#[hY, 列出包中的配置文件。
|})s 0TU }MRgNr'k --changelog
)sm9%|.& 显示有关于包的改变信息的日志。
C{J5:ak PF`uwx@zH -d,--docfiles
pRobx 列出包中的文档文件。
(WT\HR _k2R^/9Ct% --dump
QAV6{QShj 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
2O=$[b3 以下列顺序输出信息:
jV sH path size mtime md5sum mode owner group isconfig isdoc rdev symlink
]AY 4bm {:gx*4}q8 --filebypkg
HqWWWCWal 列出每个包中的所有文件。
Zmyq6.1q~ kS-BB[T -i
I_ZJnu< 显示包的信息,包括名字,版本和描述。
w"9h_;'C_ Z5q%L!4G -l,--list
{S=<(A@ 列出包中所有文件
uQO5GDuK> m0bxVV^DK! --last
r*`e%`HU 根据安装时间列出包,最新的包排第一位。
@GKDSS4jv SiaNL: --provides
.jQx2O 列出这个包所提供的实际能力。
lm4A%4-db 'r!!W0-K -R,--requires
W/2y;@ 列出这个包所依赖的任何包。
]vQa~} _R\FB|_ -s,--state
?C2(q6X+s 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
,"`20.Lv E D>7 --scripts
5<(*
+mP` 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
w PR Ns9^ LLTr+@lj --------------------------------------------------------------------------------
QPf\lN/$4d _;PQt" ] !}*vM@)1 卸载
1-p#}VX SSF:PTeG> uninstall命令的语法为:
i`sZP#h h2zSOY{su rpm -e package_name
LG,? ,%_s rpm --erase package_name
|-=-/u1 ,h^6y 示例:
QIkFX.^ nN{DO:_o [root@localhost ~]# rpm -e lynx
RkG?R3e [root@localhost ~]# rpm -q lynx
P}Ig6^[m\ package lynx is not installed
w]gLd --------------------------------------------------------------------------------
E^rBs2;9 bKS/T^UQ EcHZmf 卸载选项为:
I'P|:XKI _K9PA[m5~ --allmatches
3J"`mQ 删除包的所有版本。应该只指定一个包,否则会导致错误。
uN<=v&]q (>0`e8v! --nodeps
KcV"<9rE 在卸载包之前不检查依赖性。
z#Jw?K_ l5w^rj --noscripts
tQzbYzGb7 不执行任何预卸载和后卸载脚本。
@M\JzV4 A[ C,W@C --notriggers
c:K/0zY 不执行任何由这个包的删除而出发的脚本。
_W(xO
|,M Nt8"6k_ --test
\*CXXp` 不真正卸载任何包,仅仅查看活动过程。