Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
dKCl#~LAI' [DDe}D3C 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
1^*ogMe LAo$AiTUR{ 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
[Z"Z5e` yYYP;N?g4k 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
ib#rT{e --------------------------------------------------------------------------------
}e/vKWfT 0%%U7GFB5 2>o^@4PnZ 以下简要介绍RPM包的安装,删除和查询
VevG 64o w8R7Ksn( RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
gd]S;<Jh HcJ!( rpm命令的格式为:
o$l8"Uv pfHjs3A= rpm [options] [packages]
egSs=\ wK7w[Xt 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
j5" L y0(.6HI 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
G4*&9Wo --------------------------------------------------------------------------------
^)Awjj9 Yl>Y.SO ;tVd+[8 RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
m"/..&'GC gaz",kK< 以下为rpm --showrc命令显示的节选:
hnB`+! `^[Tu 1 示例:
{<@ud0A:\ JDZuT# 此为部分显示结果
^67}&O^1 , [root@localhost ~]# rpm --showrc
l0`bseN< ARCHITECTURE AND OS:
-,+C*|mu build arch : i386
m//aAxmB compatible build archs: athlon i686 i586 i486 i386 noarch
&V$cwB build os : Linux
h&CZN ! compatible build os's : linux
2ua!<^, install arch : athlon
YVa,?&i=N install os : Linux
w(aj' i compatible archs : athlon i686 i586 i486 i386 noarch
L(K 5f7\ compatible os's : linux
R&;x_4dr^ RPMRC VALUES:
5I1YB+$}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
nRB3VsL optflags : %{__global_cflags} -m32 -march=athlon
R*2N\2 Features supported by rpmlib:
JxwKTFU'3O rpmlib(VersionedDependencies) = 3.0.3-1
! J<Xel{ PreReq:, Provides:, and Obsoletes: dependencies support versions.
KYw7Jx`l rpmlib(CompressedFileNames) = 3.0.4-1
<=GZm}/]N file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
E;s_=j1f rpmlib(PayloadIsBzip2) = 3.0.5-1
^pd7nr~Y package payload can be compressed using bzip2.
DJ<+" .v! --------------------------------------------------------------------------------
.O'~s/h aT IzfqCM yP# Y:s rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
.U=x2txb LEPTL#WT1 示例:
/7\q#qIm: ]r0j [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
^*`#+*C Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
0Zwx3[bq6K Preparing... ########################################### [100%]
qhvT," 1:lynx ########################################### [100%]
3{|~'5* --------------------------------------------------------------------------------
p *42
@1, ,(Zxd4?y ; 8DtnnE 以下列出一些通用选项(可以用于所有模式):
2"Wq=qy\J q MrM^ ~ --dbpath path
Z;a)P.l.> 用path作为RPM数据库的路径。
F7O*%y.'; C.:S@{sK --ftpport prot
M^Z=~512g 用port作为FTP端口。
Qx,#Hj G4:\6fu --ftpproxy host
z"yW):X 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
'}(>s%~ Miw=2F --help
rZpsC}C' 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
0j4n11# dR.?Kv(,E --justdb
LKc p.i 只更新数据库;不改变任何文件。
;f[##=tm 3Fn}nek --pipe command
ejyx[CF 用管道把rpm输出到commond。
9q$^x/z! EG qu-WBS --quiet
z-kv{y*Hu
仅显示错误信息。
C=r`\W X41Qkf{ --rcfile filename
Y%
\3 N 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
beikzuC |wv+g0]Pg^ --root dir
mxF+Fp~ 在dir目录内执行所有操作。
PVF:p7 %G2g
@2 --version
W`vPf 输出rpm版本号。
DFQ`(1Q <";1[A%7< -vv
w (RRu~J 输出调试信息。
TO5y.M|7 HAI)+J --------------------------------------------------------------------------------
%vy,A* o96c`a u de2G"'F 安装升级和刷新
#tHYCSr] &x\)] i2f 安装或升级一个RPM包,install命令的语法为:
0aY\(@ cq?,v?m rpm -i [install-options] package_file
IFew3!{\ rpm --install [install-options] package_file
qF$y
p>|# QOUyD;0IW 示例:
!2HF|x$ ,.(:b82$ [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
BC_<1
c package lynx-2.8.5-18 is already installed
YHom9&A [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
}]dzY( --------------------------------------------------------------------------------
dF 6od qzvht4 QeFt
WjlqC 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
(n.IK/: iOhX\@& rpm -U [install-options] package_file
ga\s5
rpm --upgrade [install-options] package_file
\F`>zY2$% F7jkl4 示例:
~E8/m_> rU f?=0Wzb 先安装旧版
m%})H"5 [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
|,`"Omb9+m !9HWx_,|Z 再安装新版
oXht$Q [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
P3W3+pwq Ig?9"{9p 显示出新版本信息
Zy9IRZe4U [root@localhost ~]# rpm -q lynx
/*fx`0mY) lynx-2.8.5-18
)K]p^lO wAW{{ p 说明:
6p&2A -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
( z)#}TC V*O[8s%5v 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
=to.Oa RR --------------------------------------------------------------------------------
p|nPu*R-\ U_'M9g{,< OhN2FkxL 刷新的语法是:
Ws0)B8y,| f
]_ki rpm -F [install-options] package_file
&g90q /^jl||'H,: rpm --freshen [install-options] package_file
:oW 16m1` 9pj6`5Zn@6 示例:
u@:[ dbJ cy?#LS 从未安装过lynx包,使用-F选项,将无法升级。
%wru) G?LC!9MB [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
'lpCwH [root@localhost ~]# rpm -q lynx
WQN`y>1#@_ package lynx is not installed
ct=K.m@E%X --------------------------------------------------------------------------------
>h~ik/|* *v(Q-FW x|d? ' 安装和更新选项为:
PWp=}f.y /%7&De6Xg --allfiles
7D>_<)%d= 安装或更新所有文件。
95j`^M)Q P"}"q ![ --badreloc
V>obMr^5 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
u' kG(<0Y EQpF:@_ --excludedocs
AFBWiuwI3 不安装任何文档文件。
fD\Fq'29{ Crj7n/mp]s --excludepath path
]gnEo.R 不安装文件名以path开始的任何文件。
= vF! 0Ba]Zo Z --force
h$9ut@I 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
.]4MtG 9a+Y )?z -h,--hash
A\9LJ#E 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
=~W=} cVMRSp --ignorearch
tcl9:2/^] 即使二进制包用于不同的体系结果也进行安装。
SvkCx>6/G Z 1wtOL --ignoreos
3Ur_?PM+C 即使操作系统不匹配也安装二进制包。
j@+$lU*r *]R5bj.!o --ignoresize
`Xeiz'~f8 安装前不检查磁盘的可用空间。
=E!Y f#p+q 5wAKA`p"z --includedocs
! N!pvK; 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
EBL-+%J8 ,UVu.RjXN --nodeps
K8[Um!( 不检查这个包是否依赖于其他包的存在。
,H.5TQ# h0dZr-c --noorder
(dyY@={q 安装之前,不为了满足依赖关系而对包进行重新排序。
F(lJ OXKV6r6f --noscripts
d)Z&_v<| 不执行任何预安装或后安装脚本。
>/ A'G +`1~zcu --notriggers
w 2U302TZ 不执行任何由包安装触发的脚本。
n`w]? bL B6Ajcfy --oldpackage
\k"Ct zoX 允许升级以用旧包替换新包。
q o^mp ~UeTV?) --percent
a%kvC#B 当文件被解压时输出完成百分比的信息。
h* 1T3U$ R)SY#*Y --prefix path
[YODyf}M>\ 把可重定位包的安装前缀设置为path。
S!gzmkGcj [iO8R-N8d --replacefiles
eGpKoq7a 即使包替换了来自其他安装包的文件,也安装这些包。
[\h?mlG? PP!-*~F0Jr --replacepkgs
I#;dS!W"' 即使某些包已经被安装,也安装他们。
[ "3s zAklS 7L --test
L{r 4hL [
检查安装过程,看整个过程都做了些什么,但并不真正安装包。
kc=Z6(= :IJ<Mmb --------------------------------------------------------------------------------
xz.M'az\ 1+7_L`SB id8QagJ 查询
=)g}$r
&< /|}yf/^9X query命令的语法为:
4]p#9`j ,:'JJZg@ rpm -q[information-options] [package-options]
$-t@=N@vO? rpm --query[information-options] [package-options]
nsVLgTbx jC}HNiM78 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
E 11C@% --------------------------------------------------------------------------------
|=,jom (5th ='qVwM[' 以下简单示演示一下包查询:
6`7bk35B ]63!
Wc 简单查询:
wWf_d jd tk h
*su 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
q I~*G3 -Hw3rv3o 示例:
A:Gd F-;[ <,/7:n [root@localhost ~]# rpm -q lynx
z6d0Y$A G lynx-2.8.5-18
%3t;[$n# --------------------------------------------------------------------------------
xHaz*w1| uCuB>x& M&faa7 信息查询:
ohe[rV>EX ao .vB']T rpm -qi packagename命令可以得到安装包的汇总信息。
a.?U$F SVd@-
'-K 示例:
>35w"a7S [root@localhost ~]# rpm -qi lynx
_$D!"z7i Name : lynx Relocations: (not relocatable)
O_.!qk1R Version : 2.8.5 Vendor: Red Hat, Inc.
qAbmQ{|w Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
fXl2i]L(^B Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
+'olC^?5 } Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
)YAU|sCAi$ Size : 4837340 License: GPL
h2Th)&Fb> Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
&^HVuYa.0 Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> 0pEM0M URL :
http://lynx.isc.org/ X9FO"(J Summary : 一个基于文本的网页浏览器。
nIfAG^?|* Description :
F|5Au>t Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
S|LY U!IWZ 图像,但是它支持框架、表格、以及多数其它 HTML
$^?VyHXvY 标签。Lynx 优于图形化浏览器的地方是它的速度――
p19@to5l Links 能够快速启动、退出、及显示网页。
r`EjD}2d 标识拥有者
>s"/uo --------------------------------------------------------------------------------
fvi0gE@bd =GF=_Ac h:?qd 找出什么包拥有文件file:
?(K=du y6[ le*T 示例:
]plp.f#av c@}t@k [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
>ZG$8y 'j lynx-2.8.5-18
</xf4.C --------------------------------------------------------------------------------
R@tEC)Zn ;A7JX:*?y= m9:ah< 列表包中的文件:
SvvNk /JC1o&z_T 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
?vAhDD5 eQ8t.~5;- 示例:
;sAGTq wik<#ke 此为部分显示结果
dc1Zh
W4 [root@localhost ~]# rpm -ql lynx
g<0K
i^# /etc/lynx-site.cfg
J!5b~8`v /etc/lynx.cfg
CZeZk /etc/lynx.cfg.cs
=4SXntU!e /etc/lynx.cfg.ja
9609 /etc/lynx.cfg.sk
=*lBJ-L /usr/bin/lynx
CyYr5 Dz /usr/share/doc/lynx-2.8.5
$HQ4 o\~ /usr/share/doc/lynx-2.8.5/INSTALLATION
Ny/eYF# /usr/share/doc/lynx-2.8.5/README
J+
S]Qoz /usr/share/doc/lynx-2.8.5/docs
rQ]JM /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
F4z#u2~TC /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
G'-#99wv. /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
=G^'wwpv( /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
(g X8iKl /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
a*.#Zgy:lK /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
7[qL~BT+ /usr/share/doc/lynx-2.8.5/docs/CMU.announce
N5sVRL"7 /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
\6?a /usr/share/doc/lynx-2.8.5/docs/FM.announce
L;j++^p /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
KT<$E!@ /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
h{ix$Xn~ /usr/share/doc/lynx-2.8.5/docs/README.TRST
@d 7V@F0d /usr/share/doc/lynx-2.8.5/docs/README.chartrans
C<(oaeQY FE,mUpHIR --------------------------------------------------------------------------------
?jlz:Z4 OM\1TD/- S-gO 列出包所提供的实际能力:
@/^mFqr2 zN]%p>,)HB --provides选项的作用是列出这个包所提供的实际能力。
jTt9;?) a4 N f\7 示例:
][?J8F F5/,S [root@localhost ~]# rpm -q --provides lynx
; xp-MK config(lynx) = 2.8.5-18
>|kD(}Axf webclient
id5`YA$ lynx = 2.8.5-18
,z/aT6M?H --------------------------------------------------------------------------------
E/%"%&`8j w@cW`PlF A7+ZY, 列出这个包所倚赖的任何包:
VlA]A,P}i >Q=^X3to -R,--requires选项的作用是列出这个包所依赖的任何包。
Q#H"Se R3|4|JlGR 示例:
\#dacQ2E@ N\|z{vn [root@localhost ~]# rpm -qR lynx
]T]{VB /bin/sh
^&1O:G*" config(lynx) = 2.8.5-18
&U|c=$!\ indexhtml
!vR Zh('R libc.so.6
&*+$38XE^ libc.so.6(GLIBC_2.0)
f?k0(rl libc.so.6(GLIBC_2.1)
2y^:T'p libc.so.6(GLIBC_2.2)
-2J37 libc.so.6(GLIBC_2.3)
0g|5s libcrypto.so.4
-#;xfJE libncursesw.so.5
Z*mbhod libssl.so.4
&Q?@VNi libz.so.1
4l%W]' rpmlib(CompressedFileNames) <= 3.0.4-1
Hh=fv~X rpmlib(PayloadFilesHavePrefix) <= 4.0-1
S}%z0g< --------------------------------------------------------------------------------
+c<iVc| DWKQ>X6 *1`X} 列出包中的配置文件
b1 w@toc .aY$-Y< -c,--configfiles选项的作用是列出包中的配置文件
!KK `+ 9/ Y 2ANt w@ 示例:
pl&nr7\ ur'<8pDb$ [root@localhost ~]# rpm -qc lynx
Jk\-e`eE /etc/lynx-site.cfg
#d\&6'O /etc/lynx.cfg
S5 q1Mn /etc/lynx.cfg.cs
lRg?||1ik /etc/lynx.cfg.ja
s)qrlv5H /etc/lynx.cfg.sk
jmr
.gW --------------------------------------------------------------------------------
.UL2(0 >iOf3I-ATt <nbklo 显示有关于包的改变信息的日志:
EyPJ Jc8 s~ 8g --changllog选项的作用是显示有关于包的改变信息的日志。
2Wluc37 Vl5>o$G|<. 示例:
70 R6: =+j3E<w 此为部分显示结果
;HXk'xN [root@localhost ~]# rpm -q --changelog lynx
C-c'"FHq * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
MBA?, |9Q# - Removed perl dependencies (bug #127423).
5>f" * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
[%dsq`b# - rebuilt
fS4W*P[B3 * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
sS}:O d - No longer need lynx-284-ipv6-salen.patch.
aHW34e@ebL - No longer need lynx2-8-2-telnet.patch.
\~,\| * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
*%KIq/V - rebuilt
a#r{FoU{M8 * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
J3
Q_ - Updated to dev16, fixing bug #110196.
uM[|>t - No longer need crlf patch.
xNOKa* - Use shipped ja translations.
.i4aM;Qy - Use %find_lang.
zT,@PIC( - Default config file now sets UTF-8 (bug #110986).
WC~;t4 --------------------------------------------------------------------------------
OmWEa l6HtZ( ekyCZ8iai 包选择选项
3i!a\N4 K `X@\Zv=} package_name
d|NW&PG 查询已安装包的package_name。
,6g{-r-2 %[*-aA -a,--all
0@zJa;z' 查询所有已安装拨。
?(=|!`IoO :gwmk9LZ -f file,--file file
oa"Bpi9i 找出什么包拥有文件file。
?tjEXg>ny z U[pn)pe -g group,--group group
-@w,tbc$ 找出什么包拥有组group。
:V+rC]0 }/1^Lqfnz -p package_file
u5}:[4N%I 查询未安装包package_file
]ouoRlb/ u$a K19K/ --querybynumber num
q%;cu1^"M 查询第num个数据库条目。主要用于调试。
qK%N{ro[{? xQvI$vP -qf,--queryformat num
_j, Tc*T 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
;
D<k [#gm[@d, --specfile specfile
?l6yLn5si^ 查询specfile,就好象它是个包
K _VIk'RB ,g7O --triggeredby pkg
'/HShS!d 列出触发安装pkg包的包。
L1RD`qXu. ct-Bq --whatrequires capability
YM_ [ 列出要求特定能力来行使职责的包。
^aAs=KditO {"Sv~L|J; --whatprovides capability
\UK}B 列出提供特定能力的包。
5\quh2Q_ --------------------------------------------------------------------------------
-&2Z/qM&! #1J,!seJ wL),/i&< 信息选择选项:
n zaDO-2! O6y:e#0z -c,--configfiles
qA7,txQ: 列出包中的配置文件。
L%v@|COQ3 ]j7`3%4uK --changelog
e x Z/ 显示有关于包的改变信息的日志。
GqCBD-@4v. tjtvO@?1- -d,--docfiles
R5=J :o 列出包中的文档文件。
yP$esDP (9%?ik --dump
=_k 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
8wkhbD|; 以下列顺序输出信息:
r[Pp[g-J path size mtime md5sum mode owner group isconfig isdoc rdev symlink
30^q_|l:] O.Pp*sQ^ --filebypkg
++,I`x+p 列出每个包中的所有文件。
A` _dj}UF ;?HP/dZLz -i
_?"y1L. 显示包的信息,包括名字,版本和描述。
y60aJ)rAX j%'2^C8 -l,--list
^oPFLez56 列出包中所有文件
_=I1 O"~[njwkE --last
n)5t! 根据安装时间列出包,最新的包排第一位。
apm%\dN m^L !_~ --provides
72~L ? 列出这个包所提供的实际能力。
ZskX!{ Ne<S_u2nT -R,--requires
~2rQ80_ 列出这个包所依赖的任何包。
K9xvog F?2UHcs -s,--state
0a:oC(Ak
列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
`:3nF' "G>d8GbIh --scripts
n! 5(Z5= 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
r*b+kSh 9RlJf=Z#H --------------------------------------------------------------------------------
afX|R ((]i}s0S ~`BkCTT 卸载
Ich^*z(F$ P,] ./m\J uninstall命令的语法为:
&Pme4IHtm Ti)Me-g rpm -e package_name
5?H8?~&dz rpm --erase package_name
z#&1> bEcN_7 示例:
*ilh/Hd> )I*(yUj [root@localhost ~]# rpm -e lynx
Ld.9.d] [root@localhost ~]# rpm -q lynx
nQV0I"f]?] package lynx is not installed
$#f_p-N --------------------------------------------------------------------------------
1#3|PA#> 6ZE`'pk< =At" Q6-O 卸载选项为:
%R?7u'=~ QErdjjgE --allmatches
)lLeL#]FLO 删除包的所有版本。应该只指定一个包,否则会导致错误。
7Q|<6210 8'@5X-nD --nodeps
MkMDI)Y| 在卸载包之前不检查依赖性。
$Z)u04;&@ yH"i5L9 --noscripts
Szt2 "AR 不执行任何预卸载和后卸载脚本。
$$ *tK8# u_NLgM7* --notriggers
&=)O:Jfa 不执行任何由这个包的删除而出发的脚本。
A{\?]]/ X>`03?L --test
C)j/!+nh 不真正卸载任何包,仅仅查看活动过程。