Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
FYb34LY l
akp 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
#Ei,(xiP 6oinidB[l 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
WEa2E?* F$Ca;cP" 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
c{>uqPTY --------------------------------------------------------------------------------
=?])['VaA "c(Sysl.L < AI;6/ 以下简要介绍RPM包的安装,删除和查询
[k[u*5hP|F X53mzs RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
F(
Ak 'JZJFE7Z rpm命令的格式为:
O1D6^3w h6%[q x< rpm [options] [packages]
?sBh=Ds B/J>9||g 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
N7%TYs v!42DA) 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
rVtw-[p --------------------------------------------------------------------------------
@ct+7v~ - ZW3 .c^
ggy% RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
Uw/l>\ vBvNu<v7te 以下为rpm --showrc命令显示的节选:
Olfn g7CXlT0Q6 示例:
W%e_~$H0 ?\/qeGW6G 此为部分显示结果
1^dJg8 [root@localhost ~]# rpm --showrc
joXfmHB} ARCHITECTURE AND OS:
16X@^j_ build arch : i386
8ZcU[8r compatible build archs: athlon i686 i586 i486 i386 noarch
J9%@VZut build os : Linux
<&pKc6+{ compatible build os's : linux
GIftrYr install arch : athlon
*U=]@I}J install os : Linux
C#i UP|7hh compatible archs : athlon i686 i586 i486 i386 noarch
H^~.mBP
n compatible os's : linux
4KI [D{ RPMRC VALUES:
sM\lO 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
dQgk.k optflags : %{__global_cflags} -m32 -march=athlon
m,> Features supported by rpmlib:
p<`+sf}A: rpmlib(VersionedDependencies) = 3.0.3-1
s$DrR
PreReq:, Provides:, and Obsoletes: dependencies support versions.
L{ho*^b rpmlib(CompressedFileNames) = 3.0.4-1
?$z.K>S5 file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
2X88: rpmlib(PayloadIsBzip2) = 3.0.5-1
V (rr"K+ package payload can be compressed using bzip2.
g,]@4| --------------------------------------------------------------------------------
"PH6e bm 6QZ5|T ] q
(+ZwaV@ rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
s?3i)Ymr !umEyd@ " 示例:
G{x[uE2X&f [9mL $;M
W [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
;`v% sx# Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
}:z5t,u6 Preparing... ########################################### [100%]
h:/1X'
3d 1:lynx ########################################### [100%]
cPn+<M# --------------------------------------------------------------------------------
,>LRa la$%H<,7 Rt(J/%; 以下列出一些通用选项(可以用于所有模式):
*Q}[ ]g Zt@Z=r:& --dbpath path
Gzt=u"FV 用path作为RPM数据库的路径。
f+Dn9t w7-WUvxl --ftpport prot
=y%rG :! 用port作为FTP端口。
DB`QsiC) jU=<r --ftpproxy host
ohc1 ~?3b 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
Bmo$5$ VjbG(nB?_ --help
:Gh~fm3} 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
ad n|N NvtM3 --justdb
Wv K(G3 只更新数据库;不改变任何文件。
{.k)2{ 7;LO2<|1 --pipe command
$T }Tz7( 用管道把rpm输出到commond。
-NM0LTF }Ia 0"J4 --quiet
H5nS%D 仅显示错误信息。
!0 Q8iW: xi'<y --rcfile filename
8NimZ( 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
lQ*eH10H 7w58L:)B. --root dir
Jm(ixekp 在dir目录内执行所有操作。
=qoRS0Qa 2H[)1|]l --version
^uaFg`S 输出rpm版本号。
0,FC
YTtj$ Y?Vz(udD
-vv
o;`!kIQ 输出调试信息。
}fIqH4bp ;vO@m!h}U --------------------------------------------------------------------------------
/N^~U&7 'pP-rdx w@]jpH;WX 安装升级和刷新
mVm4fHEYwU 'I/h(
安装或升级一个RPM包,install命令的语法为:
hSqMaX%G VRS 2cc rpm -i [install-options] package_file
's@MQ!
* rpm --install [install-options] package_file
+T_ p8W+j o;J;*~g 示例:
#i@h{R01 %!.M~5mCd [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
+lp{#1q0 package lynx-2.8.5-18 is already installed
~v:#zU [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
ValS8V*N1 --------------------------------------------------------------------------------
pbB2wt &v#`t~ :d'65KMi 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
[}""@? dc^Vc{26Z rpm -U [install-options] package_file
}.%s
xw rpm --upgrade [install-options] package_file
9NIy# & 5
<** 示例:
B.-A $/ 2mJ:c 先安装旧版
mf 4z?G@6 [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
`
%' z o+)A'S 再安装新版
/)1v9<vM" [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
kl{6]39 (zah890// 显示出新版本信息
(5Ky6b9v [root@localhost ~]# rpm -q lynx
r7XD&Y lynx-2.8.5-18
INLf# N
\ sf! 说明:
=g0*MZ;" -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
Oje|bxQ G.VYp6)5 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
I]sqi#h$2W --------------------------------------------------------------------------------
&X w`T9< %F$N#YG MTB@CP!u 刷新的语法是:
ATO
5 nGZ\<- rpm -F [install-options] package_file
Ff/Ig]Lb x*mc - &N rpm --freshen [install-options] package_file
}|He?[TR T0L+z/N_m. 示例:
A#:8X1w
8xo;E=` 从未安装过lynx包,使用-F选项,将无法升级。
$,`VUe{ YeIe\3x!N [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
]N\6h(**wy [root@localhost ~]# rpm -q lynx
Qg>L,ZO package lynx is not installed
cHn;}l!I --------------------------------------------------------------------------------
Rrz'(KSDw U+!UL5k wG:$6 安装和更新选项为:
UT-ewXh F^TAd --allfiles
^?Vq L\V5 安装或更新所有文件。
DB Xm M7U:g} --badreloc
-RCv7U` 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
K50t%yu#T] =|#w.(3y --excludedocs
p5qx=p~c 不安装任何文档文件。
[0{wA9g fB[\("+ --excludepath path
1HXlHic 不安装文件名以path开始的任何文件。
:xN8R^( ;Bnr='[ --force
x?>!UqgkY 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
Rf8:+d[Jj| o~}1oN -h,--hash
Uk"Y/Ddm 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
(l;C%O7* 4 f3=`[% --ignorearch
!SN WB 即使二进制包用于不同的体系结果也进行安装。
|<QI%Y$dr wV
%8v\ --ignoreos
t_Z _!Qy 即使操作系统不匹配也安装二进制包。
>~>{;Wq(p+ dWIZ37w+D --ignoresize
Ku&*`dME 安装前不检查磁盘的可用空间。
{SHqW5VX
$Gd5wmb! --includedocs
iZu:uMoc 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
o>$|SU!a 8q{1E];:q --nodeps
-Cml0}.O 不检查这个包是否依赖于其他包的存在。
V[To,f H&u4v2
--noorder
I4CHfs"ar 安装之前,不为了满足依赖关系而对包进行重新排序。
afV
P-m4L &Ky3Jb<:Gt --noscripts
u,!4vKx 不执行任何预安装或后安装脚本。
be_C>v CElPU`J,\[ --notriggers
/W? z0tk` 不执行任何由包安装触发的脚本。
3P3:F2S R `L+~&M --oldpackage
bA0uGLc 允许升级以用旧包替换新包。
xan/ay> Yo@m50s$ --percent
]zy~@,\ 当文件被解压时输出完成百分比的信息。
oFwG+W/ widI
s[
) --prefix path
)fy<P;g 把可重定位包的安装前缀设置为path。
~t$mw, &l?N:(r --replacefiles
hq]xmM?& 即使包替换了来自其他安装包的文件,也安装这些包。
A/hpYa S]5VEn;pV --replacepkgs
nh?9R& 即使某些包已经被安装,也安装他们。
L F8Pb;I .O;!W<Ef$ --test
X!2.IsIS8 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
QId"Cl)3 p9k4w%
~: --------------------------------------------------------------------------------
e2qpJ4i .<0=a|IAz d"LoK,p# 查询
Vx}Yl&*D DXt]b, query命令的语法为:
LAizx^F [}jj<!9A_; rpm -q[information-options] [package-options]
@'@s*9Nr rpm --query[information-options] [package-options]
2Ti" s - 3"f)*w7d 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
<!$dp9y. --------------------------------------------------------------------------------
'MSEki67 A8#.1uEgNb /0Rt +` 以下简单示演示一下包查询:
(QA-"9v#i, .jLMl*6%: 简单查询:
>a?OXqYP D$Kz9GVZq 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
Wk0>1 rlu xYT#!K1* 示例:
&e/@yu)x, AB/,S [root@localhost ~]# rpm -q lynx
o(?VX`2" lynx-2.8.5-18
782[yLyv --------------------------------------------------------------------------------
`4$4bXrP' HKq2Js MT;SRAmUr 信息查询:
6#OL
;Y]_ bnAT,v{ rpm -qi packagename命令可以得到安装包的汇总信息。
YJ&lB&xH <Gb nPG? 示例:
W?SP .-I [root@localhost ~]# rpm -qi lynx
HGU?bJ~6o Name : lynx Relocations: (not relocatable)
iMP*]K-O Version : 2.8.5 Vendor: Red Hat, Inc.
Usa{J: Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
E.?E~}z Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
\f8P`oET~ Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
Ib_n'$5#z Size : 4837340 License: GPL
#a|6Q 8 Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
~E^yM=:h Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> j CTQsV URL :
http://lynx.isc.org/ ^4y(pcD Summary : 一个基于文本的网页浏览器。
V%X:1 8j Description :
'd|Q4RE+W Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
[0mFy)6 图像,但是它支持框架、表格、以及多数其它 HTML
i6meY$l 标签。Lynx 优于图形化浏览器的地方是它的速度――
N#<zEAB Links 能够快速启动、退出、及显示网页。
2N8rM}?90 标识拥有者
g:G%Ei~sF --------------------------------------------------------------------------------
"N?%mCPI vjOG?- %igFHh? 找出什么包拥有文件file:
lM@<_=2 aF;]7i@ 示例:
&CB.*\0 TnbGO; [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
f:x9Y{Y lynx-2.8.5-18
<3i4NXnL2 --------------------------------------------------------------------------------
I_"Hgx< -13P 2<i+ WHpUjyBP 列表包中的文件:
iBGSBSeL& 3p?<iVE 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
fPh}l F20wf1^ 示例:
vF*^xhh Dz"u8 f 此为部分显示结果
? 6yF{!F* [root@localhost ~]# rpm -ql lynx
PV,kYM6 /etc/lynx-site.cfg
yV 9]_k /etc/lynx.cfg
;~'cITL /etc/lynx.cfg.cs
7G<KrKal /etc/lynx.cfg.ja
pmow[e /etc/lynx.cfg.sk
+
d+ hvwEM /usr/bin/lynx
Mp^OL7p^^ /usr/share/doc/lynx-2.8.5
#{)r*"% /usr/share/doc/lynx-2.8.5/INSTALLATION
pJ2:` f<; /usr/share/doc/lynx-2.8.5/README
Z1)jRE2dl /usr/share/doc/lynx-2.8.5/docs
v&[X&Hu[ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
F#!@}K8 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
=|qt!gY)Y /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
RTPq8S" /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
!]{1h
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
uFm(R/V /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
QoT3;<r} /usr/share/doc/lynx-2.8.5/docs/CMU.announce
~RZJ/%6F /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
8xD<A| /usr/share/doc/lynx-2.8.5/docs/FM.announce
4."o.:8x /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
uI[-P}bSc& /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
}rj C_q /usr/share/doc/lynx-2.8.5/docs/README.TRST
#x4h_K
Y /usr/share/doc/lynx-2.8.5/docs/README.chartrans
@dWS*@ /P?|4D}< --------------------------------------------------------------------------------
oPBg+Bh* yKe*<\ &(H)gjH 列出包所提供的实际能力:
%ojR?=ON -$L],q_S^ --provides选项的作用是列出这个包所提供的实际能力。
|%2/I>o =,>TpE 示例:
'Ec:l(2Ec @~!-a
s7 [root@localhost ~]# rpm -q --provides lynx
6`s%%v config(lynx) = 2.8.5-18
-A-hxK*^ webclient
</+%R"` lynx = 2.8.5-18
!%Hl#Pv} --------------------------------------------------------------------------------
(A] m= k+7M|t.?4 R$T[%AGZ. 列出这个包所倚赖的任何包:
&k_wqV PcNfTB{ -R,--requires选项的作用是列出这个包所依赖的任何包。
[d^: [U3D`V$xD 示例:
-hU>1ux&V {l *&l2 [root@localhost ~]# rpm -qR lynx
?sjZ13 SUa /bin/sh
]9KQP-p' config(lynx) = 2.8.5-18
cAKoPU>U indexhtml
v0hfY libc.so.6
}`<>$2b libc.so.6(GLIBC_2.0)
>XXMIz: libc.so.6(GLIBC_2.1)
qj3bt_F!x libc.so.6(GLIBC_2.2)
O yH!V&w libc.so.6(GLIBC_2.3)
@F3-Ugm libcrypto.so.4
8[`^(O#\E libncursesw.so.5
+/~\b/ libssl.so.4
|peMr# libz.so.1
z[|PsC3i: rpmlib(CompressedFileNames) <= 3.0.4-1
aaf_3UH.B rpmlib(PayloadFilesHavePrefix) <= 4.0-1
$cJN9|$6 --------------------------------------------------------------------------------
;Xd\$)n ^pQo `T6 yf#%)-7( 列出包中的配置文件
M::IE|h bE`*Uw4 -c,--configfiles选项的作用是列出包中的配置文件
XoxR5arj CtC`:!Q 示例:
?`l=!>C4s PgG |7=' [root@localhost ~]# rpm -qc lynx
[b
k&Nd[
/etc/lynx-site.cfg
^ ]6
80h /etc/lynx.cfg
~&[P`
Z$ /etc/lynx.cfg.cs
}N#>q.M /etc/lynx.cfg.ja
_iboTcUF /etc/lynx.cfg.sk
LA=>g/+i.X --------------------------------------------------------------------------------
|IcxegE $R$c1C'oX WKrZTPD'm 显示有关于包的改变信息的日志:
X%9xuc wD?=u\% & --changllog选项的作用是显示有关于包的改变信息的日志。
|jaY[_.@ n;k97>m${x 示例:
9+is?Pj [P&,}o)+E0 此为部分显示结果
~4 ~Tcn [root@localhost ~]# rpm -q --changelog lynx
\'LC C- * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
4 _U,-%/ - Removed perl dependencies (bug #127423).
I_6` Z 0 * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
E_'n4@}Cx - rebuilt
3@cJ= * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
5KH'|z - No longer need lynx-284-ipv6-salen.patch.
4h_4jqf=pU - No longer need lynx2-8-2-telnet.patch.
!NAX6m * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
7f\^VG - rebuilt
zloaU * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
SJ[@fUxO) - Updated to dev16, fixing bug #110196.
:56lzsWUE< - No longer need crlf patch.
w[A3;]la - Use shipped ja translations.
#c)Ou!Ldb - Use %find_lang.
j3[OY - Default config file now sets UTF-8 (bug #110986).
@`y?\fWh --------------------------------------------------------------------------------
9;v"bcQ V+a%,sI *r?51*J 包选择选项
+ $a:X ,^IZ[D>u) package_name
HlL@{< 查询已安装包的package_name。
2-E71-J {O&liU4 -a,--all
dYqDL<se/I 查询所有已安装拨。
hL{B9? vK.4JOlRF -f file,--file file
[aS)<^ 找出什么包拥有文件file。
U)/Ul>dY ~Yz/t -g group,--group group
NdSxWrD`m 找出什么包拥有组group。
'5,,XhP {kRC!} -p package_file
j_WF38o 查询未安装包package_file
qM:)daS1w mV(x&`Cx --querybynumber num
j5Wx*~@( 查询第num个数据库条目。主要用于调试。
YlcF-a v3JIUdU=P -qf,--queryformat num
+@)$l+kk9 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
cKYvRe L{0OMyUA --specfile specfile
z3jzpmz 查询specfile,就好象它是个包
6-X?uaY)os hYZ:" x --triggeredby pkg
Dw ;vDK 列出触发安装pkg包的包。
oplA'Jgnv 4p.{G%h --whatrequires capability
zT-"kK 列出要求特定能力来行使职责的包。
Okg8Ve2 Y6Qb_X: --whatprovides capability
VUv.Tx]Z[ 列出提供特定能力的包。
K9M.+d4 --------------------------------------------------------------------------------
rnhf(K.{3 75}u
D ?{z${ bD 信息选择选项:
;Kq?*H *4^]?Y\* -c,--configfiles
[<fLPa 列出包中的配置文件。
8'xnhV ,0~
{nQ j] --changelog
wG?kcfu 显示有关于包的改变信息的日志。
geN%rD j p]geV54 -d,--docfiles
3cFLU^ 列出包中的文档文件。
5)v^
cR?& IIn\{*|mW --dump
x15tQb+ 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
r~2@#gTbl 以下列顺序输出信息:
ZznWs+ path size mtime md5sum mode owner group isconfig isdoc rdev symlink
7%}3Ghc% DJ[#H --filebypkg
f EiEfu 列出每个包中的所有文件。
+;iesULXn :(p
rx
-i
<({eOh5N 显示包的信息,包括名字,版本和描述。
.F3LA6se %1 ^jd\ -l,--list
m.a1 列出包中所有文件
5a_!& * !Y3N<>! --last
d lLk4a+ 根据安装时间列出包,最新的包排第一位。
!X <n:J kpw4Mq@ --provides
<T/L.>p4 列出这个包所提供的实际能力。
Kcdd=2 [T S^VV^O5 ^ -R,--requires
a[cH@7W.# 列出这个包所依赖的任何包。
: 8<^rP X/7_mU>aKT -s,--state
3M*[a~ 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
wP1VQUL [f(^vlK --scripts
~wg^>!E 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
Q4:r$
& QGj5\{E_ --------------------------------------------------------------------------------
gq1Y]t|4F 1WN93SQ= L Hz<=]?@ 卸载
W}_}<rlF {-`OE uninstall命令的语法为:
/)4r2 x )tch>.EQ_ rpm -e package_name
0i`Zy! rpm --erase package_name
^JDV4>S\ SW'KYzn 示例:
BmF>IQ`M? 1O7ss_E [root@localhost ~]# rpm -e lynx
2^M+s\p [root@localhost ~]# rpm -q lynx
^ED>{UiNI package lynx is not installed
Df3v"iCq} --------------------------------------------------------------------------------
F X2`p_ h#ot)m|I E+Mdl* 卸载选项为:
b}*bgx@< m8^2k2 --allmatches
H=RV M 删除包的所有版本。应该只指定一个包,否则会导致错误。
&D w~Jq| ]~Qk g+>'& --nodeps
6lAo`S\)eX 在卸载包之前不检查依赖性。
)9Ojvp=#r: :uDB3jN[ --noscripts
<Pt\)"JA 不执行任何预卸载和后卸载脚本。
s9bP6N!, )II,HT-LY --notriggers
*)D*iU& 不执行任何由这个包的删除而出发的脚本。
R_&z2I 8|Y^Jn\p5u --test
W3rvKqdw5 不真正卸载任何包,仅仅查看活动过程。