Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
2A
,36, PW4Wn`u 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
Li^!OHro. *{s[$}uQ 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
O^%ace1 'Jr*oru 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
^v|!(h\ZC --------------------------------------------------------------------------------
BniVZCct Bys|i 0tb- e"/X*xA 以下简要介绍RPM包的安装,删除和查询
a8aqcDs>O ra2q. H RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
e,UgTxZ 7~f6j:{|z rpm命令的格式为:
m/nn}+*C IpmREl$j rpm [options] [packages]
E/;YhFb[ x&Rp
m<4 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
.&.CbE8K[ *?fBmq[j 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
P'~3WL4MKs --------------------------------------------------------------------------------
Y|nTc.A ]NsaFDi\ e)"cm;BJ^P RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
\YS\*'F ]XyJ7esg 以下为rpm --showrc命令显示的节选:
rID]!7~ ;A!i V| 示例:
%b6wo?%* T]2q >N 此为部分显示结果
vq:j?7 [root@localhost ~]# rpm --showrc
R FiR)G , ARCHITECTURE AND OS:
p\\q[6 build arch : i386
2fB@zF
compatible build archs: athlon i686 i586 i486 i386 noarch
]:fHvx_?`7 build os : Linux
/]&1 XT? compatible build os's : linux
7Y:s6 R| install arch : athlon
kw'D2692 install os : Linux
E !M+37/ compatible archs : athlon i686 i586 i486 i386 noarch
kq-RM#Dj: compatible os's : linux
+i =78 RPMRC VALUES:
hd-ds~ve 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
W9~datIh> optflags : %{__global_cflags} -m32 -march=athlon
]du~V?N
Features supported by rpmlib:
Qafg/JU rpmlib(VersionedDependencies) = 3.0.3-1
owhht98y( PreReq:, Provides:, and Obsoletes: dependencies support versions.
>0oc=9H8 rpmlib(CompressedFileNames) = 3.0.4-1
ZT#G:a file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
qc F{Kex" rpmlib(PayloadIsBzip2) = 3.0.5-1
>2/zL.O package payload can be compressed using bzip2.
jo~vOu --------------------------------------------------------------------------------
W+X
zU"l JnDR(s4(E FC#Qtu~J rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
/o2eKx x;Q2/YZ# 示例:
<0m;|Ai'W J4i0+u [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
QR)eJ5< Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
[>86i Preparing... ########################################### [100%]
, +^db) 1:lynx ########################################### [100%]
Jo0x/+?,+ --------------------------------------------------------------------------------
=[&Jxy>Y y6oDbwke *#_jTwQe 以下列出一些通用选项(可以用于所有模式):
9^tyjX2 ",m5}mk:4 --dbpath path
n9^zAcUbAW 用path作为RPM数据库的路径。
&AVi4zV p:jrqjLp --ftpport prot
"oQ@.]-# 用port作为FTP端口。
~cjvo?)&e; |Th{*IJ<, --ftpproxy host
P$bo8* 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
W=*\4B] .z"[z^/uF --help
C0M{zGT>} 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
>+r2I% uRIr,U^ --justdb
]2jnY&a5 只更新数据库;不改变任何文件。
w'!gLta D<`X
B* --pipe command
!`gg$9 用管道把rpm输出到commond。
2-4%h! g;pFT --quiet
kL-+V)Kl 仅显示错误信息。
OX"`VE *sTQ9 Kr --rcfile filename
]%." 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
<+a\'X c Vk"QcW --root dir
H4N==o 在dir目录内执行所有操作。
:MVD83?4 ?=,tcN --version
.jCdJ
=z 输出rpm版本号。
1\McsX4 )JPcSy* -vv
vv u((b 输出调试信息。
Ah,Zm4: U;(&!Ei --------------------------------------------------------------------------------
[;(|^0 bke 1 F
' >g?,BK@ 安装升级和刷新
()rDM@ 1#'wR3[+ 安装或升级一个RPM包,install命令的语法为:
p7*\]HyE)
G~JQcJFj rpm -i [install-options] package_file
*/1z=
rpm --install [install-options] package_file
"Xm'(c( * .e^s3q$ 示例:
D526X0 /<})+=>6f [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
sJ,zB[e8 package lynx-2.8.5-18 is already installed
i@2?5U>h [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
cIgF]My*D@ --------------------------------------------------------------------------------
%>f:m!. sB6UlX;b: u@o3p*bQ 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
{f!m m3'2v 1}(g=S rpm -U [install-options] package_file
Z#F2<*+Pe rpm --upgrade [install-options] package_file
y]/{W}D wtY#8'^$& 示例:
;{>z\6N 1:,aFp>qr 先安装旧版
'{J!5x?L^ [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
?Z;knX\?J E_h 9y 再安装新版
#i~.wQ$1 [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
Jzr(A^vwo xT@\FwPr 显示出新版本信息
s?=J#WV1y [root@localhost ~]# rpm -q lynx
SO}Hc;Q1` lynx-2.8.5-18
$N+azal+y oV*3Mec 说明:
!D1F4v[c= -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
Tj.;\a|d *u-TNg 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
<uA|nYpp --------------------------------------------------------------------------------
}C) Jx'p\* Gs-' 刷新的语法是:
wZ*m Chjth" rpm -F [install-options] package_file
;'nu9FU*O -tDmzuD6 rpm --freshen [install-options] package_file
dL v\H& {4#'`Eejj 示例:
.>&kAf. E9|i: 从未安装过lynx包,使用-F选项,将无法升级。
$ZE OE8.\ YncY_Hu [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
&!~q#w1W-5 [root@localhost ~]# rpm -q lynx
Wvcj\2'yd package lynx is not installed
Lx2.E1?@ --------------------------------------------------------------------------------
KaOS!e' 5?QR ]F-{)j 安装和更新选项为:
VN*^pAzlF m%m8002 --allfiles
TC ^EyjD 安装或更新所有文件。
l^fz " >;},$ --badreloc
i5|!MIY 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
pi+m`O RzNv| --excludedocs
2E;*kKw[ 不安装任何文档文件。
!K_%@|: 7% ~g)gXPjke --excludepath path
eFbr1IV 不安装文件名以path开始的任何文件。
'%kk&&3' jiz"`,-},O --force
p.&FK'&[0 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
]*Zg(YA N3i}>Q)B -h,--hash
u|APx8?"o 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
p)d'yj H7*/ --ignorearch
P)ZGNtO9fG 即使二进制包用于不同的体系结果也进行安装。
G[)QGZ}8b .\qZkk}2l --ignoreos
1+v)#Wj 即使操作系统不匹配也安装二进制包。
IC37f[Q ;E(%s=i
--ignoresize
or>5a9pj 安装前不检查磁盘的可用空间。
G5?Dt-;I o|(-0mWBQA --includedocs
]xbR:CYJ 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
&p`RKD 1]m]b4] --nodeps
! ai, \ 不检查这个包是否依赖于其他包的存在。
g#T8WX{(V :J5xO%WA( --noorder
C]p3,G,oN 安装之前,不为了满足依赖关系而对包进行重新排序。
S2h?Q$e3 5L%A5C&| --noscripts
NAlYfbp 不执行任何预安装或后安装脚本。
:dLfM)8} D*I%=);B_ --notriggers
&U*=D8!0 不执行任何由包安装触发的脚本。
<9B\(' &AG,]# --oldpackage
p{[Ol 允许升级以用旧包替换新包。
M9[Fx=
qY rB~x]5TH --percent
ZC@sUj" 当文件被解压时输出完成百分比的信息。
Re0ma%~LP %c*azo. --prefix path
U5[xW 把可重定位包的安装前缀设置为path。
FcB]wz j
~:Dr --replacefiles
RU|{'zC\v 即使包替换了来自其他安装包的文件,也安装这些包。
_ko16wfg ML^c-xY( --replacepkgs
]g2Y/\)a 即使某些包已经被安装,也安装他们。
q["CT&0 nb9qVuAGU --test
R_e{H^pY^ 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
SxdH%agM mFC0f?nr --------------------------------------------------------------------------------
>gtKyn] KWq7M8mq o}C| N)' 查询
-{dsl|Dl \BOZhXfl' query命令的语法为:
^p?O1qTg *,A?lX,9A rpm -q[information-options] [package-options]
dh#4/Wa, rpm --query[information-options] [package-options]
q{gt2OWqX 6r4o47_t8# 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
2It$ bz --------------------------------------------------------------------------------
uDJi2,|n yJkERiJV ^AS*X2y 以下简单示演示一下包查询:
Bvj-LT=) 5-3`@ (/ 简单查询:
c%9wI*l tkx1iBW= 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
`OO=^.-u qPY
OO 示例:
K<'L7>s3lA }YH@T]O} [root@localhost ~]# rpm -q lynx
yNMnByg3? lynx-2.8.5-18
Nn5z --------------------------------------------------------------------------------
i>#[*.|P o_>id^$>B c|OIUc 信息查询:
4)./d2/E {Hxvt~P rpm -qi packagename命令可以得到安装包的汇总信息。
{Bk9]:'$5 9t:P1 示例:
T|dQY~n~ [root@localhost ~]# rpm -qi lynx
%upnXRzw Name : lynx Relocations: (not relocatable)
b<o Uy Version : 2.8.5 Vendor: Red Hat, Inc.
HO%atE$> Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
o%_MTCANy Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
-7\Rl3c Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
T7`9[ Size : 4837340 License: GPL
R
r7 r5 Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
gRA}sF Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> 04>dxw)8 URL :
http://lynx.isc.org/ 6) {jHnk)
Summary : 一个基于文本的网页浏览器。
|d}f\a` Description :
v).V&": Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
aVsA5t\zi 图像,但是它支持框架、表格、以及多数其它 HTML
3NRxf8 标签。Lynx 优于图形化浏览器的地方是它的速度――
"'/:Tp) Links 能够快速启动、退出、及显示网页。
3~ITvH,`s 标识拥有者
s*$Re)}S --------------------------------------------------------------------------------
m:|jv|f Fr/3Qp@S 8l,`~jvU!* 找出什么包拥有文件file:
P{2V@ <} v,z s
dr"d 示例:
8`Wj 1 ,q U(#)[S, [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
m>dZ n lynx-2.8.5-18
?
tre) --------------------------------------------------------------------------------
hm#S4/=# `@+}zE *xm(K+j 列表包中的文件:
wcGI2aflD U^jxKBq^ 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
]iu}5]?) ~P&Brn"=Rs 示例:
EX^}#|e*h
!]]QbB 此为部分显示结果
|X&.+RI [root@localhost ~]# rpm -ql lynx
Da_8Q(XFe /etc/lynx-site.cfg
Wr3j8"f/ /etc/lynx.cfg
o+(>/Ou /etc/lynx.cfg.cs
u6&<Bv /etc/lynx.cfg.ja
C9l5zb~D /etc/lynx.cfg.sk
jwsl"zL /usr/bin/lynx
1,cd[^`. /usr/share/doc/lynx-2.8.5
RiHOX&-7 /usr/share/doc/lynx-2.8.5/INSTALLATION
^`b&fbv /usr/share/doc/lynx-2.8.5/README
Z9cg,#(D /usr/share/doc/lynx-2.8.5/docs
#hinb[fQ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
zh5'oE&[yC /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
TMt,\gTd /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
'[u=q
-Lv /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
|$[WnYP /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
-TnvX(ok4 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
LxqK@Q<B /usr/share/doc/lynx-2.8.5/docs/CMU.announce
:1%z; /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
G9?6qb: /usr/share/doc/lynx-2.8.5/docs/FM.announce
ogN/zIU+VA /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
Fv!zS.)` /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
+<p?i]3CHe /usr/share/doc/lynx-2.8.5/docs/README.TRST
mHTZ:84 /usr/share/doc/lynx-2.8.5/docs/README.chartrans
% : ?_N En@] xvE --------------------------------------------------------------------------------
Jvi"K @8zp(1. f.f5f%lO~ 列出包所提供的实际能力:
EJqzh
i5 f"XFf@! --provides选项的作用是列出这个包所提供的实际能力。
xEK+NKTeV oicett=5 示例:
99Xbp P55 -VK6Fq [root@localhost ~]# rpm -q --provides lynx
?VM# Nf\ config(lynx) = 2.8.5-18
H^jFvAI,8 webclient
~$g$31/ lynx = 2.8.5-18
X]'Hz@$N --------------------------------------------------------------------------------
}5n((7@X y w"Tw *SkUkqP9z 列出这个包所倚赖的任何包:
$YDZtS&h zGz^T -R,--requires选项的作用是列出这个包所依赖的任何包。
)k5lA=(Yr+ [BS3y`c 示例:
c"aiZ(aP wK8/`{B9 [root@localhost ~]# rpm -qR lynx
3[Pa~]yS /bin/sh
T-7'#uB.m config(lynx) = 2.8.5-18
T!6H5>zA indexhtml
$cO"1mu libc.so.6
!Ju?REH libc.so.6(GLIBC_2.0)
%
'>S9Ja3 libc.so.6(GLIBC_2.1)
<YbOO{ libc.so.6(GLIBC_2.2)
)c@I|L libc.so.6(GLIBC_2.3)
e_J_rx libcrypto.so.4
l*[ . libncursesw.so.5
E-,74B&H libssl.so.4
dfB#+wh libz.so.1
qB3{65 rpmlib(CompressedFileNames) <= 3.0.4-1
bhXH<= rpmlib(PayloadFilesHavePrefix) <= 4.0-1
]ABpOrg --------------------------------------------------------------------------------
Kq/W-VyGh &fYx0JT
"Kk3# 列出包中的配置文件
UTQ$sg|7p lo:]r.lX{ -c,--configfiles选项的作用是列出包中的配置文件
]B>Y
+ #bPio 示例:
[|UW_Bz <[xxCW(2 [root@localhost ~]# rpm -qc lynx
{+f@7^/i. /etc/lynx-site.cfg
=Mq=\T /etc/lynx.cfg
76[aOC2Ad /etc/lynx.cfg.cs
rtDm<aUh /etc/lynx.cfg.ja
\()\pp~4 /etc/lynx.cfg.sk
M;W{A)0i1 --------------------------------------------------------------------------------
k]x64hgm Vn1k C P]2M 显示有关于包的改变信息的日志:
VL"ZC:n)- aPB %6c= --changllog选项的作用是显示有关于包的改变信息的日志。
_,b%t1v 'DF3|A], 示例:
_jef{j zsI0Q47\ 此为部分显示结果
q
/|<>s [root@localhost ~]# rpm -q --changelog lynx
kgK7 T * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
g'Ft5fQ"o/ - Removed perl dependencies (bug #127423).
mKZ?H$E%% * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
IDzP<u8v - rebuilt
N`y!Km
* 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
J),7ukLu^ - No longer need lynx-284-ipv6-salen.patch.
Z!6\KV] - No longer need lynx2-8-2-telnet.patch.
N;D(_:^ * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
%-]j;'6}cX - rebuilt
133lIX+(k * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
@okC":Fw, - Updated to dev16, fixing bug #110196.
'O]_A57 - No longer need crlf patch.
L3nHvKA] - Use shipped ja translations.
IJq$GR - Use %find_lang.
?TE#4}p| - Default config file now sets UTF-8 (bug #110986).
6\O4R --------------------------------------------------------------------------------
=0,")aa! 9{ i6g+ ?`\<t$M 包选择选项
xm~ff+(&@S o&*1Mx<+ package_name
gbr|0h> 查询已安装包的package_name。
;eG%#=> Pc? d@tm -a,--all
ceVej' 查询所有已安装拨。
zDa*n:S \I#lLP -f file,--file file
E( 8!VY ^ 找出什么包拥有文件file。
&z{oVU+mA C_O7 -g group,--group group
~u%9@}Oo> 找出什么包拥有组group。
nT|fDD| ,a$LT
-p package_file
kp<9o!?) 查询未安装包package_file
#k)G1Y[c XFYCPET --querybynumber num
OD>-^W t;% 查询第num个数据库条目。主要用于调试。
Jd1eOeS 6JRee[ -qf,--queryformat num
IIop"6Ko 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
28X)s!W' ?ZlwRjB\ --specfile specfile
U <4<8' 查询specfile,就好象它是个包
?Dd2k%o R(pvUm&L --triggeredby pkg
+t.T+`
EG 列出触发安装pkg包的包。
0%FC;v0 J[LGa:`` --whatrequires capability
U@f3V8CPy 列出要求特定能力来行使职责的包。
~ D3'-,n[ s_`wLQ7e --whatprovides capability
9IMRWtZWT 列出提供特定能力的包。
W'gCFX --------------------------------------------------------------------------------
y*Ex5N~JC Dvd.Q/f 2U~oWg2P 信息选择选项:
Ta/G .vpQ3m> -c,--configfiles
|r0j>F 列出包中的配置文件。
?A62VV51CN 1+#Vj# --changelog
dUjdQ 显示有关于包的改变信息的日志。
0pkU1t~9 V7rcnk# -d,--docfiles
'^Sa|WXq 列出包中的文档文件。
y0(k7D|\ K3
]hUe# --dump
NSHlo*)} 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
ZP%^.wxC 以下列顺序输出信息:
P.;B
V", path size mtime md5sum mode owner group isconfig isdoc rdev symlink
",Q \A I gN mp'Lm --filebypkg
;PS[VdV 列出每个包中的所有文件。
r T*:1 zKiKda%) -i
%gw0^^A 显示包的信息,包括名字,版本和描述。
w:N\]=Vh >xP $A{ -l,--list
9^
mrsj 列出包中所有文件
.' .|s?s GueqpEd2 --last
Z71"d" 根据安装时间列出包,最新的包排第一位。
[eWB
vAiW H,H'bd/ --provides
K bwWrf> 列出这个包所提供的实际能力。
5vP*oD ]^Q`CiKd -R,--requires
;AG5WPI 列出这个包所依赖的任何包。
vRT1tOQ$ [IV8 -s,--state
=BX<;vU 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
w
#1l)+ }GGFJ" --scripts
9 .%{M#j 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
]MB^0:F- $,h*xb. --------------------------------------------------------------------------------
]Ff&zBJ .}CPZ3y +Do7rl 卸载
8Cm^#S,+ &p4q# p7, uninstall命令的语法为:
urog.Q vQIoj31 rpm -e package_name
p=7kFv rpm --erase package_name
rcQ?E=V2O ]@WJ&e/'@ 示例:
0c:CA>F c]xpp;% ] [root@localhost ~]# rpm -e lynx
}A2@1TTPX [root@localhost ~]# rpm -q lynx
0V`/oaW; package lynx is not installed
ADHe![6q --------------------------------------------------------------------------------
k (
R o.k#|q # <&=ZLN 卸载选项为:
vEfX'gyk ~'T]B{.+J --allmatches
WJJ!NoP 删除包的所有版本。应该只指定一个包,否则会导致错误。
^M?uv{354 !-\*rdE{9 --nodeps
,L_p"A 在卸载包之前不检查依赖性。
n}?kQOg0/ E[_Z%zd^ --noscripts
TWxMexiW 不执行任何预卸载和后卸载脚本。
r*,]=M W v3@)q0@ --notriggers
x28Bz*O 不执行任何由这个包的删除而出发的脚本。
WddU|-W !5=3Y4bg1 --test
h!)(R< 不真正卸载任何包,仅仅查看活动过程。