Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
R+:yVi[F]U Ufj`euY 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
m,28u3@r ;]puq 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
_RYxD"my ;LfXi 8) 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
%Qgw7p4 --------------------------------------------------------------------------------
hW')Sp P;y45b RU{twL.B 以下简要介绍RPM包的安装,删除和查询
yF:1( 4 0JS?; fk RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
bRDYGuC e
,'_xV rpm命令的格式为:
OKZV{Gja 234p9A@ rpm [options] [packages]
GMx&y2. Z ;>hO+Wo 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
`RT>}_j iXkF1r]i 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
qbr$>xH --------------------------------------------------------------------------------
^6x%*/l| ]EbM9Fo-U ^0)g/`H^> RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
G't$Qx,IC GKqm&/M*= 以下为rpm --showrc命令显示的节选:
;O5zUl-` Ty\R=y}} 示例:
;C#F>SG\S , pfG 此为部分显示结果
%Xg4b6<9 [root@localhost ~]# rpm --showrc
P:S .~Jq ARCHITECTURE AND OS:
\w>y`\6mX build arch : i386
hFUlNJ compatible build archs: athlon i686 i586 i486 i386 noarch
5~U/ build os : Linux
2W(s(-hD compatible build os's : linux
I|!OY`ko install arch : athlon
8%mu8l install os : Linux
MKCsv+ compatible archs : athlon i686 i586 i486 i386 noarch
P5V}#;v compatible os's : linux
\7eUw,~Q> RPMRC VALUES:
K3&qq[8.e 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
c):/!Q optflags : %{__global_cflags} -m32 -march=athlon
539>WyG5 Features supported by rpmlib:
Es`Px_k rpmlib(VersionedDependencies) = 3.0.3-1
s)t@ol PreReq:, Provides:, and Obsoletes: dependencies support versions.
~Cttzn]pR rpmlib(CompressedFileNames) = 3.0.4-1
(x|T+c"bAX file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
G>=*yqo
rpmlib(PayloadIsBzip2) = 3.0.5-1
octL"t8w package payload can be compressed using bzip2.
2s8a
$3 --------------------------------------------------------------------------------
bj^5yX;2 Wi<m{.%\E @{e}4s?7od rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
]q[D>6_ =Bey gT^ 示例:
Jr4Ky<G_i uZYF(Yu [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
@bLy,Xr& Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
t3ZOco@~P Preparing... ########################################### [100%]
XJB)rP 1:lynx ########################################### [100%]
gg/-k;@ Rf --------------------------------------------------------------------------------
iVr J Q ^CH=O|8j 2'Uu:Y^ 以下列出一些通用选项(可以用于所有模式):
J{<X7uB Hio0HL- --dbpath path
S+6.ZZ9c 用path作为RPM数据库的路径。
z6P$pqyF *a^(vo --ftpport prot
B mb0cFQ 用port作为FTP端口。
"{xrL4BtC m7V/zne --ftpproxy host
~=LE0. 3[ 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
W
i.&e ) q4[zv9 --help
B-Hrex] 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
#%2rP'He ;;t yoh~t --justdb
nFCC St$ 只更新数据库;不改变任何文件。
BOX2O.Pm G.B2(' --pipe command
}>|s=uGW 用管道把rpm输出到commond。
/maJtX' 2tO,dx --quiet
Rp7mh]kZ 仅显示错误信息。
DCa^
u'f 9=tIz --rcfile filename
Gz0]}]A 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
3=[mP,pLh `}\
"Aw c --root dir
8Fh)eha9f 在dir目录内执行所有操作。
U/M>?G~ >Tx?%nQ --version
TX/Xt7#R: 输出rpm版本号。
|e&\<LwsP 'Is kWgc -vv
y^*~B(T{ 输出调试信息。
T!{w~'=F .{^5X)
--------------------------------------------------------------------------------
9*wK@yEl f~[7t:WD* t@;p 安装升级和刷新
wlvgg @HC Vmg: 安装或升级一个RPM包,install命令的语法为:
ajT*/L!0_ .P]+? %& rpm -i [install-options] package_file
@mBQ?;qlK rpm --install [install-options] package_file
Y=KT eYW` UkC!1Jy 示例:
-2[a2^a' vr l-$ii [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
X?',n
1 package lynx-2.8.5-18 is already installed
}.(B}/$u [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
Fm 2AEs\ --------------------------------------------------------------------------------
+sA2WK] |df Pki{ 5qm`J,~k 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
:Yl-w-oe =nS3p6>rZ rpm -U [install-options] package_file
;'K5J9k rpm --upgrade [install-options] package_file
w&#]-|$ &z3o7rif$ 示例:
@. l@\4m T -2t.Xs 先安装旧版
aXYY:; [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
6gE7e|+ Vb_4f" 再安装新版
,4$>,@WW~ [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
P@B] x9g#<2w8 显示出新版本信息
p6@)-2^ [root@localhost ~]# rpm -q lynx
O/Crd/ lynx-2.8.5-18
t:Q*gWRh A/s?x>QA 说明:
%$L{R -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
f}e`XA? +6\Zj) 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
<'*LRd$1 --------------------------------------------------------------------------------
]ieeP4* ;^*W+,4WB AkV#J,
3LC 刷新的语法是:
eMsd37J CTa57R rpm -F [install-options] package_file
x;d6vBTUb 6{b>p+U rpm --freshen [install-options] package_file
IJ"q~r$ D@.6>:;il 示例:
0e4{{zQx eauF~md, 从未安装过lynx包,使用-F选项,将无法升级。
0h_|t-9j T8g$uFo [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
/x$ nje,. [root@localhost ~]# rpm -q lynx
=H8;iS2R package lynx is not installed
6&x@.1('z --------------------------------------------------------------------------------
7:1Lol-V c@7rqHU-0 p5iuYHKk? 安装和更新选项为:
&QgR*,5eo Rm( "=( --allfiles
} Kgy
安装或更新所有文件。
/8S>;5hvK@ T~e.PP --badreloc
|{ip T SH 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
#6= rILYI;'o --excludedocs
lf,5w 不安装任何文档文件。
ms]sD3z/W+ [W&T(%(W- --excludepath path
4r}51 N\ 不安装文件名以path开始的任何文件。
hgq;`_;1, W<g1<z\f --force
fJg+ Ryo 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
xJe%f\UDu PW0LG^xp` -h,--hash
oEv'dQ9 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
|6-nbj 2>%=U~5 --ignorearch
HRA|q 即使二进制包用于不同的体系结果也进行安装。
x%B%f`]8 GbI/4<)l} --ignoreos
a7opCmL 即使操作系统不匹配也安装二进制包。
{l@{FUv >(<f 0 --ignoresize
$&c*'3 安装前不检查磁盘的可用空间。
*.[.
{qG( 'w aaw_>b --includedocs
\FaP|28h 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
@0''k jP.dDYc --nodeps
{JLtE{ 不检查这个包是否依赖于其他包的存在。
^\m![T\bX TWTb?HP --noorder
?@x/E& 安装之前,不为了满足依赖关系而对包进行重新排序。
:A;RH i%?* @uj --noscripts
YmG("z 不执行任何预安装或后安装脚本。
@6.vKCSE ]SEZaT --notriggers
sI2^Qp@O1 不执行任何由包安装触发的脚本。
Ewz!O` QT}tvm@PMq --oldpackage
<P<z N~i9j 允许升级以用旧包替换新包。
QJ;2ZN, c+ie8Q! --percent
ueNS='+m 当文件被解压时输出完成百分比的信息。
*un^u-; pxi3PY? --prefix path
#'}*dy/ 把可重定位包的安装前缀设置为path。
:`sUt1Fw. h68 xet; --replacefiles
&p,]w~d,U 即使包替换了来自其他安装包的文件,也安装这些包。
]?4hyN (9)Q ' 'S --replacepkgs
Q!3_$<5<E> 即使某些包已经被安装,也安装他们。
uY*L,j^) 3so%gvY.' --test
l]SX@zTb 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
='jT~\ zbiL P83 --------------------------------------------------------------------------------
DmcZta8n] /bmN\I a+QpM*n7Lq 查询
!,PWb3S Gc7=
query命令的语法为:
'3;b@g, q^nVN# rpm -q[information-options] [package-options]
W,u:gzmhw rpm --query[information-options] [package-options]
[Rb+q=z# j8gdlIx 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
zuCSj~ --------------------------------------------------------------------------------
,!9zrYi} :!QAC@
L/[K" 以下简单示演示一下包查询:
2g<Xtt7+o jEwIn1 简单查询:
cwL_tq 2mU.7!g) 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
xSu > F0#
'WfM# 示例:
,,r>,Xq6 7:@'B| [root@localhost ~]# rpm -q lynx
AXB7oV,xt lynx-2.8.5-18
Ys7]B9/1O --------------------------------------------------------------------------------
'GScszz q(w(Sd)#L X>^fEQq" 信息查询:
"N#Y gSr 8Fub<UhJ rpm -qi packagename命令可以得到安装包的汇总信息。
Dv6}bx( Y:`&=wjP~ 示例:
wC*X4 ' [root@localhost ~]# rpm -qi lynx
i/.6>4tE: Name : lynx Relocations: (not relocatable)
UF|p';oom Version : 2.8.5 Vendor: Red Hat, Inc.
gGuO Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
05R@7[GWq Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
HOi`$vX}N Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
y`Z\N
Size : 4837340 License: GPL
Wn6Sn{8W{ Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
1;iUWU1@ Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> TqQ[_RKg2 URL :
http://lynx.isc.org/ *WZA9G#V5 Summary : 一个基于文本的网页浏览器。
4ppz,L,4 Description :
JGZBL{8 Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
I =#$8l.* 图像,但是它支持框架、表格、以及多数其它 HTML
8EYkQ 标签。Lynx 优于图形化浏览器的地方是它的速度――
~6gPS
13 Links 能够快速启动、退出、及显示网页。
@F>D+=hS 标识拥有者
[>9is=>o. --------------------------------------------------------------------------------
gDzK{6Z} u&e~1?R YkADk9fE 找出什么包拥有文件file:
A}w/OA97RO ?A0)L27UE& 示例:
sos5Y} >GuM]qn [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
dWW.Y*339 lynx-2.8.5-18
$Kd>:f=A --------------------------------------------------------------------------------
|[lKY+26:{ AFn7uW!9Gw HKe K<V 列表包中的文件:
BLFdHB.$T =|9!vzG4 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
^^Vg~){4 d_CT$ 示例:
VaPG-n>Vf eH,or ,r 此为部分显示结果
A(X KyEx [root@localhost ~]# rpm -ql lynx
j1Ezf=N6` /etc/lynx-site.cfg
4z)]@:`}z /etc/lynx.cfg
?4uL-z](V /etc/lynx.cfg.cs
)gi9f1n` /etc/lynx.cfg.ja
d5 -qZ{W /etc/lynx.cfg.sk
r<\u6jF /usr/bin/lynx
}2oc#0 /usr/share/doc/lynx-2.8.5
0`H#
'/ /usr/share/doc/lynx-2.8.5/INSTALLATION
M\=2uKG# /usr/share/doc/lynx-2.8.5/README
1*7@BP5 /usr/share/doc/lynx-2.8.5/docs
kcEeFG;DQ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
('~LMu_ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
`_h&glMJ,q /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
R#KU^]"( /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
ULW~90 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
:KO2| v\ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
Va8&Z /usr/share/doc/lynx-2.8.5/docs/CMU.announce
z%kULTL /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
!9x} /usr/share/doc/lynx-2.8.5/docs/FM.announce
h];I{crh /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
cCX*D_kCB /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
(sj,[
/usr/share/doc/lynx-2.8.5/docs/README.TRST
s^SJY{ /usr/share/doc/lynx-2.8.5/docs/README.chartrans
]^]wP]R_ kVL.PY\K --------------------------------------------------------------------------------
u:EiwRW `X8F`5&U\f V.Mry`9- 列出包所提供的实际能力:
TC"<g $xQL]FmS --provides选项的作用是列出这个包所提供的实际能力。
adw2x pj .(vwIb8\_ 示例:
.V*^|UXbHi EK'!}OGCG [root@localhost ~]# rpm -q --provides lynx
Pc9H0\+Xk config(lynx) = 2.8.5-18
v0y(58Rz. webclient
0IpmRH/ lynx = 2.8.5-18
ite~E5?# --------------------------------------------------------------------------------
;d?R:Uw8 F[0]/ Js;h% 列出这个包所倚赖的任何包:
hOeRd#AQK pJ{Y
lS{ -R,--requires选项的作用是列出这个包所依赖的任何包。
~XIb\m9H ,0k;!YK 示例:
f!"w5qC^ E_`=7i [root@localhost ~]# rpm -qR lynx
@XVTU /bin/sh
E.f%H(b config(lynx) = 2.8.5-18
Ep}s}Stlr} indexhtml
uw7zWJ
n libc.so.6
tVjsRnb{ libc.so.6(GLIBC_2.0)
M(fTKs libc.so.6(GLIBC_2.1)
s @C}P libc.so.6(GLIBC_2.2)
=Sv/IXX\di libc.so.6(GLIBC_2.3)
y}H!c; libcrypto.so.4
\Cj B1]I libncursesw.so.5
7d vnupLh libssl.so.4
Uz7<PLxd libz.so.1
)X!,3Ca{43 rpmlib(CompressedFileNames) <= 3.0.4-1
O@P"MXEG rpmlib(PayloadFilesHavePrefix) <= 4.0-1
j#6.Gq --------------------------------------------------------------------------------
9VT;ep q:(%*sY> h$*!8=M 列出包中的配置文件
Ls%MGs9PI w(rE`IgW -c,--configfiles选项的作用是列出包中的配置文件
_Y!IEAU/# 8-i#8'/x 示例:
n| ;Im&, 6wxs1G [root@localhost ~]# rpm -qc lynx
f5r0\7y0 /etc/lynx-site.cfg
@.C2LIb /etc/lynx.cfg
% `3jL7| /etc/lynx.cfg.cs
xfQ1T)F3g /etc/lynx.cfg.ja
[vgtc.V /etc/lynx.cfg.sk
wj+*E6o-n --------------------------------------------------------------------------------
$^P0F9~0 ZW}_DT0 l,8##7 显示有关于包的改变信息的日志:
MPV5P^@X nR~(0G,H --changllog选项的作用是显示有关于包的改变信息的日志。
nK,w]{<wG! hQi2U 示例:
KSvE~h[#+ PeT'^?> 此为部分显示结果
6 r"<jh # [root@localhost ~]# rpm -q --changelog lynx
rKn~qVls * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
:>*7=q= - Removed perl dependencies (bug #127423).
r,udO,Yi=c * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
J *yg& - rebuilt
Ib`XT0k * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
/\Ef%@ - No longer need lynx-284-ipv6-salen.patch.
9UkBwS` - No longer need lynx2-8-2-telnet.patch.
E3i4=!Y * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
6-I'>\U~ - rebuilt
!?XC1xe~R * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
+H.`MZ= - Updated to dev16, fixing bug #110196.
T|p"0b A - No longer need crlf patch.
yZRzIb_ - Use shipped ja translations.
N$DkX)Z - Use %find_lang.
VnzZTGs - Default config file now sets UTF-8 (bug #110986).
d@^ZSy>L2 --------------------------------------------------------------------------------
u"8yK5! Q@niNDaW2 zTp"AuNHN 包选择选项
w@pPcZ>z/ =WLY 6)]A package_name
SIllU 查询已安装包的package_name。
yr6V3],Tp "zc l|@ -a,--all
R=dC4; 查询所有已安装拨。
O=lzT~G|4 ?(PKeq6 -f file,--file file
nu^436MSOa 找出什么包拥有文件file。
]yu:i-SfP a}d@
T -g group,--group group
d1*<Ll9K 找出什么包拥有组group。
ebq4g387X 4W])}C % -p package_file
>7FHo-H/T 查询未安装包package_file
N;d] 14| u y+pP!< --querybynumber num
/{[o~:'p 查询第num个数据库条目。主要用于调试。
mR~&)QBP. : +u]S2u{ -qf,--queryformat num
%)|s1B'd 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
@co
S+t G)YcJv7 --specfile specfile
*_e3 @g 查询specfile,就好象它是个包
N;R^h? ' q| 7( --triggeredby pkg
==B6qX8T 列出触发安装pkg包的包。
,I9bNO,%JK BWNi [^] --whatrequires capability
>eaaaq9B- 列出要求特定能力来行使职责的包。
so;
]& G5!^*jf --whatprovides capability
\^LFkp 列出提供特定能力的包。
<$YlH@;)`a --------------------------------------------------------------------------------
vIvIfE Y@v>FlqI{ YQ}o?Q$z 信息选择选项:
. me;.,$# /xQTxh1;K -c,--configfiles
NRuNKl.v 列出包中的配置文件。
TrNF=x> LP-o8c --changelog
=AT."$r>
显示有关于包的改变信息的日志。
ni<(K
0~ %xW"!WbJ| -d,--docfiles
YR70BOxK 列出包中的文档文件。
>_TZ'FT Om<a<q --dump
rA1._
转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
h;Qk@F 以下列顺序输出信息:
sT.ss$HY9, path size mtime md5sum mode owner group isconfig isdoc rdev symlink
TvM~y\s 2eogY# --filebypkg
[Pp'Ye~K@c 列出每个包中的所有文件。
k+/6$pI
y7{?Ip4[ -i
IBGrt^$M 显示包的信息,包括名字,版本和描述。
"MsIjSu l] vm=7: -l,--list
_aphkeqd 列出包中所有文件
xk5]^yDp jdN`mosJ --last
YUb_y^B^ 根据安装时间列出包,最新的包排第一位。
T|$H#n} *a)n62 --provides
mv><HqDL1 列出这个包所提供的实际能力。
TC('H[
] #mT"gs -R,--requires
`^vE9nW7 列出这个包所依赖的任何包。
km(Po} Wqnc{oq|$ -s,--state
Sz~OX6L 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
PnTu +q4O D$} --scripts
[^)g%|W 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
OI*H,Z" wkq 66? --------------------------------------------------------------------------------
.}t
e>]A* 9$t(&z= GdwVtqbX 卸载
e.C)jv6qr x2EUr,7 uninstall命令的语法为:
F
[M,]? K9[UB rpm -e package_name
"Q0@/bYq rpm --erase package_name
' QG?nu 7pd$\$ 示例:
txpgO1 K'bP@y_cq [root@localhost ~]# rpm -e lynx
Z;i:]( [root@localhost ~]# rpm -q lynx
Dv"9qk package lynx is not installed
sK{e*[I>W --------------------------------------------------------------------------------
dM5-; ,}PgOJZ a#4?cEy 卸载选项为:
bOB\--:] _#niyW+?~ --allmatches
do%&m]#; 删除包的所有版本。应该只指定一个包,否则会导致错误。
eRYK3W \RiP
--nodeps
_-D{-Bu# 在卸载包之前不检查依赖性。
uZ5p#M_ +z( Lr=G --noscripts
eDMO]5}Ht 不执行任何预卸载和后卸载脚本。
]lbuy7xj63 M{@(G5 --notriggers
=(Mch~
不执行任何由这个包的删除而出发的脚本。
-~0^P,yQ uT{q9=w --test
uD'6mk* 不真正卸载任何包,仅仅查看活动过程。