Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
VB+y9$Y' n*qn8Dq 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
.18MMzdN %B# 8 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
V#-8[G6Ra gM
v0[~;u 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
_4t --------------------------------------------------------------------------------
M0MvOO*ad {,o 0N\( _ Av_jw`m 以下简要介绍RPM包的安装,删除和查询
OxVe}Fym OmECvL'Z RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
#$-`+P kAk+Sq^n rpm命令的格式为:
`c_Wk]i ;[j)g,7{ rpm [options] [packages]
v1s0kdR,> 6.QzT( 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
Ivc/g, p w`YMk 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
HS
1zA --------------------------------------------------------------------------------
$%3%&+z$I <#:ey^q< s `
+cQ RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
,A!0:+ )ocr.wU@ 以下为rpm --showrc命令显示的节选:
q!8aYw+c e:RgCDWL 示例:
sxU
0Fg N/N~>7f 此为部分显示结果
Jm*wlN
[> [root@localhost ~]# rpm --showrc
,9~2#[|lq ARCHITECTURE AND OS:
.OSFLY#[? build arch : i386
GA"zO, compatible build archs: athlon i686 i586 i486 i386 noarch
CR'1, build os : Linux
W v!%'IB compatible build os's : linux
/~;om\7r install arch : athlon
4oRDvn7f& install os : Linux
[I5}q& compatible archs : athlon i686 i586 i486 i386 noarch
W 33MYw compatible os's : linux
v,A8Mk2s# RPMRC VALUES:
p;9"0rj,z 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
._US8 optflags : %{__global_cflags} -m32 -march=athlon
OS$^>1f" Features supported by rpmlib:
zqa7!ky rpmlib(VersionedDependencies) = 3.0.3-1
,LVZ PreReq:, Provides:, and Obsoletes: dependencies support versions.
K)F6TvWv rpmlib(CompressedFileNames) = 3.0.4-1
&O.lIj#FR file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
~~X-$rtU rpmlib(PayloadIsBzip2) = 3.0.5-1
jLv8K package payload can be compressed using bzip2.
aLt2fB1 ) --------------------------------------------------------------------------------
XMw*4j2E wj<fi m>ApN@n rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
@pO2A6Ks YGf<! 示例:
TnQ"c)ta 8t
>nL [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
nv/'C=+L Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
-|_MC^) Preparing... ########################################### [100%]
:SvgXMY@ 1:lynx ########################################### [100%]
M.?[Xpa --------------------------------------------------------------------------------
5v,_ Hgh 'CA{>\F$F+ fm1yZX?` 以下列出一些通用选项(可以用于所有模式):
H[D<G9:
$u
P'> --dbpath path
EE$\8Gx']! 用path作为RPM数据库的路径。
\x;`8H fv/Nf" --ftpport prot
D,P{ ,/ 用port作为FTP端口。
L(+I jiqE^j3; --ftpproxy host
]-"G:r 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
< wi9
&hu>yH>j --help
}WDzzjDR+ 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
^Fpc8D, O QGKH6q --justdb
\45F;f_r6 只更新数据库;不改变任何文件。
TQ5*z,CkS O_\%8*; --pipe command
<NXJ&xs-+ 用管道把rpm输出到commond。
RG_.0'5=hc D0^h;wJ=4+ --quiet
xM)6'= x6 仅显示错误信息。
{;vLM*
' Yhte&,D" --rcfile filename
LR#BP}\b' 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
@L$!hTaP Q@KCODi --root dir
*}) W> 在dir目录内执行所有操作。
7>lM^ :A V:h7}T95 --version
%X|u({(zb 输出rpm版本号。
;2 P }Xvm(
; -vv
vb6kr?-i* 输出调试信息。
,&.$r/x|? 8W Etm} --------------------------------------------------------------------------------
! k 1 Ge+ slzB# \@[,UZ 安装升级和刷新
jn(%v]
RdBIbm 安装或升级一个RPM包,install命令的语法为:
A `{hKS 6H=gura& rpm -i [install-options] package_file
V503 rpm --install [install-options] package_file
0j;q^> "hi03k 示例:
m?kyAW'| yzT4D>1, [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
k%BU&%?1 package lynx-2.8.5-18 is already installed
<RKT
| [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
q=}1ud}1 --------------------------------------------------------------------------------
$<yhEvv Wy%FF\D.Y H@1}_d 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
zz
/4 ()u &r\8VEZq" rpm -U [install-options] package_file
R0%M9;>1 rpm --upgrade [install-options] package_file
oKb"Ky@s (zh[1[a 示例:
)+R n[MMp v2_` iwE 先安装旧版
`nKN|6o#x [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
,J8n}7aI C!|LGzs0 再安装新版
AgZ?Ry [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
GC:q6} }Ba_epM 显示出新版本信息
em'ADRxG+ [root@localhost ~]# rpm -q lynx
<Se9aD lynx-2.8.5-18
z$WLx X8">DR&>Y 说明:
`CI_zc=jx -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
T;?k]4.X xJ2I@*DN 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
|R1T;J<[ --------------------------------------------------------------------------------
i[@13kr 2j}DI"|h 1[T7;i$ 刷新的语法是:
[q_+s _&/ {A|n rpm -F [install-options] package_file
a6-.|tt#t B0%=! & rpm --freshen [install-options] package_file
9h?'zyX
B f:-l}Zj 示例:
S>r",S >=|p30\b 从未安装过lynx包,使用-F选项,将无法升级。
_bi)d201 SI=u-'% [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
ddyX+.LMk [root@localhost ~]# rpm -q lynx
?*%_:fB package lynx is not installed
(6Od --------------------------------------------------------------------------------
^:]$m;v] t:5-Ro (v%24bv 安装和更新选项为:
r:;.?f@ F,{mF2U*$ --allfiles
s<)lC;#e 安装或更新所有文件。
5OppK(Oi*C i5t6$|u:&m --badreloc
[d8Q AO1;) 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
RGE(# {X&lgj --excludedocs
p*&0d@'r 不安装任何文档文件。
?UZt30|1 ?)y^ [9 --excludepath path
dw3Hk$"h 不安装文件名以path开始的任何文件。
z8'1R6nq M{Z
;7n' --force
Ph1XI&us9 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
{VE
h@yn z.!N|"4yr -h,--hash
n+Kv^Y`qxO 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
-g]Rs!w' %^pi --ignorearch
XS [L-NHG 即使二进制包用于不同的体系结果也进行安装。
Ch_rV+ 8s@N NjV --ignoreos
b1.*cIv} 即使操作系统不匹配也安装二进制包。
sfj+-se(K. DzQBWY]
) --ignoresize
/N"3kK,N 安装前不检查磁盘的可用空间。
=d<RgwscJ q.VYPkEib --includedocs
(Z
SaAn), 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
"|L"C+tE *iEtXv --nodeps
a+E&{pV 不检查这个包是否依赖于其他包的存在。
Ve3z5d:^ UtQey ;w --noorder
ir6'
\ 安装之前,不为了满足依赖关系而对包进行重新排序。
>sfg`4 >H!Mx_fDL --noscripts
)rD!4"8/A 不执行任何预安装或后安装脚本。
V@G#U[D N8b\OTk2 --notriggers
fI613ww] 不执行任何由包安装触发的脚本。
K Lg1(W( 3}0\W.jH --oldpackage
6'r8.~O 允许升级以用旧包替换新包。
Sw\*$g] $'498%K2 --percent
[|DKBJ 当文件被解压时输出完成百分比的信息。
sQvRupYRO :oP LluW* --prefix path
:TH cI;PG8 把可重定位包的安装前缀设置为path。
tcuwGs>_ U]iI8c --replacefiles
XH"+oW 即使包替换了来自其他安装包的文件,也安装这些包。
/x6p - {QU>`2 --replacepkgs
l@4_D;b3o" 即使某些包已经被安装,也安装他们。
//q(v,D%Q ;Y$>WKsV --test
&12KpEyf 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
_\ToA9 m
b-&iJ &>' --------------------------------------------------------------------------------
;uUFgDi :8A+2ra& QPJ\Iu@D$ 查询
elOeXYO0 G%<}TI1} query命令的语法为:
wA=r]BT ,#A(I#wL~ rpm -q[information-options] [package-options]
Ymk?@mV4 rpm --query[information-options] [package-options]
h:YD$XE \k.`xG? 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
?Z7`TnG$uf --------------------------------------------------------------------------------
GM%+yS}(P }02`ve* jwDlz.sW! 以下简单示演示一下包查询:
@ _Ey"k< }}AIpYp,P 简单查询:
,c p2Fac FzT.9Vz7 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
.f\LzZ-I: .Pc>1#z&[ 示例:
UN]gn>~j rs&]46i/p [root@localhost ~]# rpm -q lynx
,ks2&e lynx-2.8.5-18
K p3}A$uV --------------------------------------------------------------------------------
z%;plMj RP4/:sO LKIMT 信息查询:
=q4}( ^SdF\uk{?6 rpm -qi packagename命令可以得到安装包的汇总信息。
nw+~:c 0#,a#P 示例:
$)i`!7`4= [root@localhost ~]# rpm -qi lynx
c/;;zc Name : lynx Relocations: (not relocatable)
oL<#9)+2* Version : 2.8.5 Vendor: Red Hat, Inc.
m>@hh#kBg Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
AM}R#86 Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
4xy\ Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
rf.pT+g.P Size : 4837340 License: GPL
u6qK4*eAD Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
]?eZDf~ Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> q2qi~}l URL :
http://lynx.isc.org/ 6j<9Y Summary : 一个基于文本的网页浏览器。
M tN>5k c Description :
|Wh3a# Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
oaY_6 图像,但是它支持框架、表格、以及多数其它 HTML
;O"?6d0 标签。Lynx 优于图形化浏览器的地方是它的速度――
f-ltV<C_ Links 能够快速启动、退出、及显示网页。
*c0H_8e 标识拥有者
@T'^V0!-q: --------------------------------------------------------------------------------
XH%L] \iuR+I lSj
gN~:z 找出什么包拥有文件file:
p8rh`7 l& :EKh 示例:
tcD7OC:"6 ( ;FxKm<P@ [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
DJP6Z lynx-2.8.5-18
2;}leZ@U --------------------------------------------------------------------------------
^|Ap_!t$; p@<Q? &OMlW_FHR 列表包中的文件:
Njq}M/{U o-,."|6 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
YB#fAU rPV
Q#iB 示例:
`+7F H 615Ya<3f8 此为部分显示结果
!NXjax\r [root@localhost ~]# rpm -ql lynx
$%<{zWQm /etc/lynx-site.cfg
?|nl93m /etc/lynx.cfg
7#V7D6j1 /etc/lynx.cfg.cs
IpP%WW u /etc/lynx.cfg.ja
wwUI ;g /etc/lynx.cfg.sk
*}?[tR5 /usr/bin/lynx
YW}$e W* /usr/share/doc/lynx-2.8.5
x.Sf B[SZ /usr/share/doc/lynx-2.8.5/INSTALLATION
i'>6Qo /usr/share/doc/lynx-2.8.5/README
vgfC{]v<W] /usr/share/doc/lynx-2.8.5/docs
^_7|b[Bt /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
oV|O`n /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
({f}Z-% /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
!`69.v /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
9:j?Jvw$ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
Z%t_1t /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
6FUW^dt /usr/share/doc/lynx-2.8.5/docs/CMU.announce
YEL0h0gn /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
})g<I+]Hf9 /usr/share/doc/lynx-2.8.5/docs/FM.announce
W5*ldXXk /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
5{c;I<0 /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
%xt9k9=vZ /usr/share/doc/lynx-2.8.5/docs/README.TRST
"TZq")- /usr/share/doc/lynx-2.8.5/docs/README.chartrans
tpfgUZ{ Z}W{ iD{ --------------------------------------------------------------------------------
fr17|#L+s h\s/rZg=r 2g.lb&3W 列出包所提供的实际能力:
_&<n'fK[ ' \JE># --provides选项的作用是列出这个包所提供的实际能力。
GO"`{|o 7v: XAU 示例:
Y.^L^ "%dF p|>*M\LE# [root@localhost ~]# rpm -q --provides lynx
+8Xjk\Hi config(lynx) = 2.8.5-18
O<u=Vz3c~0 webclient
18&"j 8'm lynx = 2.8.5-18
7]=&Q4e4 --------------------------------------------------------------------------------
Nx}nOm i8iT}^ z@*E=B1L 列出这个包所倚赖的任何包:
Kv_2=]H ; pnF%co9 -R,--requires选项的作用是列出这个包所依赖的任何包。
6$u/N gS wu
<0or2 示例:
i:lc]B %(CC [root@localhost ~]# rpm -qR lynx
f56yI]*N=< /bin/sh
$?= $F config(lynx) = 2.8.5-18
,Qj G|P indexhtml
727#7Bo libc.so.6
S%SYvA libc.so.6(GLIBC_2.0)
&@~K8*tmK libc.so.6(GLIBC_2.1)
-amo8V;2H libc.so.6(GLIBC_2.2)
^y<^hKjV libc.so.6(GLIBC_2.3)
,d"T2Hy libcrypto.so.4
&<&tdShI libncursesw.so.5
jqUVERbc libssl.so.4
i~@gI5[k+ libz.so.1
o9kJ90{D= rpmlib(CompressedFileNames) <= 3.0.4-1
,K5K?C$k rpmlib(PayloadFilesHavePrefix) <= 4.0-1
_4{0He`q --------------------------------------------------------------------------------
73Dxf - 5100fX} {K^5q{u 列出包中的配置文件
bz*@[NQ \GFqRRn -c,--configfiles选项的作用是列出包中的配置文件
U2Ve @. Vt`4u5HG 示例:
}%g[1
#%( #S>N}<> [root@localhost ~]# rpm -qc lynx
lhUGo = /etc/lynx-site.cfg
pPReo) /etc/lynx.cfg
.K
C*
(}- /etc/lynx.cfg.cs
I?T
! /etc/lynx.cfg.ja
inu.U[. /etc/lynx.cfg.sk
HQ-[k$d
W4 --------------------------------------------------------------------------------
wL;OQhI cVi_#9u" ~OD6K`s3 显示有关于包的改变信息的日志:
]LE,4[VxRz 1k[_DQ=^l1 --changllog选项的作用是显示有关于包的改变信息的日志。
Z+xkN z)Rkd0/X 示例:
"x$@^ X5WA-s(?0 此为部分显示结果
CD1Ma8I8 [root@localhost ~]# rpm -q --changelog lynx
R|?n * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
B`SX3,3 - Removed perl dependencies (bug #127423).
]TvMT * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
j.M]F/j - rebuilt
^ AZ#tp%) * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
s_^`t+5 - No longer need lynx-284-ipv6-salen.patch.
h#1:ypA6l - No longer need lynx2-8-2-telnet.patch.
}Qo]~/ * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
vJE=H9E - rebuilt
Bg|d2,im * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
FSuC)Xg - Updated to dev16, fixing bug #110196.
%1&X+s3 - No longer need crlf patch.
| W@ ~mrO - Use shipped ja translations.
N"9^A^w8k - Use %find_lang.
tI^91I - Default config file now sets UTF-8 (bug #110986).
f6r!3y --------------------------------------------------------------------------------
a1,)1y~
?K-4T \8(Je"S 包选择选项
*`a$6F7m4 C(>!?-. package_name
[8u9q.IZ 查询已安装包的package_name。
f2.=1)u. 2Z; !N37U -a,--all
XX=OyDLqP 查询所有已安装拨。
2)EqqX[D 73qE!(
-f file,--file file
QL0q/S1* 找出什么包拥有文件file。
'a(y]QG ximVh}'a -g group,--group group
m2SJ\1 J= 找出什么包拥有组group。
A &}]:4@{ tY$@,>2 v -p package_file
m%9Yo%l~ 查询未安装包package_file
:EW1I>}_ RFM;?!S --querybynumber num
%
J\G[dl 查询第num个数据库条目。主要用于调试。
W@!qp UVDMYA0 -qf,--queryformat num
+ 149 o2 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
gY+d[3N ?;#Q3Y+ --specfile specfile
kTjn%Sn, 查询specfile,就好象它是个包
;X}2S!7Ko 1_7p`Gxt[/ --triggeredby pkg
NG3?OAQTw 列出触发安装pkg包的包。
q,K|1+jn G
1{m" 1M --whatrequires capability
wn"\@Qv G 列出要求特定能力来行使职责的包。
4EYD5 2UQF:R?LQ --whatprovides capability
Zx8$M5 列出提供特定能力的包。
OX,em Ti --------------------------------------------------------------------------------
%C%3c4+Oh 7,)E1dx -V I(UK9H{0$ 信息选择选项:
Q``1^E' OcB&6!1u -c,--configfiles
Av.`'.b 列出包中的配置文件。
1PVZGZxAgv 'qV lq5. --changelog
G/
si( LK 显示有关于包的改变信息的日志。
p*K #s1 +wG
*qI -d,--docfiles
k8G4CFg}wP 列出包中的文档文件。
PY|zN| ZQ"dAR/y --dump
I484cR2. 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
5VE=Oo#& 以下列顺序输出信息:
.BjWZj path size mtime md5sum mode owner group isconfig isdoc rdev symlink
B<~AUf*y 7(5d$ W --filebypkg
uj;iE
9 列出每个包中的所有文件。
xM{[~Kh_x ,7$&gx>2& -i
}S"gZ6 显示包的信息,包括名字,版本和描述。
Q>[{9bI4QP C;ab-gh -l,--list
}<kl3{) 列出包中所有文件
;0Uat hxdjmc- --last
kM-8%a2i 根据安装时间列出包,最新的包排第一位。
vEjf|-Mb9 )4o8SF7lz --provides
;\"5)S 列出这个包所提供的实际能力。
5%wA"_ 9t`yv@.>N -R,--requires
ty[%:eG# 列出这个包所依赖的任何包。
$[_5:@T%N <IU -s,--state
,or;8aYc# 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
[-`s`g- J3+qnT8X --scripts
,1~B7Zd 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
((?"2 }1r TlO=dLR7d --------------------------------------------------------------------------------
LQqba4$ !C4)P3k .WeSU0XG 卸载
Q@p'nE, p v4#`.m uninstall命令的语法为:
:bo2H[U+ 3hkEjR rpm -e package_name
r}Vr_ rpm --erase package_name
dm[JDVv| lB_4jc 示例:
nzO-\`40 Mg0ai6KD [root@localhost ~]# rpm -e lynx
f:nXE&X[ [root@localhost ~]# rpm -q lynx
UQ hD8Z'I. package lynx is not installed
U4Zx1ieCKH --------------------------------------------------------------------------------
HI1|~hOb' /g0' +DP <bn|ni|c" 卸载选项为:
XiV*d06{ J*ofa> --allmatches
lX.1B&T9Lr 删除包的所有版本。应该只指定一个包,否则会导致错误。
|-v/ UU}Hs} --nodeps
ZCK#=:ln 在卸载包之前不检查依赖性。
^-Ks_4 \k$cg~ --noscripts
{y|.y~vW 不执行任何预卸载和后卸载脚本。
f% 8n?f3;u JFu.o8[Q --notriggers
&~<i"
W 不执行任何由这个包的删除而出发的脚本。
+pUYFDwFx @6[aLF]F --test
aA%x9\Y 不真正卸载任何包,仅仅查看活动过程。