Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
.;Z.F7{q ((9YG 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
Kw*~W
i b A+[{ 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
V85.DK! yM17H\ = 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
>Fh#DmQ --------------------------------------------------------------------------------
S-P{/;c@ .nPL2zO 65"uD7; 以下简要介绍RPM包的安装,删除和查询
R\ q):, {e6KJ@H6 RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
%#4 +! 0%;MVMH rpm命令的格式为:
GWh|FEqUbf 9TW8o}k` rpm [options] [packages]
yjv&4pIc1 $P_x v 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
~bFdJj 1* K Dz]wNf 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
%%x0w^ --------------------------------------------------------------------------------
r4S=I i"fCpkAP ;r=?BbND? RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
f~v"zT >DS}#'N4l 以下为rpm --showrc命令显示的节选:
a'^0.1 |P~q/Wff 示例:
777rE[\@b _M&{^d 此为部分显示结果
2b~
HHVruX [root@localhost ~]# rpm --showrc
L,%Z9 ARCHITECTURE AND OS:
.hgH9$\ build arch : i386
U[Nosh)hu\ compatible build archs: athlon i686 i586 i486 i386 noarch
@dl<- build os : Linux
mQnL<0_<f compatible build os's : linux
PuU*vs3 install arch : athlon
Ir>2sTrm install os : Linux
z^9E; compatible archs : athlon i686 i586 i486 i386 noarch
\@:j compatible os's : linux
U~hCn+0 RPMRC VALUES:
pNSst_!> 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
t@r#b67WJe optflags : %{__global_cflags} -m32 -march=athlon
;6zPiaDQ Features supported by rpmlib:
?AT(S rpmlib(VersionedDependencies) = 3.0.3-1
8LeKwb PreReq:, Provides:, and Obsoletes: dependencies support versions.
y*
rY~U#3 rpmlib(CompressedFileNames) = 3.0.4-1
h/{8bC@bi file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
Bf+^O)Ns^ rpmlib(PayloadIsBzip2) = 3.0.5-1
<YSg~T package payload can be compressed using bzip2.
,.q8Xf --------------------------------------------------------------------------------
[Q=4P*G}X M.t@@wq z2ds8-z rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
pbFYiu+ 2\,e 示例:
CY5w$E oM2|]ew) [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
*n;>p_# Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
` )]lUvR Preparing... ########################################### [100%]
tz3]le|ml 1:lynx ########################################### [100%]
m.Twgin --------------------------------------------------------------------------------
%L28$c3p 4"z;CGE7 r
/^'Xj'( 以下列出一些通用选项(可以用于所有模式):
`{%-*f^ h2AGEg'g2[ --dbpath path
2>ys2:z 用path作为RPM数据库的路径。
RpU Lm1b 5W|u5AIw --ftpport prot
t+jIHo 用port作为FTP端口。
hO%Y{Gg OoE9W --ftpproxy host
<TL])@da 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
T 4vogoy cu:-MpE --help
1"M"h_4 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
y>%W;r) ]|t9B/()i --justdb
/^~p~HKtx 只更新数据库;不改变任何文件。
x}_rnf_ .:T9pplq --pipe command
( e0_RQ 用管道把rpm输出到commond。
jm4)gmC sK#H4y+< --quiet
iY}QgB< M 仅显示错误信息。
|^>u<E5 IC\E,m --rcfile filename
oy`3r5g 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
{a[Uv ?{?Vy9'B --root dir
" S ?Km 在dir目录内执行所有操作。
>J9IRAm}sc JXlTN[O --version
gZ1N&/9; 输出rpm版本号。
%bEGv:88s i_|h{JK) -vv
;B*L1'FF%t 输出调试信息。
7xz#D4[ |}:e+?{o --------------------------------------------------------------------------------
LH bZjZ2 8rla0d@ FYxUOO 安装升级和刷新
b8eDD+ul k m=#aHF 安装或升级一个RPM包,install命令的语法为:
?`za-+<r< ZDW,7b%U rpm -i [install-options] package_file
#W_i{bdO rpm --install [install-options] package_file
SnH:(tO[X 5%EaX?0h+ 示例:
=;kRk.qzy >3<&V{<K [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
Dr4?Ow package lynx-2.8.5-18 is already installed
[^h/(a` [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
oZ?IR#^ --------------------------------------------------------------------------------
qxRT1B]{Wx 3S;>ki4(0 muW`pm 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
E=$7ieW 8[vl3C rpm -U [install-options] package_file
I:r($m rpm --upgrade [install-options] package_file
Bidqf7v 6(\q< fx 示例:
@ARAX\F "K9vm^xP 先安装旧版
UDhwnGTq(l [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
W ]a7&S FRb&@(; 再安装新版
;JMOsn}8 [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
/%2:+w ?,.HA@T% 显示出新版本信息
\Mobq [root@localhost ~]# rpm -q lynx
---Ks0\V lynx-2.8.5-18
BnY\FQ)K V5hp
Y ] 说明:
95_[r$C -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
N:m@D][/sW <|mE9u 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
9{auleu
R --------------------------------------------------------------------------------
B iVd
ka =e"H1^Ml AT2NC6{M 刷新的语法是:
8 /:X&
& J"m%q\' rpm -F [install-options] package_file
{s9y@c*15. ]L5Z=.z& rpm --freshen [install-options] package_file
AJJ%gxqGq g?k#wj1uH 示例:
yt]Oj*nn0K Fm-q=3 从未安装过lynx包,使用-F选项,将无法升级。
&!3VqHQ` `kaR@t [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
V\e13cL] [root@localhost ~]# rpm -q lynx
`?Y_0Nh> package lynx is not installed
d;@E~~o?B] --------------------------------------------------------------------------------
H24ate?t, @g@fL % f(w#LuW< 安装和更新选项为:
Rx@%cuP* f(@"[-[ --allfiles
EhmUX@k], 安装或更新所有文件。
s!nSE
F$"MFdc[ --badreloc
'<*CD_2t- 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
.:#_5K C[Y%=\6'0 --excludedocs
\4]zNV ~x 不安装任何文档文件。
&r5&6p
/)eNx --excludepath path
WF3DGqs_] 不安装文件名以path开始的任何文件。
SNopAACf1
ve6N --force
wfU&{7yt 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
4{Yy05PFS Y ;~~?[6 -h,--hash
P!>{>r4 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
I8pv:>EhC .f?qUg --ignorearch
L*SSv
wSL 即使二进制包用于不同的体系结果也进行安装。
vUodp#s O9Jx%tolF% --ignoreos
YokZar2a0 即使操作系统不匹配也安装二进制包。
_k"&EW{ Ii qCxD{-9x{ --ignoresize
% RBI\tj 安装前不检查磁盘的可用空间。
O=!)})YG c"QkE* --includedocs
Bp=oTCG 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
xqi*N13 /I`bh --nodeps
'Z(MV& 不检查这个包是否依赖于其他包的存在。
Npf7 p %Mb(
c+7 --noorder
T?p`Y| gl 安装之前,不为了满足依赖关系而对包进行重新排序。
e!2%k u $jUS[.S_|I --noscripts
b0zxT9 不执行任何预安装或后安装脚本。
U||w6:W5 Zh fD`@>& --notriggers
6Mf3)o2 不执行任何由包安装触发的脚本。
fa*H cz ,:dEEL+>c --oldpackage
a2klOX{ 允许升级以用旧包替换新包。
qk+{S[2j HqnKpZ --percent
F`ZIc7(.{ 当文件被解压时输出完成百分比的信息。
]L%R[Z!3 '%]@a7w --prefix path
C&CsI] @g 把可重定位包的安装前缀设置为path。
+{=_|3( \+evZ{Pu --replacefiles
y}:)cA~o(y 即使包替换了来自其他安装包的文件,也安装这些包。
j~,LoGuPh EZwdx --replacepkgs
Kt!IyIa;Ht 即使某些包已经被安装,也安装他们。
#.<F5
5M\=+5wB --test
l:5CM[mZ 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
9Sj:nn^/u Uf2v$Jl+Yh --------------------------------------------------------------------------------
Kn!0S<ssR 6E\\`FE4y _c(C;s3o 查询
BJ.8OU*9]S h<^:Nn query命令的语法为:
U<,Kw6K rO?x/{;ai rpm -q[information-options] [package-options]
$bi_i|? rpm --query[information-options] [package-options]
+GPT:\*q6 ,;=( )- 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
<@AsCiQF --------------------------------------------------------------------------------
;~gd<KK cf[u%{
6Y $ DZQdhv 以下简单示演示一下包查询:
v<J;S9u= 1uS>{M 简单查询:
vX0I^8. eE riv@v 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
cLyuCaH>c ]htZ!; 8J 示例:
Vw;ldEdx V.gY1
[root@localhost ~]# rpm -q lynx
@;n$ caw lynx-2.8.5-18
VgZaDd; --------------------------------------------------------------------------------
ID)gq_k[8, Uh|__DUkh r)#"$Sm 信息查询:
w[$nO#
b\0Q: rpm -qi packagename命令可以得到安装包的汇总信息。
va/4q+1GfH MkNURy>n& 示例:
6 XOu~+7 [root@localhost ~]# rpm -qi lynx
9M7(_E;)B Name : lynx Relocations: (not relocatable)
t{S{!SF4 Version : 2.8.5 Vendor: Red Hat, Inc.
548[!p4 Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
3P^gP32 Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
)x:j5{>( Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
tj^:SW.0 Size : 4837340 License: GPL
]-5jgz" Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
2eR+dT Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> sQw`U{JG URL :
http://lynx.isc.org/ G>ptwB81KM Summary : 一个基于文本的网页浏览器。
e9_O/i N Description :
C8W`Oly:] Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
AIxBZt7{b 图像,但是它支持框架、表格、以及多数其它 HTML
gUszMhHX 标签。Lynx 优于图形化浏览器的地方是它的速度――
BQ}.+T\ Links 能够快速启动、退出、及显示网页。
>wS:3$Q 标识拥有者
$H:h(ia: --------------------------------------------------------------------------------
Qdr-GODx -z 5k4Y LI|HET_ 找出什么包拥有文件file:
FPUR0myCU U1HD~ 示例:
C94UF7al hHl-;%# [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
ExP25T lynx-2.8.5-18
j]l}K*8( --------------------------------------------------------------------------------
x^O2Lj,w\ hYUV9k: ~B*\k^t` 列表包中的文件:
>eTgP._ oJJk 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
]vkHU6d .f<VmUca 示例:
fYQi#0drn +$QL0|RL 此为部分显示结果
ryp$|?ckJ [root@localhost ~]# rpm -ql lynx
Ce'2lo /etc/lynx-site.cfg
2l(j
4~g /etc/lynx.cfg
AW&s-b%P /etc/lynx.cfg.cs
l
75{JxZX /etc/lynx.cfg.ja
O-lh\9{'R /etc/lynx.cfg.sk
07"Oj9NlA /usr/bin/lynx
W]}V<S$ /usr/share/doc/lynx-2.8.5
|Sv #f2` /usr/share/doc/lynx-2.8.5/INSTALLATION
:+^$?[6] /usr/share/doc/lynx-2.8.5/README
`L*;58MA /usr/share/doc/lynx-2.8.5/docs
!@Vp Bl /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
>Wit"p /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
ZFuJ2 : /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
@$yYljP /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
cTaD{!zm5 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
6`";)T[ G9 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
f uNXY-; /usr/share/doc/lynx-2.8.5/docs/CMU.announce
34^Cfh /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
O#5( U.E /usr/share/doc/lynx-2.8.5/docs/FM.announce
cASHgm /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
<IDzv' /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
0:+uw`
% /usr/share/doc/lynx-2.8.5/docs/README.TRST
HWfX>Vf>}k /usr/share/doc/lynx-2.8.5/docs/README.chartrans
=egi?Ne k\<Ln
w --------------------------------------------------------------------------------
@OY-(cW 0\ w[_H 10 H! 列出包所提供的实际能力:
k Q(y^t W _%TeTNY# --provides选项的作用是列出这个包所提供的实际能力。
EEZ2Gu6c )9 jQ_ 示例:
/ lM~K: 6Oba}`)q9 [root@localhost ~]# rpm -q --provides lynx
8 (h config(lynx) = 2.8.5-18
^QQNJ webclient
sK/" lynx = 2.8.5-18
O Lup`~ --------------------------------------------------------------------------------
G( \1{"! }~'Wz*Gm "}+/0$F 列出这个包所倚赖的任何包:
;L%~c4`l~m vGHYB1=~ -R,--requires选项的作用是列出这个包所依赖的任何包。
T>%ny\?tHW JsEEAM:w 示例:
b e%*0lr W8h\ s { [root@localhost ~]# rpm -qR lynx
SfL`JNi) /bin/sh
6MNA.{Jdd config(lynx) = 2.8.5-18
l4reG:uYG indexhtml
xi. KD libc.so.6
V(uRKu
x libc.so.6(GLIBC_2.0)
-?1J+}? libc.so.6(GLIBC_2.1)
5@%-=87S libc.so.6(GLIBC_2.2)
y+afUJT libc.so.6(GLIBC_2.3)
/(pChY> libcrypto.so.4
Ht^2)~e~: libncursesw.so.5
M #&L@fg! libssl.so.4
c!^}!32j) libz.so.1
\o)4m[oF rpmlib(CompressedFileNames) <= 3.0.4-1
<1.mm_pw rpmlib(PayloadFilesHavePrefix) <= 4.0-1
-%)
!XB
--------------------------------------------------------------------------------
;O|63 dKTAc":-} a`iAA1HJ 列出包中的配置文件
W(4?#lA2W " z'!il# -c,--configfiles选项的作用是列出包中的配置文件
BQ0\+ R>&/n/l 示例:
M
F: Eu 0w. _}Cz [root@localhost ~]# rpm -qc lynx
{~I_rlo n /etc/lynx-site.cfg
"1Aus /etc/lynx.cfg
4yv31QG$ /etc/lynx.cfg.cs
RcP5].^T /etc/lynx.cfg.ja
iZ\z!tH R /etc/lynx.cfg.sk
-JK4-Hg --------------------------------------------------------------------------------
S]=Vr%irX NYvj?>[y bI(98V,t 显示有关于包的改变信息的日志:
H5 hUY'O Z@/5~p --changllog选项的作用是显示有关于包的改变信息的日志。
!r0P\ zRFM/IYC 示例:
&:K? -ac V<pjR@ 此为部分显示结果
pPpnO [root@localhost ~]# rpm -q --changelog lynx
Lta\AN!c * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
ye2Oh7 - Removed perl dependencies (bug #127423).
)1
j2 * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
M6#(F7hB - rebuilt
[`\Qte%UH * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
'FFc"lqj - No longer need lynx-284-ipv6-salen.patch.
:K:gyVrC - No longer need lynx2-8-2-telnet.patch.
.Kwl8xRg * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
(C@@e'e - rebuilt
htym4\Z= * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
rapca' - Updated to dev16, fixing bug #110196.
s9Z2EjQV - No longer need crlf patch.
rNyK*Wjt - Use shipped ja translations.
K.m[S[cy - Use %find_lang.
U~t(YT - Default config file now sets UTF-8 (bug #110986).
cpnwx1q@ --------------------------------------------------------------------------------
,m]q+7E 6|}mTG^ #?6RoFgMe 包选择选项
]!:Y]VYN)\ rtE,SN package_name
h
cXqg 查询已安装包的package_name。
B{ "<\g .p>8oOp -a,--all
nTKfwIeg5 查询所有已安装拨。
zUqDX{I8 rSn7(3e4^ -f file,--file file
q8>Q,F`BA 找出什么包拥有文件file。
|Wk
G='02 <-}\V!@E! -g group,--group group
C ,hsr 找出什么包拥有组group。
vrbh+ ;D:T
^4 -p package_file
}*.*{I 查询未安装包package_file
_AYF'o-Cm 'DQyB`V2y --querybynumber num
pASVnXJZ 查询第num个数据库条目。主要用于调试。
n\Ixv "QS7?=>*F -qf,--queryformat num
||aU>Wj4 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
9lV'3UG-? 4PQWdPv; --specfile specfile
_@2G]JD 查询specfile,就好象它是个包
e IA=?k.y J]B5w{??b --triggeredby pkg
N<99K! 列出触发安装pkg包的包。
Z]BRMx gBu4`M --whatrequires capability
lV'83 列出要求特定能力来行使职责的包。
=w-H ) EA.U>5Fq --whatprovides capability
&=bI3- 列出提供特定能力的包。
2-84 --------------------------------------------------------------------------------
mX^RSg9 E} KK</5Aw9p MzD0F#Y 信息选择选项:
$ 1U%E @4$E.q<0 -c,--configfiles
+$5^+C\6A 列出包中的配置文件。
K<GCP2 W6Pg:Il7 --changelog
C.<4D1}P 显示有关于包的改变信息的日志。
bAp`lmFI \ua.%| -d,--docfiles
:xCobMs_/ 列出包中的文档文件。
ny=iAZM>q F1>,^qyG6 --dump
^ a:F*<D 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
kx[8#+P 以下列顺序输出信息:
E<dN=#f6 path size mtime md5sum mode owner group isconfig isdoc rdev symlink
&&O=v]6,V *Y Ox`z!R --filebypkg
\`C3;}o:"P 列出每个包中的所有文件。
Ek3O{< x5ia<V>=d -i
2+PIZ6=hN 显示包的信息,包括名字,版本和描述。
] ?(=rm9u ]mSVjF3l -l,--list
rtm28|0H' 列出包中所有文件
4hIC&W~f \m&:J>^ --last
r DuG[" 根据安装时间列出包,最新的包排第一位。
k"J?-1L zVu}7v() --provides
OK=t)6&b 列出这个包所提供的实际能力。
^-ZqS o/R-1\Dn -R,--requires
Wm 61 列出这个包所依赖的任何包。
s/V[tEC*z t&_lpffv -s,--state
^^#A9AM 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
3$Je,|bs Vs
>1%$If --scripts
i^#RiCeo 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
J$0*K+m y@I"Hk<T --------------------------------------------------------------------------------
k4v[2y` +Ji dP *L=CJg 卸载
v&Kw
3!X#E eC?N>wHH uninstall命令的语法为:
/1*\*<cs 4y'REC rpm -e package_name
":OXs9Yg rpm --erase package_name
SPBXI[[- =B 9U 示例:
xQQ6D 0!Yi.'+ [root@localhost ~]# rpm -e lynx
Xma0k3;- [root@localhost ~]# rpm -q lynx
^IpS 3y package lynx is not installed
mYCGGwD --------------------------------------------------------------------------------
\ CYu; 4"{q|~&=:$ JmkJ^-A 6 卸载选项为:
d=[. gIeo7>u --allmatches
[eImP
V] 删除包的所有版本。应该只指定一个包,否则会导致错误。
\gdd Z,*VRuA --nodeps
BtspnVBez 在卸载包之前不检查依赖性。
q6q=,<T%S 7 UR)4dYA --noscripts
@:}z\qBM 不执行任何预卸载和后卸载脚本。
q07>FW R ;RXv%ML --notriggers
]Sh&8 # 不执行任何由这个包的删除而出发的脚本。
m9/a!|fBE a.P^+h --test
N'4*L=Ut 不真正卸载任何包,仅仅查看活动过程。