Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
f$2DV:wuC .5s#JL 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
1Uy'TEk &N+i3l6` 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
Mtw7aK PKxI09B 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
#uc9eh}CWO --------------------------------------------------------------------------------
O~udlVn<6 #'qDNY@ w} vAV{HBQ* 以下简要介绍RPM包的安装,删除和查询
&[Zg;r OZSM2 ~ RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
/%F}vW(! |qAU\m"Pc rpm命令的格式为:
lL<LJ
:L *ydh.R<hb rpm [options] [packages]
:4\=xGiY l.iT+T 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
jl)7Jd zKllwIfi 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
8aMmz!S --------------------------------------------------------------------------------
C{<dzooz z&Kh$ $)[ j=U^+jAn RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
8N,mp>~ r`OC5IoQ 以下为rpm --showrc命令显示的节选:
W{l{O1, r:~q{ 示例:
j7>a^W :T9 P9< 此为部分显示结果
4))5l9kc. [root@localhost ~]# rpm --showrc
+N>z|T< ARCHITECTURE AND OS:
&W*do build arch : i386
{k15!(:i~a compatible build archs: athlon i686 i586 i486 i386 noarch
t3VZjO build os : Linux
04E
S>'@ compatible build os's : linux
k>V~iA install arch : athlon
l2h1CtAU install os : Linux
hf1h*x^J compatible archs : athlon i686 i586 i486 i386 noarch
ZQ)vvD< compatible os's : linux
}Nc Ed; RPMRC VALUES:
x1'4njTV$ 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
G|eJac> optflags : %{__global_cflags} -m32 -march=athlon
F`eo3z Features supported by rpmlib:
n5z";:p rpmlib(VersionedDependencies) = 3.0.3-1
cGUsao PreReq:, Provides:, and Obsoletes: dependencies support versions.
wpK[; rpmlib(CompressedFileNames) = 3.0.4-1
E
5N9.th file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
zEMZz$Y rpmlib(PayloadIsBzip2) = 3.0.5-1
%s),4 package payload can be compressed using bzip2.
&0k`=?v$ --------------------------------------------------------------------------------
MD+e!A# o 6=3;(2u[C" .*~t2 : rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
g}gOAN3. *!c&[- g 示例:
9 .3?$( -E+LA [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
s*9lYk0 Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
+zINnX Preparing... ########################################### [100%]
F['%?+<3 1:lynx ########################################### [100%]
UPGS/Xs]1 --------------------------------------------------------------------------------
2SRmh!hr ~gA^tc3G 4%"Df1U 以下列出一些通用选项(可以用于所有模式):
dUc([& o56UlN --dbpath path
OeYZLC( 用path作为RPM数据库的路径。
y.,li< v"8i2+j --ftpport prot
]uZaj?%J< 用port作为FTP端口。
&, %+rvo} }Q-%ij2 --ftpproxy host
/`+ubFXc 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
]wHXrB8vx t+tD --help
+&*Ybbhb 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
Rl[SqmnI)@ <gLq?~e|A --justdb
f|NWn`#bY 只更新数据库;不改变任何文件。
v:zKn[;o iNG =x --pipe command
|,lw$k93 用管道把rpm输出到commond。
C)(/NGf ,wB)hp --quiet
YtFH@M 仅显示错误信息。
y*vg9`$k eQ80Kf~ --rcfile filename
iM +p{/bN 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
?O.'_YS P ,*yuF|bk --root dir
4Pkl()\c 在dir目录内执行所有操作。
#m6W7_ z *~rd2 --version
n<3{QqF 输出rpm版本号。
kB]?95>Wx N/8_0]Gf -vv
uXm}THI 输出调试信息。
(P|k$S?m CQh6;[\: --------------------------------------------------------------------------------
5-.{RU= !~!\=etm ^wW{7Uq> 安装升级和刷新
=(Pk7{ ofy)}/i 安装或升级一个RPM包,install命令的语法为:
,nGZ(EBD 5z@QAQ rpm -i [install-options] package_file
iXD=_^^o . rpm --install [install-options] package_file
_[{oK G^u ey ?paT 示例:
]>oI3&6s k!ac_}&NNv [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
?(E?oJ)( package lynx-2.8.5-18 is already installed
k56*eEc [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
:~LOw}N!aQ --------------------------------------------------------------------------------
?V$@2vBVX4 3 adF) mh WF` 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
ROj9#: sZ%wQqy~k rpm -U [install-options] package_file
Igb%bO_ rpm --upgrade [install-options] package_file
YE[{Y(5;q P.'$L\ 示例:
@X]JMicJ F0tx.]uS 先安装旧版
Q'c[yu [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
~NZ}@J{00_ w(UZmZb} 再安装新版
*$9Rb2}kK [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
9ve)+Lk 4ad-' 显示出新版本信息
'tMS5d)4: [root@localhost ~]# rpm -q lynx
pL`)^BJ lynx-2.8.5-18
n+w$'l Pw/$
}Q9X 说明:
0wZAsG"Bg -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
*ez7Q =e| 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
]Ag{#GJ5D --------------------------------------------------------------------------------
9B2`FJ ,N@N4<C] 31{)~8 刷新的语法是:
&D#B"XI /9(8ML#E rpm -F [install-options] package_file
;-d2~1$ X,ok 3c4X rpm --freshen [install-options] package_file
L,*# 8rM1kOCf 示例:
\5R>+[n! TM0DR'. 从未安装过lynx包,使用-F选项,将无法升级。
O^<\]_l $*vj7V_ [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
e<-^ [root@localhost ~]# rpm -q lynx
P/ 7aj:h~P package lynx is not installed
QR*{}`+l --------------------------------------------------------------------------------
V<0J j U'Fc\M5l/l N7}yU~j^ 安装和更新选项为:
#}aBRKZf6 %nT & --allfiles
`!7QegJa" 安装或更新所有文件。
R\:t
73 :AM_C^j~
D --badreloc
&8@
a" 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
;1L7+.A am#(ms --excludedocs
%tZ[wwt 不安装任何文档文件。
f<l.%B ah|`),o(k --excludepath path
/V
f L( 不安装文件名以path开始的任何文件。
^ Mw=!n[ @W\H%VR --force
#PZBh 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
CQ^I;[=d ZA8FX
-h,--hash
?PDrj/: * 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
_Rey~]iJJ8 9<6Hs3|.! --ignorearch
g%2twq_ 即使二进制包用于不同的体系结果也进行安装。
6I~{~YvB" "7_qB8\ --ignoreos
xD4G(]d! 即使操作系统不匹配也安装二进制包。
|
sZu1K q($fl7}Y --ignoresize
+<W8kb 安装前不检查磁盘的可用空间。
">rt *?^ VO+3@d: --includedocs
IXt cHAgX 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
ff<adl- GN
?1dwI --nodeps
(h>+ivf| 不检查这个包是否依赖于其他包的存在。
{uji7TB k80!!S=_> --noorder
dxF/]>t 安装之前,不为了满足依赖关系而对包进行重新排序。
31n|ScXv 6Rc%P)6 --noscripts
$,#,yl ol 不执行任何预安装或后安装脚本。
rBovC C!J6"j --notriggers
3:G94cp5 不执行任何由包安装触发的脚本。
IX
y
$ /S\y-M9
--oldpackage
|,OTGZgc 允许升级以用旧包替换新包。
XIJ{qrDr 4Q
FX --percent
U&<w{cuA 当文件被解压时输出完成百分比的信息。
Trwk9 + )uIHonXU --prefix path
?jRyw(Q 把可重定位包的安装前缀设置为path。
m=p<.%a (y{nD~k --replacefiles
sKuPV 即使包替换了来自其他安装包的文件,也安装这些包。
+jpC%o}C Dt8wd,B --replacepkgs
6mbHfL>cO 即使某些包已经被安装,也安装他们。
gC}D0l[
,1g*0W^ --test
NK0hT,_ 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
xtP=/B/ PM!7ci --------------------------------------------------------------------------------
%Lwd1'C% l#G }j^Q FWzf8*^ 查询
~ E|L4E %l8nTcL_? query命令的语法为:
:i_kA'dl& mQ]wLPP{1 rpm -q[information-options] [package-options]
4yu ^cix( rpm --query[information-options] [package-options]
+
s snCr o4g<[X) 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
K;_.WzWD= --------------------------------------------------------------------------------
Sk 10"D B/ *|DIG{ Cq, hzi- 以下简单示演示一下包查询:
$6]7>:8mz 9#AsSbBpf 简单查询:
VT&R1)c X[
o9^< 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
4? a!6 bs_"Nn? 示例:
-j 6U{l j8@YoD5o [root@localhost ~]# rpm -q lynx
Ou;
]>FJ lynx-2.8.5-18
qeCx.Z --------------------------------------------------------------------------------
)}?'1ciHI <> f Mz<4P3"H 信息查询:
I<.3"F1} vZC2F rpm -qi packagename命令可以得到安装包的汇总信息。
Um\Nd#=: .b vB8VOrW 示例:
|Gjd [root@localhost ~]# rpm -qi lynx
#GK&{)$ Name : lynx Relocations: (not relocatable)
S,vrz!'>A Version : 2.8.5 Vendor: Red Hat, Inc.
!xMyk>%2 Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
q+t*3;X. Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
KS'? DO Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
T"t3e=xA Size : 4837340 License: GPL
[S":~3^B6 Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
E'$r#k:o Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> !O)Ruwy URL :
http://lynx.isc.org/ :n>m">4 Summary : 一个基于文本的网页浏览器。
$dci?7q Description :
PP&AF?C Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
%Md;=,a:6 图像,但是它支持框架、表格、以及多数其它 HTML
A7-QOqST( 标签。Lynx 优于图形化浏览器的地方是它的速度――
0<Px2/ Links 能够快速启动、退出、及显示网页。
uKh),@JV 标识拥有者
D(}v`q{Y --------------------------------------------------------------------------------
?YX2CJ6N DI**fywu[3 G F,/<R # 找出什么包拥有文件file:
T eG5|`t], ^Ebaq`{V\' 示例:
*gu~7&yoP >t?;*K\x" [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
c^UG}:Y lynx-2.8.5-18
rjQV;kX> --------------------------------------------------------------------------------
h5x FP Az6f I*yP z)q9O_g9 列表包中的文件:
qbHb24I E@R7b(:* 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
3yDa5q{ <"AP&J'H 示例:
v%=G~kF}[ d~O\zLQ; 此为部分显示结果
P$Xig [root@localhost ~]# rpm -ql lynx
\8=>l?P /etc/lynx-site.cfg
D>~z{H%\ /etc/lynx.cfg
V;~W,o ! /etc/lynx.cfg.cs
[st4FaQ36 /etc/lynx.cfg.ja
D^I%tn=F /etc/lynx.cfg.sk
1Xt%O86 /usr/bin/lynx
yu<sd}@ /usr/share/doc/lynx-2.8.5
5X nA.?F^ /usr/share/doc/lynx-2.8.5/INSTALLATION
CG@ LYN /usr/share/doc/lynx-2.8.5/README
RXb+"/ /usr/share/doc/lynx-2.8.5/docs
`K~300-hOb /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
i=.zkIjSh /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
4{X5ZS?CkI /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
W<xu*U(A /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
PE|_V /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
nv*q
N\i' /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
z(aei(U= /usr/share/doc/lynx-2.8.5/docs/CMU.announce
l^%Ez?-:s /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
:U0z; /usr/share/doc/lynx-2.8.5/docs/FM.announce
7z)Hq./3@ /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
X&TTw/J!^ /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
{b"V7vn, /usr/share/doc/lynx-2.8.5/docs/README.TRST
5K;jW /usr/share/doc/lynx-2.8.5/docs/README.chartrans
!BP/# My76]\Psh --------------------------------------------------------------------------------
yK_$6EtNKj cMsm[D{b ^hq`dr|R= 列出包所提供的实际能力:
4H]Go~< gb|C592R5C --provides选项的作用是列出这个包所提供的实际能力。
PiMh]
0 BEx?
bf@|] 示例:
p./zW
)7+ `!kOyh:X [root@localhost ~]# rpm -q --provides lynx
,Za! config(lynx) = 2.8.5-18
^9%G7J:vGO webclient
z^T/kK3I lynx = 2.8.5-18
9sFZs]uM --------------------------------------------------------------------------------
7;)
T;X =[FNZ:3 0g,;Yzm 列出这个包所倚赖的任何包:
'0[D-jEr 3u^U\xB -R,--requires选项的作用是列出这个包所依赖的任何包。
/9,!)/j >_jT.d 示例:
x?9rT 0D PF2PMEBx! [root@localhost ~]# rpm -qR lynx
)/1AF^ E /bin/sh
']WS@MbJ config(lynx) = 2.8.5-18
<xKer<D
% indexhtml
IC{\iwO/~c libc.so.6
|77.Lqqy, libc.so.6(GLIBC_2.0)
:Gsh libc.so.6(GLIBC_2.1)
lRF04 libc.so.6(GLIBC_2.2)
ARGtWW~: libc.so.6(GLIBC_2.3)
Fo=Icvo libcrypto.so.4
(,
/`*GC libncursesw.so.5
3s<~}&" libssl.so.4
c3W9" libz.so.1
0/S|h"-L rpmlib(CompressedFileNames) <= 3.0.4-1
D>|m8-@] rpmlib(PayloadFilesHavePrefix) <= 4.0-1
{Iy<iV --------------------------------------------------------------------------------
oDogM`T` @e8b'w3 brx
7hI 列出包中的配置文件
ijEMS1$=7 9=O`?$y -c,--configfiles选项的作用是列出包中的配置文件
3gV
17a 47 xyS%X 示例:
+F.{: }:<`L\8q\ [root@localhost ~]# rpm -qc lynx
D1rXTI$$ /etc/lynx-site.cfg
dQT A^m /etc/lynx.cfg
+!h~T5Ck /etc/lynx.cfg.cs
cVYDO*N2T /etc/lynx.cfg.ja
>?aPXC /etc/lynx.cfg.sk
XP'<\ --------------------------------------------------------------------------------
D!Pv`wm -c|dTZ8D)8 z SDRZ! 显示有关于包的改变信息的日志:
&*}`uJt Ezsb'cUa( --changllog选项的作用是显示有关于包的改变信息的日志。
N4]QmRX/j XVr>\T4 示例:
`2-6Qv 44C"Pl
E
u 此为部分显示结果
GOrDDp [root@localhost ~]# rpm -q --changelog lynx
w.Cw)#N * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
"Zm**h.t - Removed perl dependencies (bug #127423).
B3|h$aKC * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
]^j:}#R - rebuilt
_/(DEF+G * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
nwuH:6~" - No longer need lynx-284-ipv6-salen.patch.
)r2$!(NQ - No longer need lynx2-8-2-telnet.patch.
Sk7l&B * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
9Rl-Jz8g - rebuilt
KZrg4TEVi * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
(K9pr>le - Updated to dev16, fixing bug #110196.
g~EN3~ - No longer need crlf patch.
cjK\(b3 - Use shipped ja translations.
riw0w - Use %find_lang.
do,ZCn - Default config file now sets UTF-8 (bug #110986).
Q^13KWvuV --------------------------------------------------------------------------------
O?\UPNb:K lw+Y_; cxX/ b, 包选择选项
7Z%EXDm4/c QA|87alh package_name
X 4L"M%i 查询已安装包的package_name。
^97u0K3$ %!DdjC&5* -a,--all
QFekj@ 查询所有已安装拨。
cPaz- wavyREK -f file,--file file
CCoT 找出什么包拥有文件file。
WxPu{N mq#8[D -g group,--group group
RJ}%pA4I 找出什么包拥有组group。
<MK4#I1I B
]*v{?<W -p package_file
lU?8<X 查询未安装包package_file
Pgug!![ U$,-F** --querybynumber num
LV}Z[\? 查询第num个数据库条目。主要用于调试。
]bcAbCZ@ C2e.RTxc
-qf,--queryformat num
%u=b_4K"j 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
vciO={M D[jPz0 --specfile specfile
J|$UAOEDa 查询specfile,就好象它是个包
Y @(izC&h S?Y%} --triggeredby pkg
OQnb^fabY 列出触发安装pkg包的包。
=;L44.,g Q*jNJ^IW --whatrequires capability
,"en7 列出要求特定能力来行使职责的包。
6(pa2 o?,c#g --whatprovides capability
D9yAq'k$ 列出提供特定能力的包。
3A&:
c/ --------------------------------------------------------------------------------
d\O*Ol*/v Pk?M~{S !)r1zSY"g 信息选择选项:
+HDfEo T q"LE6?hs -c,--configfiles
bU$f4J 列出包中的配置文件。
Jb;@'o6 (e"\%p` --changelog
62.)fCQ^ 显示有关于包的改变信息的日志。
_^ZBSx09) $G<!+^T -d,--docfiles
O[Yc-4 列出包中的文档文件。
E$"`|Df ,DL%oQR --dump
-3GlpC22 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
:DG7Z 以下列顺序输出信息:
tkIpeL[d path size mtime md5sum mode owner group isconfig isdoc rdev symlink
`g}po%k ptQCqQ1_d --filebypkg
Mg~62u 列出每个包中的所有文件。
Q30TR :pJKZ2B, -i
byJR6f 显示包的信息,包括名字,版本和描述。
`g+Kv&546 \"7U,y', -l,--list
oUd R,;h9 列出包中所有文件
d~abWBgC` Ir6(EIwx0 --last
Je*hyi7 根据安装时间列出包,最新的包排第一位。
<Z
j>} 6DuA --provides
/{R>o0oW 列出这个包所提供的实际能力。
{Gvv^.H7 WSxE/C|[ -R,--requires
ThiM6Hb 列出这个包所依赖的任何包。
2{|mL`$04< \=2<<
iv -s,--state
itmFZZh 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
_{2/QP} ^k2g60] --scripts
fB=j51Lw 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
M@]@1Q.p +.J/7gD --------------------------------------------------------------------------------
7pO/!Lm D KRF#*[=d z1m-t#v: 卸载
rM0Idc.$&& FY9nVnIoI uninstall命令的语法为:
Dqg01_O9O +JejnG0 rpm -e package_name
&HBC9Bx/( rpm --erase package_name
dZkj|Ua~ cqG&n0zb 示例:
@5j3[e g[L}puN [root@localhost ~]# rpm -e lynx
Yn5a4 [root@localhost ~]# rpm -q lynx
-Oplk* package lynx is not installed
7-Mm+4O9 --------------------------------------------------------------------------------
PiJ>gDx m% %\k
\ /_mU%fl 卸载选项为:
Utj4f-M "IJ 9vXI --allmatches
==npFjB 删除包的所有版本。应该只指定一个包,否则会导致错误。
gxc8O).5vY lho0Xy
gn --nodeps
PUEEfq!% 在卸载包之前不检查依赖性。
2O(= 2X x31Jl{x8\? --noscripts
O ]!/fZ;( 不执行任何预卸载和后卸载脚本。
si1Szmx, J'C% --notriggers
u>*d^[zS 不执行任何由这个包的删除而出发的脚本。
s x2\ 1StaQUB --test
WelB"L 不真正卸载任何包,仅仅查看活动过程。