Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
koTb{U L ]CL9N 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
s\Zp/-Q Bkq3-rX\ 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
){_D zA<Hj;9SM 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
u djahI<{ --------------------------------------------------------------------------------
rB<za I\V )"]Nf6 *!W<yNrR 以下简要介绍RPM包的安装,删除和查询
E\GD hfTQ qh]ILE87( RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
4!3mS WNV #&oL iz=hZ rpm命令的格式为:
yn;sd+:z Mu~DB:Y9e rpm [options] [packages]
5PCMxjon \i}:Vb(^ 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
>&`S$1 o "=/YPw^0 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
uPvE;E_ --------------------------------------------------------------------------------
=Eimbk "j]85 iW\Q>~0#_ RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
.w@o%AO_ u\uY q 以下为rpm --showrc命令显示的节选:
E#T6rd P I8%2tLVY 示例:
r^2>60q' F(5(cr 7K 此为部分显示结果
4XCy>;4u [root@localhost ~]# rpm --showrc
VEtdp*ot ARCHITECTURE AND OS:
ov@N13 ,$ build arch : i386
<)J83D0$E compatible build archs: athlon i686 i586 i486 i386 noarch
555*IT3b build os : Linux
(n>gC
compatible build os's : linux
x U1](O install arch : athlon
lls-Nir% install os : Linux
GCEcg&s=\S compatible archs : athlon i686 i586 i486 i386 noarch
\]a@ NBv compatible os's : linux
;@&mR<5j RPMRC VALUES:
%xH2jf 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
=HGC<# optflags : %{__global_cflags} -m32 -march=athlon
js~?y|e8k Features supported by rpmlib:
7H~J?_ rpmlib(VersionedDependencies) = 3.0.3-1
ap7ZT7KW PreReq:, Provides:, and Obsoletes: dependencies support versions.
a'U}.w} rpmlib(CompressedFileNames) = 3.0.4-1
T/b%,!N) file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
Z%t"~r0PS rpmlib(PayloadIsBzip2) = 3.0.5-1
D ^Cpgha package payload can be compressed using bzip2.
@+,J^[ y --------------------------------------------------------------------------------
M
yvyp Ns*&;x9 t[yu3U rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
<EHgPlQn j-% vLL/ 示例:
[J`%iU ^/H9`z; [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
:MIJfr>z Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
?)#qBE ] Preparing... ########################################### [100%]
(H/2{## 1:lynx ########################################### [100%]
J2ryYdo> --------------------------------------------------------------------------------
ROv(O;.Ty +li<y`aw0 vs`"BQYf 以下列出一些通用选项(可以用于所有模式):
t\/i9CBn f2abee --dbpath path
{&bjjM 用path作为RPM数据库的路径。
V2&O]bR zK5/0zMZ --ftpport prot
A5A4*.C 用port作为FTP端口。
ev$\Ns^g$3 C1V@\mRi --ftpproxy host
_(R1En1 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
p#yq 'kY L93PDp4v --help
"Q>gQKgL 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
LxcC5/@\~( VD,p<u{r --justdb
PGE|){
< 只更新数据库;不改变任何文件。
#2XX [d% _~=qByD
--pipe command
!(-lY(x 用管道把rpm输出到commond。
h
!yu. v lhN2xg5x --quiet
{Y\W&Edw% 仅显示错误信息。
H2p lT d;<gwCc --rcfile filename
gE_i#=bw 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
T=NF5kj-= </.9QV --root dir
g"F&~y/p 在dir目录内执行所有操作。
+kMVl_`V ) Ekd --version
!P_8D*^9 输出rpm版本号。
jgz} Zs$Qo->F -vv
x+=Ko 输出调试信息。
\E!a=cL! #jc+2F,+{ --------------------------------------------------------------------------------
qt.G_fOz NQFMExg, n.323tNY 安装升级和刷新
" 0:&x
n8L ;aY.CgX 安装或升级一个RPM包,install命令的语法为:
MPtn$@ doERBg`Jh rpm -i [install-options] package_file
MHm=X8eg rpm --install [install-options] package_file
x$6`k ~$bkWb*RJ 示例:
0# )I:5 aLWNqe&1 [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
swfcA\7R package lynx-2.8.5-18 is already installed
3Y
L [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
Hju7gP=y} --------------------------------------------------------------------------------
lU}y%J@ QO-R> >R9_; 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
Zs(I]^w;d 6rx%>\UkS rpm -U [install-options] package_file
vLc7RL rpm --upgrade [install-options] package_file
X:un4B}O `ZC{<eVJ}= 示例:
#JOWiO0> D.i(Irqw! 先安装旧版
BkH- d z [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
P?zPb'UVqa &V$qIvN$ 再安装新版
qG=>eRR [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
BotGPk><c AB.gVw|
4 显示出新版本信息
1feZ`P; [root@localhost ~]# rpm -q lynx
5yh:P3 / lynx-2.8.5-18
zE~{}\J ;x|E}XD 说明:
>I~$h, -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
Nx%]dOa FE0}V}\=h 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
e]1&f.K --------------------------------------------------------------------------------
z<T(afM{* <;O-N= n%SR5+N" 刷新的语法是:
6 aE:vR2 udEJo~u rpm -F [install-options] package_file
wc&`/'<p M;96Wm rpm --freshen [install-options] package_file
"&_$%#HUv F7FUoew< 示例:
]YO &_# N FVr$?P 从未安装过lynx包,使用-F选项,将无法升级。
61XLL/=P Ve]ufn6 [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
e(5:XHe [root@localhost ~]# rpm -q lynx
:jJ;&t^^ package lynx is not installed
#[Z1W8e --------------------------------------------------------------------------------
k2"DFXsv CJDnHuozc jo7`DDb 安装和更新选项为:
;2NJkn9t %gd{u\h^ --allfiles
jGeil
qPC 安装或更新所有文件。
a5)<roWQ up# R9
d| --badreloc
b`lLqV<[cB 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
>q}Ns^ .' #:~MtV
--excludedocs
'=M4(h 不安装任何文档文件。
rx$B(z(c +b9gP\Hke --excludepath path
N=JZtf/i 不安装文件名以path开始的任何文件。
-L.U4x ![>j`i --force
$$,/F 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
~36)3W[4
dGNg[ -h,--hash
'e/= !"T 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
"vH>xBR[% tK|jh --ignorearch
pX\Y:hCug 即使二进制包用于不同的体系结果也进行安装。
*_qW;l7 E#0_y4 --ignoreos
>Q`\|m}x)Q 即使操作系统不匹配也安装二进制包。
5t,W'a_ +1te 8P* --ignoresize
Q^B !^_M 安装前不检查磁盘的可用空间。
jMpV c
E# D~(f7~c% --includedocs
LU7ia[T 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
\8KAK3i' 0xSWoz[i6~ --nodeps
rryC^Vma 不检查这个包是否依赖于其他包的存在。
*ommU(r8 2b[R^O} --noorder
qwERy{]Sp; 安装之前,不为了满足依赖关系而对包进行重新排序。
<$V!y
dO pPa3byWf --noscripts
dr54D 不执行任何预安装或后安装脚本。
oB$P6 4@Q`8N. --notriggers
! U6 x_ 不执行任何由包安装触发的脚本。
Xcy Xju#"p c=^A3[AM --oldpackage
[}GPo0GY 允许升级以用旧包替换新包。
[!<W{ ($5 M9t`w-@_w --percent
::lD7@Wg 当文件被解压时输出完成百分比的信息。
+(pFU\&U3H LE'8R~4.< --prefix path
gf&\)" 把可重定位包的安装前缀设置为path。
ik;S!S\v , sOdc!![ --replacefiles
;b-d2R 即使包替换了来自其他安装包的文件,也安装这些包。
0-=PP@W 1luRTI8^ --replacepkgs
S5,y!K]C~ 即使某些包已经被安装,也安装他们。
<
s>y{e cl'#nLPz; --test
k;fy8 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
~+HZQv3Y 5C G
,l --------------------------------------------------------------------------------
~vL`[JiK 3SeM:OYq]s dw"Tv~ 查询
I?z*.yA* GY3g`M
query命令的语法为:
ZQVr]/W^r o)M=; ! rpm -q[information-options] [package-options]
/`2t$71) rpm --query[information-options] [package-options]
g.V{CJ*V ^wtr~D| 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
pE~>k: --------------------------------------------------------------------------------
(Cc!Iw'0M `1hM3N.nO #C`IfP./ 以下简单示演示一下包查询:
m|c5X)}- x+%(z8wD 简单查询:
l)d(N7HME 4(hHp6}b 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
,lUroO^^ =8p *Ijs 示例:
zG|#__=T d.)%C]W{ [root@localhost ~]# rpm -q lynx
e=).0S`*F lynx-2.8.5-18
Mqk[+n --------------------------------------------------------------------------------
dB=aq34l qGYru1 Y~fa=R{W 信息查询:
,t!K? Y j@98UZ{g\ rpm -qi packagename命令可以得到安装包的汇总信息。
mZgYR~ F s{}bQyQ 示例:
&3:U&}I [root@localhost ~]# rpm -qi lynx
v?)u1-V0 Name : lynx Relocations: (not relocatable)
Or2J Version : 2.8.5 Vendor: Red Hat, Inc.
Ibbpy++d[ Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
Z7Gl^4zn Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
.Jvy0B} B Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
[3~mil3rO Size : 4837340 License: GPL
0c,)T1NG > Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
~R$Ko(N Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> pAY[XN URL :
http://lynx.isc.org/ %z_L}L Summary : 一个基于文本的网页浏览器。
RoY"Haa Description :
XSv)=]{ Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
jW<aAd 图像,但是它支持框架、表格、以及多数其它 HTML
)d^b\On 标签。Lynx 优于图形化浏览器的地方是它的速度――
w%NT
0J Links 能够快速启动、退出、及显示网页。
Ia'm9Z* 标识拥有者
0\X'a}8Bu --------------------------------------------------------------------------------
>(9"D8 N+V_[qr# EYaX@|) 找出什么包拥有文件file:
L*'3f~@Q 8YLS/dN0 w 示例:
/5s,<
0Kz 7XDze(O5 [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
ZQ_&HmgRy lynx-2.8.5-18
`SN?4;N0 --------------------------------------------------------------------------------
yJMHm8OB7 q]}1/JZS ;V:Cf/@@R 列表包中的文件:
8va&*J?
2 2\'5LL3 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
UomO^P #R#o/@| 示例:
c9<&+ l0sBXs`3b 此为部分显示结果
/Sn>{ & [root@localhost ~]# rpm -ql lynx
Qk_Mx" /etc/lynx-site.cfg
|Ox!tvyr /etc/lynx.cfg
"KhVS /etc/lynx.cfg.cs
c8=@s# /etc/lynx.cfg.ja
=I6u*$9< /etc/lynx.cfg.sk
ywl7bU-f /usr/bin/lynx
g0&Rl /usr/share/doc/lynx-2.8.5
>.}ewz&9o /usr/share/doc/lynx-2.8.5/INSTALLATION
AY~~ a)V /usr/share/doc/lynx-2.8.5/README
z!0}Kj /usr/share/doc/lynx-2.8.5/docs
Do\YPo_Mr /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
Fu/{*4 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
j\^u_D /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
1(ud(8?| /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
OBBEsD/bc /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
{R{Io| /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
eCI0o5U /usr/share/doc/lynx-2.8.5/docs/CMU.announce
~p'DPg4 /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
S^/:O.X)c, /usr/share/doc/lynx-2.8.5/docs/FM.announce
Z9+xB"q2 /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
h=`1sfz /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
UZqQ|3 /usr/share/doc/lynx-2.8.5/docs/README.TRST
:
~R:[T2P /usr/share/doc/lynx-2.8.5/docs/README.chartrans
M,f|.p{,Y .:(N1n'>1 --------------------------------------------------------------------------------
`& (Fy NW=tZV Q<X uJX(s6["= 列出包所提供的实际能力:
H{4/~Z d J;y>_ --provides选项的作用是列出这个包所提供的实际能力。
aDreN*n Dn9AOi! 示例:
/[|ODfY .}6Mj]7?i [root@localhost ~]# rpm -q --provides lynx
DX$zzf config(lynx) = 2.8.5-18
qt
!T%K webclient
Wt8=j1> lynx = 2.8.5-18
~
""?: --------------------------------------------------------------------------------
r:n-?P Hswgv$n 9"RGf 1] 列出这个包所倚赖的任何包:
n!>#o1Qr ?4&C)[^ -R,--requires选项的作用是列出这个包所依赖的任何包。
1MF0HiC g12mSbf=9 示例:
hV6=-QL*B ^9zFAY.| [root@localhost ~]# rpm -qR lynx
h+! /bin/sh
1}$GVb%i config(lynx) = 2.8.5-18
wzka4J { indexhtml
V(LE4P1 libc.so.6
/cN. -lEo% libc.so.6(GLIBC_2.0)
k.dQ;v} libc.so.6(GLIBC_2.1)
Ue8k9%qV libc.so.6(GLIBC_2.2)
A`
iZ"? libc.so.6(GLIBC_2.3)
{q}#
Sq libcrypto.so.4
ji(Y?vhQt libncursesw.so.5
.vbUv3NI libssl.so.4
7rdPA9 libz.so.1
mAFVjSa2 rpmlib(CompressedFileNames) <= 3.0.4-1
npW1Z3n rpmlib(PayloadFilesHavePrefix) <= 4.0-1
v G7aT --------------------------------------------------------------------------------
^z^ UFW :<}.3 Q?& -}W` 列出包中的配置文件
WRWcB mu!hD^fw -c,--configfiles选项的作用是列出包中的配置文件
NSPa3NE b[MdA|C%j 示例:
hR] AUH 8O)!{gB [root@localhost ~]# rpm -qc lynx
-5Km9X8 /etc/lynx-site.cfg
.$k2.-k /etc/lynx.cfg
m R? } gR /etc/lynx.cfg.cs
V(Dn!Nz /etc/lynx.cfg.ja
V=C@ocyZ /etc/lynx.cfg.sk
EK:s# --------------------------------------------------------------------------------
@YMQbjbr JmR)
g kr_!AW<.tz 显示有关于包的改变信息的日志:
njk1x y.LJ5K$&a --changllog选项的作用是显示有关于包的改变信息的日志。
xGzp}
;8G( l 示例:
V@(7K0 ARZ5r48)
此为部分显示结果
$|2@of. [root@localhost ~]# rpm -q --changelog lynx
"?lm`3W" * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
9J$8=UuxWG - Removed perl dependencies (bug #127423).
Jhyb{i8RR * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
G|p3NhLgO= - rebuilt
~4Gs\U:!Q * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
MWHGB")J - No longer need lynx-284-ipv6-salen.patch.
`y26OYo - No longer need lynx2-8-2-telnet.patch.
DM-8azq $ * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
&dino - rebuilt
:LuzKCvBP * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
Pw"o[8 - Updated to dev16, fixing bug #110196.
[;Q8xvVZ' - No longer need crlf patch.
8"#Ix1# - Use shipped ja translations.
\qrSJ=}t - Use %find_lang.
9Q#eu~R - Default config file now sets UTF-8 (bug #110986).
6!,Am^uXM --------------------------------------------------------------------------------
JYbE(&l%de z_dorDF8`> s{- `y`JP 包选择选项
aN.t) DG}J {ZS-]|Kx package_name
$Yr'`(Cbc 查询已安装包的package_name。
XcS8{ +G!N@O -a,--all
r~sx]=/ 查询所有已安装拨。
m})q8b!S %G<!&E!0h -f file,--file file
0 gyg 找出什么包拥有文件file。
+P7A`{Ae M1MpR+7S -g group,--group group
5pBQ~m3 找出什么包拥有组group。
<(]e/} w>IYrSaa> -p package_file
FT1h\K|a 查询未安装包package_file
b[^=GF>e iI[Z|"a 21 --querybynumber num
>@yHa'*9S 查询第num个数据库条目。主要用于调试。
3&D;V;ON}_ &=sVq^d@qe -qf,--queryformat num
s<I[)FQVr 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
XIu3n9g^# TU&t 1_6 --specfile specfile
%"Y7 b2pPa 查询specfile,就好象它是个包
^KU:5Bn i>9/vwe --triggeredby pkg
CjzfU*G 列出触发安装pkg包的包。
oRM,_ fb5]eec --whatrequires capability
7L[HtwI 列出要求特定能力来行使职责的包。
|S5N$[ 9})!~r;| --whatprovides capability
y(K?mtQ 列出提供特定能力的包。
!@ml^&hP --------------------------------------------------------------------------------
a2dlz@)J SWjOJjn 3U&QonCV 信息选择选项:
PMJe6*(x/ kO:iA0KUX -c,--configfiles
YC:>) 列出包中的配置文件。
-R,[/7zj 8c m,G --changelog
OCzWP, 显示有关于包的改变信息的日志。
V|> u, fCSM#3|,] -d,--docfiles
*v'&i) J 列出包中的文档文件。
"hU'o& GNXQD}L?b? --dump
TxhTK5#f 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
,w|f*L$ 以下列顺序输出信息:
?aInn:FE path size mtime md5sum mode owner group isconfig isdoc rdev symlink
slEsSR'J] hq.z:D --filebypkg
cLH|; 列出每个包中的所有文件。
qoBm!|q im^G{3z -i
m :ROq 显示包的信息,包括名字,版本和描述。
br"p D-} fbSl$jn. -l,--list
}-m/
'Q 列出包中所有文件
&oevgG 8jxgSB", --last
dOq*W<% 根据安装时间列出包,最新的包排第一位。
w\pD'1e OGNjn9av --provides
Vtm5&- 列出这个包所提供的实际能力。
:N#gNtC)b ;JpU4W2/ -R,--requires
wobTT1!| 列出这个包所依赖的任何包。
9rX[z : z3b8 -s,--state
H~+D2A 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
!`vm7FN"u __""!Yz --scripts
vBd^=O 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
0fnd9`N!0 $Q1:>i@I|g --------------------------------------------------------------------------------
@R >4b OqDLb x+(h#+F 卸载
Z>Nr"7k $%VFk 53I uninstall命令的语法为:
yqqP7 m~\BkE/[l rpm -e package_name
e9h T rpm --erase package_name
K z !-w p^+k:E>U 示例:
i/*&; \cvui^^n [root@localhost ~]# rpm -e lynx
@*L^Jgn [root@localhost ~]# rpm -q lynx
G*e/Ft.wf8 package lynx is not installed
zbP0! --------------------------------------------------------------------------------
HE+y1f] ,U2
/J J0w[vrs&] 卸载选项为:
3A]Y=gfa \`r5tQ r --allmatches
xfqgK D> 删除包的所有版本。应该只指定一个包,否则会导致错误。
"8VCXD x=yBB;& --nodeps
fk`y}#7M 在卸载包之前不检查依赖性。
dc_^ M cE$=Vv --noscripts
k( 1rp|qf 不执行任何预卸载和后卸载脚本。
="3Hc=1?R BOn2`|oLuF --notriggers
[#n~ L6 不执行任何由这个包的删除而出发的脚本。
nCEt*~t9VE FJo N"X --test
It!%/Y5 不真正卸载任何包,仅仅查看活动过程。