Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
W*2SlS7 ~Q0}>m,S 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
hkY E7 P!/8 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
iGIaZ!j aW s.U p<Rw 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
(46)v'? --------------------------------------------------------------------------------
]cD!~nJ (~~=<0S +q;^8d> 以下简要介绍RPM包的安装,删除和查询
_1a2Z\ jB;+tDC!Co RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
Hs9uDGWp Z,z^[Jz rpm命令的格式为:
N78Ev7PN z'm;H{xf rpm [options] [packages]
oUqNA|l
T '#fj) 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
RK,~mXA 3f3?%9 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
o7 kGZ --------------------------------------------------------------------------------
t9kgACo/M JGtdbD?Fw c~V\,lcI RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
^%nAx| 4xQ >\e11OU0Gy 以下为rpm --showrc命令显示的节选:
hE; >,[(icyzn 示例:
8WvT0q>] gP}M\3-O 此为部分显示结果
p(v.sP4w [root@localhost ~]# rpm --showrc
qnOAIP:0 ARCHITECTURE AND OS:
|Qm 7x[i build arch : i386
\ZC7vM"h compatible build archs: athlon i686 i586 i486 i386 noarch
`
p)#! build os : Linux
0P|WoCX compatible build os's : linux
9]Y@eRI< install arch : athlon
"Kqe4$ install os : Linux
gw H6r3=y( compatible archs : athlon i686 i586 i486 i386 noarch
DV.m({? compatible os's : linux
`18G
5R RPMRC VALUES:
qZ4DO*%b3 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
3h4>edM optflags : %{__global_cflags} -m32 -march=athlon
xHf
l>C' Features supported by rpmlib:
BM3nZ<%3 rpmlib(VersionedDependencies) = 3.0.3-1
6,!]x>B PreReq:, Provides:, and Obsoletes: dependencies support versions.
nF)|oA rpmlib(CompressedFileNames) = 3.0.4-1
hE>Mo$Q( file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
J<'4(}^| rpmlib(PayloadIsBzip2) = 3.0.5-1
7y:J@fh< package payload can be compressed using bzip2.
k}/0B --------------------------------------------------------------------------------
!4|7U\; Gv<K#@9T lO:[^l?F rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
5RqkAC `S%pD.g,2 示例:
R#oXQaBJ +YP,LDJ!v [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
gzeG5p Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
8}4V$b`Z Preparing... ########################################### [100%]
'l2`05 1:lynx ########################################### [100%]
B&"fPi --------------------------------------------------------------------------------
MwiT1sB~ ^"l4 2nk}'HBe 以下列出一些通用选项(可以用于所有模式):
}y'KS:Jb h" j{B --dbpath path
>*EcX 3 用path作为RPM数据库的路径。
]GRPxh 8$S$*[-a --ftpport prot
9[/Gd{`XC 用port作为FTP端口。
XBCz\f Y*J,9 --ftpproxy host
Y8(g8RN 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
[@Y?'={qE $kg!XT{V --help
&vo]l~. 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
^[!LU .Q4EmpByCg --justdb
flnoK%wi 只更新数据库;不改变任何文件。
UfXqcyY( YaDr6) --pipe command
`G,\=c~{A 用管道把rpm输出到commond。
q8`JRmt)H &?v^xAr?B --quiet
Jk 0;<2j 仅显示错误信息。
%\2
ll=p1 slXk < --rcfile filename
/(5SJ(a 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
V\Cu|m&HI ]&jXD=a" --root dir
xbSix:R=Z 在dir目录内执行所有操作。
vaW,O/F Yc&yv --version
['Hl$2 j 输出rpm版本号。
8 W79 \IQf| -vv
?v\A&d 输出调试信息。
ML9ZS
@ q]DV49UK --------------------------------------------------------------------------------
jA?A)YNQb o+r?N5 [2"a~o\ 安装升级和刷新
eF823cH2x_ Usx8
U 安装或升级一个RPM包,install命令的语法为:
kl,I.2- n<+g{QHi rpm -i [install-options] package_file
|@`F!bnLr rpm --install [install-options] package_file
tURjIt,I ycz6-kEp 示例:
dDK4I3a G>&Ta p> [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
ry)g<OA package lynx-2.8.5-18 is already installed
&mXJL3iN [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
>slD.rb] --------------------------------------------------------------------------------
%
P
.(L I|8'#QX 7Ko<,Kp2b 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
E!nEB(FD Aru=f~! rpm -U [install-options] package_file
'Z5l'Ac rpm --upgrade [install-options] package_file
,<Zu4bww lQ(I/[qVd 示例:
n,/eT,48` zW.I7Z0^ 先安装旧版
z=%&?V [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
q$RJ3{Sf E}6q;"[ 再安装新版
G%5bQ|O [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
}% 2hBl/ IC"lsNq52 显示出新版本信息
cBcfGNTJ~ [root@localhost ~]# rpm -q lynx
$]LhE:!G lynx-2.8.5-18
{;mT.[
ja !K2^ 说明:
E/+H~YzO -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
fz>3 d?[gd(O 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
st4z+$L --------------------------------------------------------------------------------
$mgamWNE8w (B+CI%=
D D/U=zDpiB 刷新的语法是:
3T1t !q4/5 OeMI rpm -F [install-options] package_file
}SD*@w ''D\E6c\ rpm --freshen [install-options] package_file
[7Fx#o=da fhwJ 示例:
=#=<%HPT /6fa
7; 从未安装过lynx包,使用-F选项,将无法升级。
t .\<Q#bN# #Sg< 9xsW [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
j(xVbUa [root@localhost ~]# rpm -q lynx
<[l0zE5Z8' package lynx is not installed
W0-KFo.' --------------------------------------------------------------------------------
uy'I#^Bt bv:M
zYS b?^CnMO 安装和更新选项为:
wqnrN6$jf s2f6;Yc --allfiles
-tPia=^ 安装或更新所有文件。
/E %^s3S. Z:(Zy --badreloc
Sgp1p} 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
{)`tN&\ q9
SV<qg --excludedocs
QH5[}zs8 不安装任何文档文件。
0 k(su
#r,LV}*qg --excludepath path
qrr[QEFW 不安装文件名以path开始的任何文件。
N+N98~Y`P c3__=$)'kP --force
[`n)2}
k 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
w;p~|! ~bD'QMk -h,--hash
(O!Q[WLS 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
af- Cs2F/M' --ignorearch
3;%dn\
D 即使二进制包用于不同的体系结果也进行安装。
7Zw.mM!i S_ER^Pkg --ignoreos
4\Q
pS 即使操作系统不匹配也安装二进制包。
7[I%UP #d* )W3e2{ --ignoresize
B:]%Iu| 安装前不检查磁盘的可用空间。
nj4G8/U-q !;, Dlq-} --includedocs
y#iQ 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
&_dM2lj{ MhL>6rn --nodeps
f&2f8@ 不检查这个包是否依赖于其他包的存在。
pd\x^F`sk. V`& O` --noorder
0`Hr(J`F 安装之前,不为了满足依赖关系而对包进行重新排序。
mmvo
>F" U][\|8i --noscripts
p0sq{d~ 不执行任何预安装或后安装脚本。
Oe)B.{;Ph _%gu<Ys --notriggers
+i@{h9"6g 不执行任何由包安装触发的脚本。
|kc#=b@l J ?^R1 --oldpackage
i$gH{wn\` 允许升级以用旧包替换新包。
Q:^.Qs"IK jnIf(a --percent
$2/v8 当文件被解压时输出完成百分比的信息。
kNk$[Yfs 0^9%E61YR --prefix path
^_ST#fFS 把可重定位包的安装前缀设置为path。
sLze/D_M* fP8iz `n --replacefiles
SUN!8
qFA 即使包替换了来自其他安装包的文件,也安装这些包。
{?RVw`g&f 60z8U#upM --replacepkgs
z)F<{]% 即使某些包已经被安装,也安装他们。
+rFAo00E| 11YpC;[o --test
B1i&HoGbz 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
L0X/ 9/#?]LJ --------------------------------------------------------------------------------
1"wZ [. `M[o.t ;ZoEqMv 查询
+x]3 -s .D{He9 query命令的语法为:
o2rL&
1n!xsesSc rpm -q[information-options] [package-options]
i`^[_ rpm --query[information-options] [package-options]
2Y~nU(
2bu > j1h 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
ybU_x --------------------------------------------------------------------------------
tA8O(9OV "[dfb#0z` {RC&Ub> 以下简单示演示一下包查询:
*CCh\+S7m ZxB7H{ 简单查询:
b?K`DUju{0 ]Ns)fr6 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
xi[\2g+ #Q1}h 示例:
p(!d,YSE z\`tnz7>$ [root@localhost ~]# rpm -q lynx
fj97_Q= lynx-2.8.5-18
2EiE5@ --------------------------------------------------------------------------------
+Ze;BKZ3 "\+.S]~ k`w/ 信息查询:
|B
{*so] 2ElZ&(RZJF rpm -qi packagename命令可以得到安装包的汇总信息。
g#:P cl L+8{%\UPd 示例:
)&j@ ={0 [root@localhost ~]# rpm -qi lynx
^[6el_mj Name : lynx Relocations: (not relocatable)
&%`WXe-`R Version : 2.8.5 Vendor: Red Hat, Inc.
&B\ sG= Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
R PdFLC/ Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
>hY.F/[ Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
&y&HxV Size : 4837340 License: GPL
s:3b. *t< Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
SuXeUiK.[ Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> "hk {"0E URL :
http://lynx.isc.org/ _2TL>1KZt Summary : 一个基于文本的网页浏览器。
!/e*v>3u& Description :
p\R&vof* Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
x\oSD1t, 图像,但是它支持框架、表格、以及多数其它 HTML
us E%eF] 标签。Lynx 优于图形化浏览器的地方是它的速度――
Iz[ohn!f Links 能够快速启动、退出、及显示网页。
wYr*('uT 标识拥有者
^YJ%^P --------------------------------------------------------------------------------
\ CX6~ 2 w6iqLr? X'U~g$"(+ 找出什么包拥有文件file:
z'7XGO'Lo _+.JTk 示例:
1m5*MY [+_>g4M~% [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
N=\weuED lynx-2.8.5-18
yfal'DqKF --------------------------------------------------------------------------------
wr5v-_7r, t3h ){jZ #qFY`fVf1 列表包中的文件:
ia(`3r >7PNl\=gG 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
B$n 1k45 zez|l 示例:
e^'|<0J 3I(;c ,S 此为部分显示结果
p{}4#+-<#H [root@localhost ~]# rpm -ql lynx
lF_"{dS_6( /etc/lynx-site.cfg
&36SX<vZ /etc/lynx.cfg
B%tWi /etc/lynx.cfg.cs
2WTOu x* /etc/lynx.cfg.ja
;s;3cC! /etc/lynx.cfg.sk
<#RVA{ /usr/bin/lynx
x
FWhr#5, /usr/share/doc/lynx-2.8.5
S8Y\@C?5 /usr/share/doc/lynx-2.8.5/INSTALLATION
uovv">Uw /usr/share/doc/lynx-2.8.5/README
%pxO<O /usr/share/doc/lynx-2.8.5/docs
u88wSe<\X /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
*AYq:n6 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
b+|3nc! /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
i")0 3b /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
![sXR /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
dI&Q5M8 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
&!OEd] /usr/share/doc/lynx-2.8.5/docs/CMU.announce
uKd4+Km /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
JhfVm*, /usr/share/doc/lynx-2.8.5/docs/FM.announce
iaCV8`&q% /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
#c5jCy}n /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
Xl$,f`f~ /usr/share/doc/lynx-2.8.5/docs/README.TRST
4(|yl^w /usr/share/doc/lynx-2.8.5/docs/README.chartrans
OQ7 `n<I<) pF4Z4?W --------------------------------------------------------------------------------
7/
?QZN 7jgj;% t*=[RS* 列出包所提供的实际能力:
UXs)$ ;4[[T%&v --provides选项的作用是列出这个包所提供的实际能力。
KWZhCS?[( PO`p.("h 示例:
=o~GLbsER #3QPcoxa [root@localhost ~]# rpm -q --provides lynx
MDU#V config(lynx) = 2.8.5-18
w y|^=#k webclient
2S{P(B lynx = 2.8.5-18
N,c!1:b --------------------------------------------------------------------------------
1|(Q| %'yrIR d=PX}o^ 列出这个包所倚赖的任何包:
EUi 70h+ /{\ /e"5 -R,--requires选项的作用是列出这个包所依赖的任何包。
U}RBgPX! r<ucHRO# 示例:
x}yl Rg`[ Gv_~@MN [root@localhost ~]# rpm -qR lynx
kFv*>>X` /bin/sh
#*'Qm
A config(lynx) = 2.8.5-18
|QDoi[
* indexhtml
6
Rl[M+Q libc.so.6
n^Ca?|}
, libc.so.6(GLIBC_2.0)
@ph!3<(In, libc.so.6(GLIBC_2.1)
]>t~Bcnm libc.so.6(GLIBC_2.2)
j#1G?MF libc.so.6(GLIBC_2.3)
UqOBr2UmG libcrypto.so.4
U!aM63F3 libncursesw.so.5
vR!+ 8sy$ libssl.so.4
@-'a{hBR libz.so.1
R}ki%i5| rpmlib(CompressedFileNames) <= 3.0.4-1
; :P4~R rpmlib(PayloadFilesHavePrefix) <= 4.0-1
jYHn J}< --------------------------------------------------------------------------------
C\EIaLN< "' JnFM j
uA@"SG 列出包中的配置文件
>A$L&8'C j_~KD} -c,--configfiles选项的作用是列出包中的配置文件
X0G,tl Q":_\inF 示例:
UK
':%LeL m,k0 h% [root@localhost ~]# rpm -qc lynx
?woL17Gt /etc/lynx-site.cfg
E#$Jg|e /etc/lynx.cfg
rH3U;K! /etc/lynx.cfg.cs
!l (Vk /etc/lynx.cfg.ja
x+X@&S /etc/lynx.cfg.sk
o,*m,Qc --------------------------------------------------------------------------------
A2|Bbqd ~}.C*;J .z>/A/&+ 显示有关于包的改变信息的日志:
\@gV$+{9 v$y\X3)mB --changllog选项的作用是显示有关于包的改变信息的日志。
uY]';OtG Jt_=aMY:7 示例:
$*C
}iJsF h4hAzFQ.s 此为部分显示结果
3:,%>#" [root@localhost ~]# rpm -q --changelog lynx
_Xf1FzF+a * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
o?baiOkH - Removed perl dependencies (bug #127423).
/5,6{R9 * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
+(+lbCW/ - rebuilt
Z",0 $Gxu * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
+^AdD8U - No longer need lynx-284-ipv6-salen.patch.
LIDi0jbrq - No longer need lynx2-8-2-telnet.patch.
3f`Uoh+ * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
T9yI%;D - rebuilt
b] 5dBZ( * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
G8repY - Updated to dev16, fixing bug #110196.
x1@,k=qrd - No longer need crlf patch.
fbApE - Use shipped ja translations.
[G_ ;78 - Use %find_lang.
OLG)D#m(4/ - Default config file now sets UTF-8 (bug #110986).
zJX Z0yRT --------------------------------------------------------------------------------
+3))G B&MDn']fV/ Xe4 包选择选项
!zK"y[V @1j*\gYz package_name
) 8xbc&M 查询已安装包的package_name。
z(A60b} Jq^[^ -a,--all
=ls+vH40& 查询所有已安装拨。
"smU5 s,P 3ML^ dZ' -f file,--file file
^@x&n)nzP 找出什么包拥有文件file。
*$cx7yJ IR"C? -g group,--group group
TFHYB9vV 找出什么包拥有组group。
DlzL(p@r zW`Hqt; -p package_file
OI Fjc0 查询未安装包package_file
3ko
h!q+ I!!cA?W --querybynumber num
|g hyH 查询第num个数据库条目。主要用于调试。
I?1BGaAA fx>QP?Z -qf,--queryformat num
?*
+>T@MH 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
Q)E3)), zn/>t-Bc --specfile specfile
MHp:".1 查询specfile,就好象它是个包
bRggt6$z g\B ?
|% --triggeredby pkg
9y[U\[H 列出触发安装pkg包的包。
0OlT^ y ~-v0/ --whatrequires capability
id,' + < 列出要求特定能力来行使职责的包。
UOj*Gt& 07=I&Pum --whatprovides capability
NVQ.;" 2w 列出提供特定能力的包。
]*MVC/R, --------------------------------------------------------------------------------
Mp
js ES^JRX "C3J[) qC 信息选择选项:
{ZdF6~+H(! 2WLLI8 -c,--configfiles
`
,SNq i 列出包中的配置文件。
Cj }H'k<B 'pUJREb --changelog
!Mgo~h"]# 显示有关于包的改变信息的日志。
"3 ++S b{&'r~ -d,--docfiles
$v_&jE 列出包中的文档文件。
VcsMDa s;l"'6:_ --dump
0)zJG | 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
.*n*eeD, 以下列顺序输出信息:
{2Ew^Li path size mtime md5sum mode owner group isconfig isdoc rdev symlink
g9;s3qXiG T#6g5Jnsp --filebypkg
0t(c84o5 列出每个包中的所有文件。
1=T;6 8B 86cnEj= -i
K}
T=j+ 显示包的信息,包括名字,版本和描述。
!?).4yr g'w"U9tjO -l,--list
rtbV*@Z 列出包中所有文件
gH,Pz k{S8q?Gc --last
[n&ES\o#( 根据安装时间列出包,最新的包排第一位。
=_j<x$,b- ai?N!RX%H --provides
KJS-{ed 列出这个包所提供的实际能力。
y<m[9FC} EbX!;z -R,--requires
?F!c"+C 列出这个包所依赖的任何包。
&tf(vU;,'
JC9$"0d7 -s,--state
j+3rS 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
K0B<9Wi| f[R~oc5P0 --scripts
Dm}M8`|X 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
<s\ZqL$f f9<" --------------------------------------------------------------------------------
NOkgG0Z &%@O V:C Ndb7>"W 卸载
D:IG;Rsc Olh{<~Fv uninstall命令的语法为:
<Uj9~yVN] Ya!%o> J%t rpm -e package_name
x H=15JY1W rpm --erase package_name
>KdV]!H ZvT>A#R;l~ 示例:
u3,O)[qV |#SZdXg [root@localhost ~]# rpm -e lynx
wYV>Qd
Z [root@localhost ~]# rpm -q lynx
wsH _pF package lynx is not installed
^Mc9MZ) --------------------------------------------------------------------------------
6@8z3JW.A Gky^S# :-Py0{s 卸载选项为:
S ++~w9} ]{\M,txo8 --allmatches
-}h^'# 删除包的所有版本。应该只指定一个包,否则会导致错误。
{i8zM6eC )$df6sq --nodeps
v3XM-+Z4 在卸载包之前不检查依赖性。
mb1c9 -<5{wQE;| --noscripts
K5XW&|tY! 不执行任何预卸载和后卸载脚本。
fG$LqzyqlK %-.;sO=g --notriggers
fxr#T'i 不执行任何由这个包的删除而出发的脚本。
VHl1f7%@H E0&d*BI2 --test
xY!ud) 不真正卸载任何包,仅仅查看活动过程。