Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
W:2]d G/KTF2wl7 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
)_Iu7b ;y>}LGG 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
$^#q0Yx ,awkL
: 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
L 1q] --------------------------------------------------------------------------------
eHyIFoaC/ "YVvmCp m`@~ZIa?>B 以下简要介绍RPM包的安装,删除和查询
',6d0>4* Ye[Fu/0 RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
SQJ4}w>i ORfMp'uP= rpm命令的格式为:
;#7:}>}rO RRGs:h@; rpm [options] [packages]
mDA1$fj" u>2opI~m 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
yJ8_<A 9}d^ll& 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
TZObjSm_v --------------------------------------------------------------------------------
SFqq(K2u 9['>$ON 70nBC RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
2j[;M-3 2(Nf$?U@0 以下为rpm --showrc命令显示的节选:
cvV8; d ?,wEfwp 示例:
<!?ZH"F0 ,u.A[{@py 此为部分显示结果
_+&/P& [root@localhost ~]# rpm --showrc
gZ { ARCHITECTURE AND OS:
DM{Z#b] build arch : i386
QU@CPME compatible build archs: athlon i686 i586 i486 i386 noarch
-Z:nImqzc build os : Linux
,k,+UisG compatible build os's : linux
Qgl5Jr. install arch : athlon
k_ijVfI9 install os : Linux
Pm|S>r compatible archs : athlon i686 i586 i486 i386 noarch
/,ISx} compatible os's : linux
N9O}6 RPMRC VALUES:
j<A; i 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
+?0r%R%\ optflags : %{__global_cflags} -m32 -march=athlon
m$$sNPnT Features supported by rpmlib:
%D+NrL( rpmlib(VersionedDependencies) = 3.0.3-1
Kr%O}<" PreReq:, Provides:, and Obsoletes: dependencies support versions.
VQ4rEO=t rpmlib(CompressedFileNames) = 3.0.4-1
^=w){]G file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
5^36nEoA( rpmlib(PayloadIsBzip2) = 3.0.5-1
e]7J_9t@ package payload can be compressed using bzip2.
ov'C0e+o --------------------------------------------------------------------------------
a &hj| stOD5yi :j;_Xw rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
28 ;x5m)N M` |E)Y 示例:
lZD"7om 5g
phza [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
PtOYlZTe? Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
9Ljd
or Preparing... ########################################### [100%]
{Ytqs(`
1:lynx ########################################### [100%]
RG`eNRTQ% --------------------------------------------------------------------------------
?#u_x4==e kBrU%[0O bm(.(0MI 以下列出一些通用选项(可以用于所有模式):
K1-y[pS]E bHmn0fZ9 --dbpath path
o@r~KFIe 用path作为RPM数据库的路径。
u%nhQ% r59BBW)M --ftpport prot
g|x*sZR~Y 用port作为FTP端口。
qmbhx9V oMF[<Xf --ftpproxy host
1K{hj% 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
z;EDyd,O> 5f_1 dn --help
]"U/3dL5 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
]goPjfWvU" /Au7X'} --justdb
3>k?-%" 只更新数据库;不改变任何文件。
DbH'Qs?z WL1$LLzN --pipe command
K%NgZ(x( 用管道把rpm输出到commond。
tQIz gPy}.g{tH$ --quiet
!F#^Peb 仅显示错误信息。
O29GPs G8OnNI --rcfile filename
DMd&9EsRG 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
pt9fOih[ | <- t --root dir
wZ~eE'zx+ 在dir目录内执行所有操作。
nbSu|sX~r5 5`1p
? --version
QZ_8r#2x 输出rpm版本号。
l AZBlO Zs}EGC~& -vv
#|acRZ9
} 输出调试信息。
-o`|A767 $R/@%U)-o --------------------------------------------------------------------------------
WD?COUEox &^])iG,Ew p`oHF 5 安装升级和刷新
&uG@I=}TIY %CG=mTP 安装或升级一个RPM包,install命令的语法为:
*&rV}vVP^ 5@{~830 rpm -i [install-options] package_file
KvuM{UI5 rpm --install [install-options] package_file
B7nm7[V )zvjsx*e=J 示例:
O}q(2[*i ^%m~V LH [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
jo[U6t+pj7 package lynx-2.8.5-18 is already installed
?bl9e&/! [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
B3V+/o6 --------------------------------------------------------------------------------
-^= JKd&p j9$kaEf 8jU6N*p/ 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
5Q@4@b{C ]Kp -2KW rpm -U [install-options] package_file
h>&t``< rpm --upgrade [install-options] package_file
%jj\w> H.[t&VO 示例:
@ R;o $n 3+WostOx 先安装旧版
w!m4 [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
Xm[Cgt_? Y .\<P*iO 再安装新版
d0N/!; [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
H4g1@[{|0O 1_G5uHO 显示出新版本信息
%scQP{%aD [root@localhost ~]# rpm -q lynx
SSa0x9T lynx-2.8.5-18
?E.MP7Y#V A>QAR)YP 说明:
$O^U" -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
Zi ;7.P qL VyxX5Lrj 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
F=~LVaF/_ --------------------------------------------------------------------------------
g9:V00^< .0#{?R, A,! YXl[ 刷新的语法是:
U&SgB[QHO )VFS&|#\ rpm -F [install-options] package_file
u_X(c'aE; (c1Kg rpm --freshen [install-options] package_file
gl!F)RdH hwd{^ 示例:
x_.}C% K8|>" c~ 从未安装过lynx包,使用-F选项,将无法升级。
CeW}zkcT \-R\xL [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
Z6_E/S [root@localhost ~]# rpm -q lynx
EMMp4KKOx+ package lynx is not installed
CGJ>j}C --------------------------------------------------------------------------------
Tlz~o[`& yVb yw(gS 38gEto#q 安装和更新选项为:
P/doNv}iG zc%HBZ3p --allfiles
(pkq{: Fs 安装或更新所有文件。
t
gHXIr}3 G;v3kGn --badreloc
p#tbN5i[{7 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
2qfKDZ9f^ DjQgF=; --excludedocs
C'xWRSDO 不安装任何文档文件。
Q(ec>+oi 1ppU
?# --excludepath path
]m"6a-,` 不安装文件名以path开始的任何文件。
oAxCI/ [rtMx8T --force
+]jJ: V 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
4+4C0/$Y uE:`Fo=y -h,--hash
@8'LI8 \/ 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
;0]s:0WD0P I vD M2q8f --ignorearch
({kOgOeC 即使二进制包用于不同的体系结果也进行安装。
{^*D5 OA{PKC --ignoreos
d}(b!q9 即使操作系统不匹配也安装二进制包。
fGMuml?[ e `ls^fnJTpf --ignoresize
)b;}]C 安装前不检查磁盘的可用空间。
&U0Y#11Cx 5qQ\ H} --includedocs
Gjo&~*; 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
nj5Hls ,NoWAmv --nodeps
iE=:}"pI" 不检查这个包是否依赖于其他包的存在。
NM&R\GI &xMQ --noorder
\s">trXwX 安装之前,不为了满足依赖关系而对包进行重新排序。
W#lt_2!j Wc!.{2 --noscripts
QsH?qI&2jp 不执行任何预安装或后安装脚本。
eCXw8 2RC@Fu~zaU --notriggers
dn|OY.`| 不执行任何由包安装触发的脚本。
NJ$c0CNy ?D S|vCae --oldpackage
F@u>5e^6 允许升级以用旧包替换新包。
hxx`f-#= <CY<-H --percent
V}+Ui]ie|I 当文件被解压时输出完成百分比的信息。
#JW~ &; %8~g#Z --prefix path
cHk ?$ 把可重定位包的安装前缀设置为path。
+n&9ZCH }ec3qZ@ --replacefiles
<J.-fZS% 即使包替换了来自其他安装包的文件,也安装这些包。
E.+BqWZ! $ J)2E g --replacepkgs
O>kM2xw 即使某些包已经被安装,也安装他们。
0rj50$~$] T~b6Zu6 --test
#CTHCwYo 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
/eNDv(g)M qASV\
<n --------------------------------------------------------------------------------
GMQKR,6VM B{\qYL/~ nZ8f}R!f: 查询
ZIikDih1 A,#a?O6m query命令的语法为:
+o^sm '$ %hH@< <b(s rpm -q[information-options] [package-options]
$V2.@X rpm --query[information-options] [package-options]
h;S? Kuy0Ci 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
P*.0kR1n --------------------------------------------------------------------------------
56T{ JTo 2L|)uCb LGPPyKNx 以下简单示演示一下包查询:
9 7Mi{Zz 1JWo~E' 简单查询:
^P}c0}^ NG?- dkD 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
D/] )ME'qA3K 示例:
2!;U.+( "E}38 [root@localhost ~]# rpm -q lynx
/w2jlu}yt lynx-2.8.5-18
zaMKwv}BR --------------------------------------------------------------------------------
J1gLT $ ,%EGM+ y(h"0A1lW 信息查询:
R"V^%z;8o '5
kSr( rpm -qi packagename命令可以得到安装包的汇总信息。
't<hhjPqY #AUV&pI[ 示例:
p~NFiZ, [root@localhost ~]# rpm -qi lynx
S^*ME*DDz Name : lynx Relocations: (not relocatable)
3KN>t)A# Version : 2.8.5 Vendor: Red Hat, Inc.
g]Fm%iy Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
G*\U'w4w|* Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
/j:fc?yv Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
wC~LZSTt Size : 4837340 License: GPL
$KMxq= Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
6h3TU,$r Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> 2(iv+<t URL :
http://lynx.isc.org/ u RPvo}!=1 Summary : 一个基于文本的网页浏览器。
%% A==_b Description :
a<d$P*I(cH Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
u[~= a5:4 图像,但是它支持框架、表格、以及多数其它 HTML
jpRC6b? 标签。Lynx 优于图形化浏览器的地方是它的速度――
AxZaV;%* Links 能够快速启动、退出、及显示网页。
3}ATt". 标识拥有者
_5&LV2 --------------------------------------------------------------------------------
CGY,I
UG UcxMA%Pw7$ >nOzz0, 找出什么包拥有文件file:
O)?
M&~cU{9c 示例:
!(>yB;u Egr'IbB [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
)W.Y{\D0 lynx-2.8.5-18
A&/VO$Y9wp --------------------------------------------------------------------------------
IBSoAL ^{R.X:a w6FVSU]sY 列表包中的文件:
tX7TP( _l||69|. 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
0D:e P`` L qdzqq 示例:
Sxg&73;ZV hsZ}FLStJ 此为部分显示结果
`6QQS3fk! [root@localhost ~]# rpm -ql lynx
l_z@.</8P@ /etc/lynx-site.cfg
-VP da @@w /etc/lynx.cfg
%^
g(2^ /etc/lynx.cfg.cs
; 6*Ag#Z /etc/lynx.cfg.ja
JDj^7\` /etc/lynx.cfg.sk
$3D#U^7i /usr/bin/lynx
#,PB( /usr/share/doc/lynx-2.8.5
9i*Xd$ G /usr/share/doc/lynx-2.8.5/INSTALLATION
i8H!4l /usr/share/doc/lynx-2.8.5/README
=V*4&OU /usr/share/doc/lynx-2.8.5/docs
"'\f?A9 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
19#A7 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
#uillSV /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
>S=,ype~G /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
9d1 Gu" /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
7UA|G2Zr /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
j3yz"-53e /usr/share/doc/lynx-2.8.5/docs/CMU.announce
ZK8I f?SD /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
Cv;\cI"& /usr/share/doc/lynx-2.8.5/docs/FM.announce
ga+Z6|t /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
w\2yippI /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
qk=0ovUzg /usr/share/doc/lynx-2.8.5/docs/README.TRST
;|H(_J=6k /usr/share/doc/lynx-2.8.5/docs/README.chartrans
Hg%8Q@ y_A?}'X --------------------------------------------------------------------------------
c3G&)gU4q !-Br? j~VHU89 列出包所提供的实际能力:
`.F+T)G SdOE^_@: --provides选项的作用是列出这个包所提供的实际能力。
U)y~{E~c34 [V _?`M 示例:
yNkE> kFsq23Ne [root@localhost ~]# rpm -q --provides lynx
U**v'%{s config(lynx) = 2.8.5-18
4C[n@p2 webclient
hDc)\vzr lynx = 2.8.5-18
[tY+P7j9) --------------------------------------------------------------------------------
Yvbk[Rb [5O` ps=+wg?] 列出这个包所倚赖的任何包:
6h_OxO&!U \QKr2| -R,--requires选项的作用是列出这个包所依赖的任何包。
kx_PMpc i1JWdHt 示例:
|nTZ/MXbw dgsD~.((A [root@localhost ~]# rpm -qR lynx
X* Dt<i};v /bin/sh
J~URv)g config(lynx) = 2.8.5-18
KQ\d$fX indexhtml
TDnbX_xC< libc.so.6
P 2^((c libc.so.6(GLIBC_2.0)
.ugQH<B libc.so.6(GLIBC_2.1)
Yt%
E,U~g libc.so.6(GLIBC_2.2)
ZUxlk+o9d libc.so.6(GLIBC_2.3)
4hh=z>$|l) libcrypto.so.4
O)i]K`jk libncursesw.so.5
</B5^} libssl.so.4
Jb4A!g5C libz.so.1
UZq1qn@+ rpmlib(CompressedFileNames) <= 3.0.4-1
jQ[M4)>_k` rpmlib(PayloadFilesHavePrefix) <= 4.0-1
+HxL>\ --------------------------------------------------------------------------------
OlI {VszR eg
vgi?y Ul?92 列出包中的配置文件
%B{NH~ &?@5G -c,--configfiles选项的作用是列出包中的配置文件
wBK%=7 uRu)iBd D 示例:
;\gsd'i CWk65tcF [root@localhost ~]# rpm -qc lynx
b+`mh /etc/lynx-site.cfg
>4lT0~V/ /etc/lynx.cfg
_Z|3qQ /etc/lynx.cfg.cs
|+0XO?,sZ /etc/lynx.cfg.ja
F&I ;E i /etc/lynx.cfg.sk
.0zNt --------------------------------------------------------------------------------
"p{cz( _hb@O2f ;uazQyo6 显示有关于包的改变信息的日志:
t% f6P i`2X[kc --changllog选项的作用是显示有关于包的改变信息的日志。
l[J'FR: z
nc' 示例:
T)NnWEB "RF<i3{S 此为部分显示结果
j7M[]/| [root@localhost ~]# rpm -q --changelog lynx
*1[v08?! * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
`/z6Q" - Removed perl dependencies (bug #127423).
<_tkd3t#W * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
7~V,=WEe - rebuilt
dq{wFI) * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
rHWlv\+Nn - No longer need lynx-284-ipv6-salen.patch.
pwvcH3l/r - No longer need lynx2-8-2-telnet.patch.
'~ {x n * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
<
<vE . - rebuilt
01nbR+e * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
"7k
82dw - Updated to dev16, fixing bug #110196.
-b4#/q+bb+ - No longer need crlf patch.
LJ|2=lI+jb - Use shipped ja translations.
#*<*|AwoW| - Use %find_lang.
$rh {f< - Default config file now sets UTF-8 (bug #110986).
$`emP
Hel --------------------------------------------------------------------------------
}(r%'(.6 DPD%8a)? 07_ym\N 包选择选项
6DFF:wrm& .kO;9z\B package_name
TFWx(}1 查询已安装包的package_name。
p(F}[bP lo*)%fy -a,--all
1px8af] 查询所有已安装拨。
s=+,F<;x.U /@<Pn&Rq -f file,--file file
z3 lZ3 找出什么包拥有文件file。
L]goHs Qw ukhD7 -g group,--group group
\V#2K>< 找出什么包拥有组group。
|nN{XjNfP5 rR4_=S<Mi: -p package_file
y0d a8sd) 查询未安装包package_file
E2s
lpo ]mN'Qoc --querybynumber num
DJ)z~W2I* 查询第num个数据库条目。主要用于调试。
RN1q/H| Bw31h3yB -qf,--queryformat num
rSUarfZ< 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
GN4'LU G 1rsd --specfile specfile
N;9m&)@JR' 查询specfile,就好象它是个包
) /kf ' {L5 3cH= --triggeredby pkg
S`Jo^!VJ4 列出触发安装pkg包的包。
:)UF# S0\;FmLIc --whatrequires capability
7|IOn5 列出要求特定能力来行使职责的包。
E*ug.nxy K 9ytot --whatprovides capability
'E{n1[b 列出提供特定能力的包。
@?$x --------------------------------------------------------------------------------
Dk!;s8}*c +mQMzZZTZ 9y(75Bn9 信息选择选项:
R&cOhUj22J WB2An7i@"{ -c,--configfiles
IcM99'P( 列出包中的配置文件。
ad "yo=%1 )Jx +R;Z --changelog
)T1U!n?^x 显示有关于包的改变信息的日志。
-kh O4, QkXnXu -d,--docfiles
9Ij=~p]p 列出包中的文档文件。
W=fw*ro .5ap9li] --dump
U[EM<5@I 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
TBN0u k 以下列顺序输出信息:
hjVct
r path size mtime md5sum mode owner group isconfig isdoc rdev symlink
x=g=e
<_ RKu'WD?sdH --filebypkg
2sj[hI 列出每个包中的所有文件。
I%]~]a Q ke8BRBn -i
}pJ6CW 显示包的信息,包括名字,版本和描述。
3BuG_ild )[d?&GK -l,--list
gOpi> 列出包中所有文件
v+.
n9 /;7\HZ$@/ --last
mRe BS 根据安装时间列出包,最新的包排第一位。
x;&01@m. UEZnd8 --provides
p5 |.E 列出这个包所提供的实际能力。
+FD"8 ^YC (yjx+K_[ -R,--requires
&b[.bf 列出这个包所依赖的任何包。
]Ek6EuaK <j}n/G] -s,--state
_i_^s0J 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
dzIcX*" _MF:?p,l --scripts
3*< O-Jr 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
aDrF"j .+|HJ( --------------------------------------------------------------------------------
W(h].'N <L4.* YP*EDb?f 卸载
C`s ;B4x> uninstall命令的语法为:
ldd|"[Ds ]ZV.@%+ rpm -e package_name
: GVyY]qBU rpm --erase package_name
0E*q-$P a$0,T_wD 示例:
Gwyjie 9t [D!-~]5 [root@localhost ~]# rpm -e lynx
KIyhvY~ [root@localhost ~]# rpm -q lynx
Gk<M@d^hQ package lynx is not installed
h^yLmRL --------------------------------------------------------------------------------
=Q\z*.5j. Rra3)i`* %49P<vo`? 卸载选项为:
i2. +E&3v %gK@R3p --allmatches
!GB\-( 删除包的所有版本。应该只指定一个包,否则会导致错误。
>
-P UY 0rM'VgB --nodeps
;WydXQ}Q^ 在卸载包之前不检查依赖性。
eIZ7uSl ^HJvT)e4 --noscripts
p:*)rE 不执行任何预卸载和后卸载脚本。
v:2*<; v5 |XyN" --notriggers
F#0y0| 不执行任何由这个包的删除而出发的脚本。
m2%OX"# e ]!@z3Hv3 --test
rG#o*oA 不真正卸载任何包,仅仅查看活动过程。