Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
qY24Y `}s$cgEG 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
-f.<s!a &)Fp 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
4c2*)x$@ Go}C{(4T 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
<;d?E%` --------------------------------------------------------------------------------
*/Oq$3QGsV y ?FKou' $/%|0tQ 以下简要介绍RPM包的安装,删除和查询
eUYd0L! %3 ecV$ RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
g?ID}E~< 9-DDly [)4 rpm命令的格式为:
A L#"j62 u4L&8@ rpm [options] [packages]
&L,zh{Mp %,rUN+vW 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
!2WRxM )o'&f"/ 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
zrjqB3R4@O --------------------------------------------------------------------------------
I
U/HYBJH &eQF[8 , ^tIi;7k RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
00'R1q4 xBhfC!AK} 以下为rpm --showrc命令显示的节选:
|1G /J[E c+/SvRx^> 示例:
jb8v3L =<I 90j~) 此为部分显示结果
F>,kKR- [root@localhost ~]# rpm --showrc
d-g&TSGd ARCHITECTURE AND OS:
~Rx[~a build arch : i386
d#.9!m~. compatible build archs: athlon i686 i586 i486 i386 noarch
PNLtpixZ build os : Linux
AD4KoT& compatible build os's : linux
2HBYReQ install arch : athlon
N^A&DrMF install os : Linux
KTd,^h compatible archs : athlon i686 i586 i486 i386 noarch
IiV:bHUE}0 compatible os's : linux
PuAcsYQhN RPMRC VALUES:
\+mc 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
O0#wM-M optflags : %{__global_cflags} -m32 -march=athlon
+2=N#LM Features supported by rpmlib:
m/sAYF" rpmlib(VersionedDependencies) = 3.0.3-1
`#hdb=3 PreReq:, Provides:, and Obsoletes: dependencies support versions.
D^To:N7U rpmlib(CompressedFileNames) = 3.0.4-1
&Ib8xwb: file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
+]/_gz rpmlib(PayloadIsBzip2) = 3.0.5-1
bNR}Mk]? package payload can be compressed using bzip2.
MV5'&" ,oB --------------------------------------------------------------------------------
|?0Cm|? A/Kw"l> r*<)QP^B~ rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
E~xK1x" _B)LRD+Hj 示例:
2xH9O{ ig^9lM' [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
|D%i3@P&ZR Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
MK7S*N1 Preparing... ########################################### [100%]
w@7NoD= 1:lynx ########################################### [100%]
SLO;c{EFH --------------------------------------------------------------------------------
MNO T<( ~?8B~l^ Ub%+8M 以下列出一些通用选项(可以用于所有模式):
^EE3E' O.e^?ysp/ --dbpath path
#q40 >)] 用path作为RPM数据库的路径。
]Qe;+p9vU 1SeDrzLA --ftpport prot
9VdVom|e 用port作为FTP端口。
nC^?6il
K~OfC --ftpproxy host
P9vN5|"M 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
I&qT3/SVI +Ck F#H ~ --help
M%+l21& 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
M0DdrL/
L n.p6+^ES --justdb
ZurQr} 只更新数据库;不改变任何文件。
qYc]Y9fi di}YHMTx --pipe command
:\x53-&hO4 用管道把rpm输出到commond。
&=5 Zso&.IATng --quiet
2 628 c` 仅显示错误信息。
g2.%x \d 8P.UB{QNe --rcfile filename
h"cLZM:6 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
S',i Es6b~# --root dir
\^vf`-uG 在dir目录内执行所有操作。
>tXn9'S LGZ5py=xb --version
*`[dC,+`. 输出rpm版本号。
{C Qo}@.7 /`#sp -vv
l j*ELy 输出调试信息。
iJuh1+6:c9 od!"?F --------------------------------------------------------------------------------
1C(6.7l VQV7W F;Ms6 "K 安装升级和刷新
6*%3O=* U.~,Bwb 安装或升级一个RPM包,install命令的语法为:
mz;S*ONlV !/, 6+2Ru rpm -i [install-options] package_file
Xm&L@2V rpm --install [install-options] package_file
rXXIpQRi$S /-JBzU$ 示例:
XbdoTriE 3 G/#OJ [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
XH&Fn+ package lynx-2.8.5-18 is already installed
[?VYxX@ [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
}q9;..oL --------------------------------------------------------------------------------
!4d6wp" Va,M9)F P]gksts9f. 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
j J6Y z b{qeu$G R rpm -U [install-options] package_file
C-4NiXa rpm --upgrade [install-options] package_file
{^gbS jXq~ x"( 示例:
}7YDe'5V G4->7n N 先安装旧版
]bCeJE.+) [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
jV)!9+H# r(NfVQF 再安装新版
#=/eu= [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
flp<QT T0n=nC}< 显示出新版本信息
MVHj? [root@localhost ~]# rpm -q lynx
c\~H_ ~F lynx-2.8.5-18
4K` N3 vf(8*}'!Q 说明:
e:}8|e~T -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
7qSlqA<Hs +%(iGI{ 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
:"? boA#L --------------------------------------------------------------------------------
R)?b\VK2$ \ &1)k/ E< nXkqD 刷新的语法是:
q+2yp&zF HpXMPHd rpm -F [install-options] package_file
(.\GI D+i Z0T{1YEJ rpm --freshen [install-options] package_file
|5)~WoV/G ?Z%Ja_}8ma 示例:
)\_xB_K\ G|FF 从未安装过lynx包,使用-F选项,将无法升级。
8>a/x , Knsb`1"E^6 [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
Xm`s=5% [root@localhost ~]# rpm -q lynx
$@d`Kz; package lynx is not installed
_l]`Og@Y --------------------------------------------------------------------------------
~d6_ 7?j$ Lwt aVvi_cau 安装和更新选项为:
.CFaBwj WL-+;h@VQ --allfiles
kb1{;c: 安装或更新所有文件。
B[7|]"L@ _ b}\h,Ky --badreloc
Gxfw!aF~ 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
TuY{c%qQ: }/BwFB+(/ --excludedocs
nW+rJ 不安装任何文档文件。
pHFlO!#]| Pi::cf>3 --excludepath path
NWPL18*C 不安装文件名以path开始的任何文件。
dj4 g Y9~;6fg --force
d_#\^!9 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
pW O-YZ#+ '"QC^Joz -h,--hash
g(<02t!OT= 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
\lHi=}0 e3YZ-w^W~h --ignorearch
wqBGJ 即使二进制包用于不同的体系结果也进行安装。
vgOmcf%; "lLt=s2>L --ignoreos
At%g^ 即使操作系统不匹配也安装二进制包。
=N01!?{ ,R0@`t1 p --ignoresize
W]5kM~Q@ 安装前不检查磁盘的可用空间。
@va{&i`%A7 *2crhI*@> --includedocs
vIG8m@-!&; 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
nk9hQRP?
8 ]+)z}lr8 C --nodeps
|s|>46E 不检查这个包是否依赖于其他包的存在。
g.f!Uc{ 94I8~Jj4 --noorder
TveCy & 安装之前,不为了满足依赖关系而对包进行重新排序。
'[JrP<~^o aAO[Y"-:,Y --noscripts
Cca(
oV 不执行任何预安装或后安装脚本。
X obiF UV)[a%/SB& --notriggers
: QSlctW 不执行任何由包安装触发的脚本。
: Ey qfE/,L(B --oldpackage
hd9fD[5 允许升级以用旧包替换新包。
K]zBPfx btw_k+Fh --percent
0sVCTJ@ 当文件被解压时输出完成百分比的信息。
?yddr`?W gj\r>~S --prefix path
'mpY2|]\$ 把可重定位包的安装前缀设置为path。
s`Z(f:/6* O(,Ezyx --replacefiles
ItQI M# 即使包替换了来自其他安装包的文件,也安装这些包。
Lcplc"C .Xo, BEjE/ --replacepkgs
8U\;N 即使某些包已经被安装,也安装他们。
QV+(' w |>:mQnU --test
Mp?Ev. 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
`>rdn*B 9/D+6hJ]: --------------------------------------------------------------------------------
=NAL*4c+ INW8Q`[F )<DL' 查询
=w".B[r s?=f,I query命令的语法为:
V;=SncUb ^qiTO`lg rpm -q[information-options] [package-options]
T'\lntN rpm --query[information-options] [package-options]
mn*.z!N= "pdG%$ 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
$]\N/}1v --------------------------------------------------------------------------------
7R<<}dA] 7\JRHw tAP~ 以下简单示演示一下包查询:
8iK>bp `iv,aQ ' 简单查询:
:b^tu8E eXnMS!g%Z 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
cliP+# ;.!AX|v 示例:
T*J]e|aF 0Vh|UJ'&7 [root@localhost ~]# rpm -q lynx
HkJ$r<J2 lynx-2.8.5-18
Sq-mH=rs] --------------------------------------------------------------------------------
%l,p />r Jnb>u*7, *7nlel 信息查询:
cQu1WgQ
G vNd4Fn)H rpm -qi packagename命令可以得到安装包的汇总信息。
uV52ko, ^=pn!lK;^ 示例:
bCdEItcD [root@localhost ~]# rpm -qi lynx
[#)-F_S Name : lynx Relocations: (not relocatable)
-2K`:}\y& Version : 2.8.5 Vendor: Red Hat, Inc.
;-n+=@]7 Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
wR@fB Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
P`Anf_ Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
4punJg~1 Size : 4837340 License: GPL
'2/48j X5 Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
fi:Z*- Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> (3%NudkwT URL :
http://lynx.isc.org/ #J, `a. Summary : 一个基于文本的网页浏览器。
My:wA;# Description :
72&xEx Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
9@Cqg5Kx' 图像,但是它支持框架、表格、以及多数其它 HTML
O>Xyl4U 标签。Lynx 优于图形化浏览器的地方是它的速度――
'?v.O} Links 能够快速启动、退出、及显示网页。
$wdIOfaH 标识拥有者
xdXt --------------------------------------------------------------------------------
]EE}ax%#aq ts{Tk5+ @;G}bYq^(I 找出什么包拥有文件file:
6S2D\Bt,_ ;I:jd") 示例:
`Q,moz 55zimv&DV [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
|TkMrj0 lynx-2.8.5-18
#QXB2x<* --------------------------------------------------------------------------------
SE;Jl[PgcL <lB^>Hfu Xi6XV3G 列表包中的文件:
,-vbR& _Sosw|A 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
e#0R9+"Ba W.HM!HQp 示例:
2Af1-z^^K L
V?- g 此为部分显示结果
<FRYt-+ [root@localhost ~]# rpm -ql lynx
bs
kG!w /etc/lynx-site.cfg
C^2Tql /etc/lynx.cfg
-Z-|49I/mN /etc/lynx.cfg.cs
&+xNR2"; /etc/lynx.cfg.ja
=BMON{K /etc/lynx.cfg.sk
>TeTa l /usr/bin/lynx
/Pxt f~$ /usr/share/doc/lynx-2.8.5
`$AX!,<!G /usr/share/doc/lynx-2.8.5/INSTALLATION
W+cmn )8 /usr/share/doc/lynx-2.8.5/README
2LiJ IO8N /usr/share/doc/lynx-2.8.5/docs
0%<Fc9# /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
2h@/Q)z /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
$GSn#} yz /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
%{Kp#R5E /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
_<+! /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
N41)?-7F /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
lSPQXu*[ /usr/share/doc/lynx-2.8.5/docs/CMU.announce
d!D#:l3; /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
0/6f9A /usr/share/doc/lynx-2.8.5/docs/FM.announce
h
rW /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
z|Q)^ /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
S4n\<+dR< /usr/share/doc/lynx-2.8.5/docs/README.TRST
z{wJQZ9" /usr/share/doc/lynx-2.8.5/docs/README.chartrans
"iMuA 9f\Lon4lX --------------------------------------------------------------------------------
.D(H@3qA@ I%ivY bE74Ui 列出包所提供的实际能力:
]]Sz|6 P _K<H*R --provides选项的作用是列出这个包所提供的实际能力。
h8&VaJ <'>c`80@\* 示例:
b(Zh$ 86 66(|3D X [root@localhost ~]# rpm -q --provides lynx
W4%I%&j config(lynx) = 2.8.5-18
p[2`H$A webclient
)"/.2S; lynx = 2.8.5-18
3yX^93 --------------------------------------------------------------------------------
pZ,=iqr M+j V`J! 6!sC 列出这个包所倚赖的任何包:
v6uR[18 v*iD)k:|t -R,--requires选项的作用是列出这个包所依赖的任何包。
o,>9|EMQZ `|)V]< 示例:
O`j1~o<{ Hb55RilC [root@localhost ~]# rpm -qR lynx
rE$0a-d2B /bin/sh
"
R!,5HQF; config(lynx) = 2.8.5-18
G8z.JX-7g indexhtml
$9YAq/#Q libc.so.6
lHerEv<ja libc.so.6(GLIBC_2.0)
\5M1; libc.so.6(GLIBC_2.1)
8JYU1Ew libc.so.6(GLIBC_2.2)
`k2YH? libc.so.6(GLIBC_2.3)
+txFdc libcrypto.so.4
?*cr|G$r[ libncursesw.so.5
I!1|);li libssl.so.4
>!sxX = < libz.so.1
o5LyBUJ rpmlib(CompressedFileNames) <= 3.0.4-1
$$F iCMI rpmlib(PayloadFilesHavePrefix) <= 4.0-1
opsjei@ --------------------------------------------------------------------------------
Y\75cfD 0h/bC)z
Jx@_OE_vp 列出包中的配置文件
ZZq]I *ThP->&:( -c,--configfiles选项的作用是列出包中的配置文件
" b3-'/& g?B4b7II 示例:
Cq8.^=}_ u+EZ"p;o [root@localhost ~]# rpm -qc lynx
JOwm|%>3a /etc/lynx-site.cfg
9U&~H*Hf /etc/lynx.cfg
C- 5QhD /etc/lynx.cfg.cs
2(I S*idq /etc/lynx.cfg.ja
M/?eDW/ /etc/lynx.cfg.sk
CCDU5l$$ --------------------------------------------------------------------------------
O]_a$U*6 Br4[hUV/ IVSOSl| 显示有关于包的改变信息的日志:
.fFXH Jlp nR#@ --changllog选项的作用是显示有关于包的改变信息的日志。
E<RPMd @a 1A%0y)] 示例:
6mV-+CnYC B@w/wH 此为部分显示结果
6}l[%8 [root@localhost ~]# rpm -q --changelog lynx
z@I'Ryalyc * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
e dTFk$0 - Removed perl dependencies (bug #127423).
V82HO{ D * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
+[vIocu - rebuilt
~Uw;6VXV1 * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
8+i=u"< - No longer need lynx-284-ipv6-salen.patch.
w)N~u% - No longer need lynx2-8-2-telnet.patch.
U7#C. Z * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
3_bqDhVI5 - rebuilt
'uC=xG.*} * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
k,eo+qH.Hz - Updated to dev16, fixing bug #110196.
3D;?X@ - No longer need crlf patch.
PctXh, = - Use shipped ja translations.
HmiG%1+{A - Use %find_lang.
s
Poh\n - Default config file now sets UTF-8 (bug #110986).
s<>d&W 0= --------------------------------------------------------------------------------
]!q>@b k?Kt*T Ptm=c6H(' 包选择选项
j*\oK@ j"hNkCF package_name
j(A>M_f; 查询已安装包的package_name。
YdDP;,
DA Al1_\vx7 -a,--all
Jxf>!\:AZu 查询所有已安装拨。
|\2>n! 4#qZ`H,Ur) -f file,--file file
e%s1D 找出什么包拥有文件file。
ZIN1y;dJ /!?b&N/d) -g group,--group group
\o*w#e[M 找出什么包拥有组group。
IR:GoD+ H#i,Ve' -p package_file
'_b3m2I.G 查询未安装包package_file
wBDHhXi0 )T6:@n^]h --querybynumber num
2vTO>*t 查询第num个数据库条目。主要用于调试。
k%3)J"|/ NH;e|8 -qf,--queryformat num
&gJ1*"$9 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
%~I&T".iC |a#=o}R_ --specfile specfile
#SKC>MGz 查询specfile,就好象它是个包
Atb`Q'Yrw svx7 --triggeredby pkg
XV/7K" 列出触发安装pkg包的包。
uh2 Fr 6cd!;Ca --whatrequires capability
W[I$([ 列出要求特定能力来行使职责的包。
E
mg=, j!@T@
8J --whatprovides capability
\=D+7'3 列出提供特定能力的包。
4[i 3ckFT, --------------------------------------------------------------------------------
udT0`6l; X!:J1'FE ep~+]7\ 信息选择选项:
wo+`WnDh Q7<Y5+ -c,--configfiles
X{Fr 列出包中的配置文件。
O&MH5^I 'z^'+}iyv --changelog
^ ^&H:q 显示有关于包的改变信息的日志。
JNY ?]|= vp2w^/])u -d,--docfiles
l9C `:g 列出包中的文档文件。
D_?Tj &',#j]I --dump
Zr1"'+- 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
;e*okYM 以下列顺序输出信息:
\?oT.z5VG& path size mtime md5sum mode owner group isconfig isdoc rdev symlink
A1F$//a *Lxt{z`9 --filebypkg
|||m5(`S 列出每个包中的所有文件。
t
#Kucde %19~9Tw -i
gm
pY[ 显示包的信息,包括名字,版本和描述。
1TX3/]: DLP@?]BBOA -l,--list
1X2|jj 列出包中所有文件
x]yIe&*(' B8eZ}9X --last
bl&9O 根据安装时间列出包,最新的包排第一位。
C[<{>fl) Uj\t04 --provides
Kp*3:XK 列出这个包所提供的实际能力。
2+I5VPf Qy"%%keV'T -R,--requires
hSxK*.W*3 列出这个包所依赖的任何包。
T59FRX 2q]ZI -s,--state
ovOV&Zt 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
WMnSkO /k?l%AH --scripts
r>! @Z2%s 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
@67GVPcxl
Ip`1Wv_ --------------------------------------------------------------------------------
|=v,^uo ?]bx]Y; O7_y QQAA 卸载
g33Y$Xdk *z6A ~U uninstall命令的语法为:
=BN<)f^*s Xs|d#WbX rpm -e package_name
4OLYB9HP_ rpm --erase package_name
Dq%}({+ ^wc:qll 示例:
<$hv{a mE1Vr [root@localhost ~]# rpm -e lynx
l%('5oz@\ [root@localhost ~]# rpm -q lynx
?/1LueC: package lynx is not installed
]@cI _n --------------------------------------------------------------------------------
cAGM|% olr#3te J @~g> 卸载选项为:
L4T\mP7D7* y{<js!au --allmatches
?Fl O,|
删除包的所有版本。应该只指定一个包,否则会导致错误。
o<p4r}*AVJ 8+7*> FD)1 --nodeps
g$mMH 在卸载包之前不检查依赖性。
'AWWdz ~|, "w90 --noscripts
OGLA1}k4 不执行任何预卸载和后卸载脚本。
82+2PE{ ReD]M@; --notriggers
yMM2us#*+q 不执行任何由这个包的删除而出发的脚本。
nj00g>:> pO fw *lD --test
E_$nsM8? 不真正卸载任何包,仅仅查看活动过程。