Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
] W$V# I Gi9YpI&K 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
$o9@ ?2 W BA7G 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
^~6gkS
} iq^;c syKb 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
d @ l --------------------------------------------------------------------------------
p L^3*B.Nr `M. I.Z_ %<'.c9u5 以下简要介绍RPM包的安装,删除和查询
6eA)d# I6gduvkXi4 RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
YpRhl(|
GV28&!4sS rpm命令的格式为:
p )]x,F & JJ*?Dl rpm [options] [packages]
_ n1:v~ shP}T[< 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
F2ISg' ]0[ot$Da6 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
%iJ}H6m --------------------------------------------------------------------------------
ls7P$qq %o{IQ4Lz# TCIbPsE RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
@8+v6z Ta/u&t4 以下为rpm --showrc命令显示的节选:
*"4l}& MZB}O"
r 示例:
{`T^&bk ,nGQVb 此为部分显示结果
TtKKU4 yp [root@localhost ~]# rpm --showrc
ez)Ks` ARCHITECTURE AND OS:
RCxwiZaf33 build arch : i386
E H%hL5( compatible build archs: athlon i686 i586 i486 i386 noarch
<"xqt7f build os : Linux
G;/l[mvh, compatible build os's : linux
q)KOI`A install arch : athlon
{MTtj4$ install os : Linux
.+<Ka0 compatible archs : athlon i686 i586 i486 i386 noarch
eH[i<Z compatible os's : linux
x5Fo?E RPMRC VALUES:
zA:q/i 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
jUgx
;= optflags : %{__global_cflags} -m32 -march=athlon
A wk1d Features supported by rpmlib:
;sq xFF@ rpmlib(VersionedDependencies) = 3.0.3-1
zK{} PreReq:, Provides:, and Obsoletes: dependencies support versions.
?r5a* rpmlib(CompressedFileNames) = 3.0.4-1
r.6?| file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
,?Zy4- rpmlib(PayloadIsBzip2) = 3.0.5-1
53pT{2]zAi package payload can be compressed using bzip2.
s.n:;8RibP --------------------------------------------------------------------------------
%6m' |(- KrHKM 3< 9zrTf%mF rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
[!8bjc]c 81!;W t(? 示例:
o)x&|0_ <RY!Mc [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
v&3"(fp Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
(I'{
pF) Preparing... ########################################### [100%]
0>]&9'cn 1:lynx ########################################### [100%]
n%iL+I --------------------------------------------------------------------------------
kC6Y?g 4FZ/~Y1} H@~tJ\L 以下列出一些通用选项(可以用于所有模式):
gs0`nysM#
$#3[Z;\ --dbpath path
`Mcg&Mi~ 用path作为RPM数据库的路径。
qPWf=s7! :}/\hz
, --ftpport prot
LP'q$iB! 用port作为FTP端口。
;OD-?bC H\N}0^ea --ftpproxy host
x K\i&A 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
: yq2
XE%r wL^x9O|`p9 --help
; C(5lD&\5 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
i[{*(Y$L qt/6o|V --justdb
PMW@xk^<Y 只更新数据库;不改变任何文件。
lN{>.q@V`r +aPe)U<t --pipe command
N'$P(
bx 用管道把rpm输出到commond。
5MZv!N UvB\kIH --quiet
]#rV]As 仅显示错误信息。
E}a.qM' 4^4T#f2=e --rcfile filename
B4+c3M\$V 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
pv&iJ7RN es\
qnq --root dir
8 ph1xQ' 在dir目录内执行所有操作。
pY&dw4V ?hR0
MnP --version
8m
`Y 输出rpm版本号。
aG4 ^xOD \Cin%S.C -vv
jUR*
| 输出调试信息。
$ndBT+i ]Y76~!N --------------------------------------------------------------------------------
z7)$m0',? gm8JxhL (nuTfmt> 安装升级和刷新
,!g/1m /6yVbo" 安装或升级一个RPM包,install命令的语法为:
b&1hj[`)
U2vb&Qu/ rpm -i [install-options] package_file
fb^R3wd$ff rpm --install [install-options] package_file
nA.U'=` [fb9;,x` 示例:
Zy:q)'D= K V?+9qa, [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
W_Y56@7e package lynx-2.8.5-18 is already installed
R%)F9P$o [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
/Dt:4{aTOC --------------------------------------------------------------------------------
ui|6ih$+ T?=]&9Y' d7zZ~n 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
uk,9N C#1'kQO rpm -U [install-options] package_file
F{.g05^y rpm --upgrade [install-options] package_file
]W~M?1} a\Gd;C ^` 示例:
Nl%5OBm CL-?Mi=Uc 先安装旧版
g/P1lQ) [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
*`/4KMrq \9od*y 再安装新版
U7f
o4y1} [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
_+7P"B|\ mL'A$BR` 显示出新版本信息
QyZ'%T5J [root@localhost ~]# rpm -q lynx
XH/!A`ZK lynx-2.8.5-18
]*U; } Q`Pe4CrWvu 说明:
+u\w4byl -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
+ek6}f# [)I
W9E
v 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
FB>P39u --------------------------------------------------------------------------------
d.B<1"MQ '}(Fj2P79 m6xbO 刷新的语法是:
M\IdQY-c oblw!) rpm -F [install-options] package_file
n:s _2h(u mc@Z+t' rpm --freshen [install-options] package_file
1Ak0A6E een62-` 示例:
^(7l! rd[mC[
r 从未安装过lynx包,使用-F选项,将无法升级。
]; g~)z QqBQ[<_ [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
<pS#wTsN4% [root@localhost ~]# rpm -q lynx
wnLpf package lynx is not installed
}v_|N"@ --------------------------------------------------------------------------------
8(S|=c R 0%IZ -]) bun_R- 安装和更新选项为:
/6\uBy"Xt ?G]yU --allfiles
#,})N*7 安装或更新所有文件。
gQY`qz _ |HA\! --badreloc
$`0,N_C<} 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
M;KeY[u ~=oCou`XF --excludedocs
=_Z.x&fi 不安装任何文档文件。
j"zW0g!S ;>X;cZMd --excludepath path
_)3C_G1! 不安装文件名以path开始的任何文件。
fJ\u8 q%/.+g2-\ --force
('d,Sh 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
JlEfUg#* ;4v`FC> -h,--hash
,,)'YhG( 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
$!z .[GL P(C5@x(Z --ignorearch
Tpkt'|8 即使二进制包用于不同的体系结果也进行安装。
G#uB%:)&0u jC?l :m? --ignoreos
b0se-#+
即使操作系统不匹配也安装二进制包。
3k8.5W %6M%PR~u --ignoresize
!Ow
M-t 安装前不检查磁盘的可用空间。
&/otoAr( I_`NjJ;61 --includedocs
Gs04)KJm< 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
$h=v;1" vJx( lU`Y --nodeps
(gcy3BX; 不检查这个包是否依赖于其他包的存在。
|&bucG= WBzPSnS2 --noorder
L`rrT 安装之前,不为了满足依赖关系而对包进行重新排序。
EgzdRB\Cf {sq:vu@NC --noscripts
a/%qn-i|p 不执行任何预安装或后安装脚本。
"#f5jH -h8Z@r~a/ --notriggers
6D{70onY+ 不执行任何由包安装触发的脚本。
*$1F|G X>]<rEh --oldpackage
yRQNmR;Uy 允许升级以用旧包替换新包。
2:yXeSeA X1V~.kvt) --percent
hOdU% 当文件被解压时输出完成百分比的信息。
2G3Hi;q18 ^R7X!tOq4 --prefix path
YXdo&'Q<qX 把可重定位包的安装前缀设置为path。
AkO-PL gh^w
!tH3 --replacefiles
3 "Qg"\ 即使包替换了来自其他安装包的文件,也安装这些包。
?TmVLny %?S[{ 4A& --replacepkgs
v+<4?]EJ 即使某些包已经被安装,也安装他们。
sdgI , Az>r}*FGr --test
`P*w ZKlW 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
T[cJ 9}q)AL-ga --------------------------------------------------------------------------------
~)ysEZl PklJU:Pu\U d9T:0A`M 查询
5.kKg=a %[ o($a$ query命令的语法为:
'#QZhz(+ !y2yS/ rpm -q[information-options] [package-options]
#TeAw<2U rpm --query[information-options] [package-options]
'I2[}>mj2 ``rYzj_ 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
<0jM07\< --------------------------------------------------------------------------------
AthR|I|8 Ch~y;C&e+r [V5,1dmkI 以下简单示演示一下包查询:
=xb/zu( IiX2O(*ZE 简单查询:
|]Y6*uEX< @?0))@kPc3 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
RE]*fRe7# GW.Y=S 示例:
]RF(0; )}i2x:\|_ [root@localhost ~]# rpm -q lynx
=">0\# lynx-2.8.5-18
lr
-+|>M) --------------------------------------------------------------------------------
=65XT^ WaE%g z`]:\j'O3" 信息查询:
i+I1h= MOuEsm; rpm -qi packagename命令可以得到安装包的汇总信息。
O8LIKD_I[ D8$4P T0u 示例:
$?pfst~;O [root@localhost ~]# rpm -qi lynx
ykGA.wo7/P Name : lynx Relocations: (not relocatable)
Ffd;aZ4n Version : 2.8.5 Vendor: Red Hat, Inc.
]XYD2fR2qA Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
Emk:@$3{r Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
w`zS`+4 Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
UyDq`@h Size : 4837340 License: GPL
}5B\:*yW Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
koj*3@\p/ Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> gf/<sH2} URL :
http://lynx.isc.org/ T[J8zLO Summary : 一个基于文本的网页浏览器。
/\E3p6\* Description :
nD=N MqQ & Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
=%b1EYk 图像,但是它支持框架、表格、以及多数其它 HTML
b~TTz`HZ 标签。Lynx 优于图形化浏览器的地方是它的速度――
u|Ng>lU Links 能够快速启动、退出、及显示网页。
~cfvL*~5 标识拥有者
\GGyz{i --------------------------------------------------------------------------------
W!* P ;9vY5CxzC i3$pqNe 找出什么包拥有文件file:
@CC
6`D Y{X%C\ 示例:
_) UnHp_^
CUaL [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
$vnx)#r3 lynx-2.8.5-18
#"[EVF0%1D --------------------------------------------------------------------------------
P|;f>*^Y J d,9<m$ shVEAT'` 列表包中的文件:
|HwEwL+ }=u#,nDl>$ 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
?MvL}o\| `?"r\Qo< 示例:
!0v3Lu~j 2=naPTP( 此为部分显示结果
bPuO~#iN~ [root@localhost ~]# rpm -ql lynx
c/Li,9cT' /etc/lynx-site.cfg
Zk31|dL /etc/lynx.cfg
1I8<6pi- /etc/lynx.cfg.cs
WkPT6d /etc/lynx.cfg.ja
._&SS,I5VZ /etc/lynx.cfg.sk
++=jh6 /usr/bin/lynx
Rq|]KAN /usr/share/doc/lynx-2.8.5
y%<CkgZS /usr/share/doc/lynx-2.8.5/INSTALLATION
NA#,q 8 /usr/share/doc/lynx-2.8.5/README
ZRFHs>0 /usr/share/doc/lynx-2.8.5/docs
1_M}Dc+J /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
"Sw raq /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
TW1#'G_# /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
l}D /1~d /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
LFvZ 7M\\ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
9)4_@rf% /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
jQ-2SA O /usr/share/doc/lynx-2.8.5/docs/CMU.announce
+Y>oNX1KN /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
]y"=/Nu-Ja /usr/share/doc/lynx-2.8.5/docs/FM.announce
.P ??N /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
8,&Y\b`.. /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
}gd'pgN"t /usr/share/doc/lynx-2.8.5/docs/README.TRST
Z,8t!Y /usr/share/doc/lynx-2.8.5/docs/README.chartrans
*lQa^F A}_pJH --------------------------------------------------------------------------------
pxW*kS R
pT7Nr +HG*T[%/ 列出包所提供的实际能力:
P4 #j;k4P 3L{)Y`P --provides选项的作用是列出这个包所提供的实际能力。
ENFM``dV# n`T4P$pt 示例:
U+!&~C^y WDt 6{5T [root@localhost ~]# rpm -q --provides lynx
"h8fTB\7S\ config(lynx) = 2.8.5-18
}?sC1]-j& webclient
EIPX q lynx = 2.8.5-18
y43ha --------------------------------------------------------------------------------
v
<OZ
#
L$ zA/Fh(uX 3h}i="i 列出这个包所倚赖的任何包:
8U!$()^? d *#.(C9^ -R,--requires选项的作用是列出这个包所依赖的任何包。
#J f|~X}R 示例:
b|\dHi2FT 6r`Xi& [root@localhost ~]# rpm -qR lynx
4I*'(6
,! /bin/sh
o1uM( config(lynx) = 2.8.5-18
6.6?Rp". indexhtml
eK}GBBdO libc.so.6
B|'}HBkP libc.so.6(GLIBC_2.0)
Tf('iZ2+ libc.so.6(GLIBC_2.1)
wNmC1HOh libc.so.6(GLIBC_2.2)
3{|]@ L libc.so.6(GLIBC_2.3)
kr-5O0tmf libcrypto.so.4
Fe.90) libncursesw.so.5
amWKykVS5 libssl.so.4
> iYdr/^a libz.so.1
{$v^2K'C rpmlib(CompressedFileNames) <= 3.0.4-1
)g KC}_h= rpmlib(PayloadFilesHavePrefix) <= 4.0-1
)RQQhB --------------------------------------------------------------------------------
pX1Us+% ]kF1~kXBe + f:!9)C 列出包中的配置文件
zU_dk'&, u^W!$OfZpp -c,--configfiles选项的作用是列出包中的配置文件
^sqzlF M0`1o p1 示例:
[8K :ml Sf@xP.d [root@localhost ~]# rpm -qc lynx
d qO]2d /etc/lynx-site.cfg
dXsD%sG@ /etc/lynx.cfg
OU!."r`9 /etc/lynx.cfg.cs
ImbA2Gcs /etc/lynx.cfg.ja
ES8(:5 /etc/lynx.cfg.sk
s d = bw --------------------------------------------------------------------------------
h.NCG96S po.QM/b
\ D]N)
显示有关于包的改变信息的日志:
?TI]0) U} w@,6 --changllog选项的作用是显示有关于包的改变信息的日志。
s_e*jM1 mc{W\H 示例:
*vq75k$7 ;<"V},
C 此为部分显示结果
0Gu?;]GSv [root@localhost ~]# rpm -q --changelog lynx
k"%sdYkb! * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
>qmNT/ - Removed perl dependencies (bug #127423).
DfVJ~,x~ * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
$8SSu|O+x - rebuilt
pgZQ>% * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
QS1lg - No longer need lynx-284-ipv6-salen.patch.
($W%&(:/ - No longer need lynx2-8-2-telnet.patch.
}>V=J aG * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
Ex
skd} - rebuilt
$xcZ{C * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
ze21Uj1x* - Updated to dev16, fixing bug #110196.
}Z<Sca7 - No longer need crlf patch.
+;M 5Sp - Use shipped ja translations.
0)ZLdF_6 - Use %find_lang.
Qqk(,1u - Default config file now sets UTF-8 (bug #110986).
iSg0X8J) --------------------------------------------------------------------------------
Q{an[9To~P T8x8TN" 1kR. .p<" 包选择选项
IM5[O}aq g:GywXW package_name
ZSyXzop 查询已安装包的package_name。
|f!J-H) &0fV;%N -a,--all
#z7yoP 查询所有已安装拨。
:{B']~Xf w0vsdM;G -f file,--file file
uZ'Z-!=CL 找出什么包拥有文件file。
#9~,d<H 5% }!z~8Y4 -g group,--group group
4^ U%` 1 找出什么包拥有组group。
F^S]7{ $Sa7N%D -p package_file
Ih4$MG6QC 查询未安装包package_file
P"]l/ gGx(mX._L? --querybynumber num
{J,4g:4G 查询第num个数据库条目。主要用于调试。
t1yOAbI )VqPaKZl -qf,--queryformat num
DiTpjk]c` 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
3d4A~!Iz l-S0Gn/'X --specfile specfile
~*<`PD O? 查询specfile,就好象它是个包
q/d?cLgl yPs6_Qo!p --triggeredby pkg
+{C)^!zBK 列出触发安装pkg包的包。
d2^/ J9DI(` --whatrequires capability
{9.UeVz 列出要求特定能力来行使职责的包。
3IB9-wG *X ;ch55\ --whatprovides capability
u0G
tzk 列出提供特定能力的包。
`%"x'B`mM --------------------------------------------------------------------------------
x'..j5 x%HxM~& ]<L~f~vU 信息选择选项:
g j]8/~lr AO|1m$xf -c,--configfiles
^u1Nbo 列出包中的配置文件。
8#- Nx]VM c~;VvYu --changelog
X.[bgvm~C 显示有关于包的改变信息的日志。
cMnN} ' " a,4E{7 -d,--docfiles
!$>b}w' 列出包中的文档文件。
9!Jt}n?!g PHY!yc-LjV --dump
4;r,U{uR 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
%<[{zd1C- 以下列顺序输出信息:
r;*
|^> path size mtime md5sum mode owner group isconfig isdoc rdev symlink
pV;0Hcy w-xigm>{Z --filebypkg
>goHQ30: 列出每个包中的所有文件。
5??}9 ysl#Rwt/2 -i
s S#/JLDx] 显示包的信息,包括名字,版本和描述。
3}&3{kt /!A"[Tyt -l,--list
4[MTEBx 列出包中所有文件
kv, !"< M_.Jmh<&& --last
m%>}T75C^ 根据安装时间列出包,最新的包排第一位。
^cSfkBh }#%Ye CA? --provides
-!O8V 列出这个包所提供的实际能力。
z,7;+6*=L @:#J^CsM+' -R,--requires
jm@M"b'{ 列出这个包所依赖的任何包。
D!/ 4u0m /h.{g0Xc -s,--state
xpo^\E?2 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
#62ThH~ )b>misb/ --scripts
tcsb]/my 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
@G=7A;-pv0 6w{_+=T --------------------------------------------------------------------------------
jw{B8<@s XMT@<'fI y
5=rr3%v 卸载
!>80p~L )oz2V9X{ uninstall命令的语法为:
&GJVFr~z F;h^o !W7r rpm -e package_name
B)1( rpm --erase package_name
K[0z$T\
D15-pz|Q 示例:
u a_w5o7 g\@ .qKF [root@localhost ~]# rpm -e lynx
S.1>bs2 [root@localhost ~]# rpm -q lynx
J5HK1 package lynx is not installed
!6RDq` --------------------------------------------------------------------------------
NCG;`B`i yt="kZ .Y?]r6CC/ 卸载选项为:
LP|YW*i=IQ US"g>WLwJ --allmatches
OY:rcGc`t 删除包的所有版本。应该只指定一个包,否则会导致错误。
BG?>)]6 W|2| v?v --nodeps
7Re\*[)T 在卸载包之前不检查依赖性。
TNA7(<"fV| qm:C1#<p
--noscripts
~D4l64 不执行任何预卸载和后卸载脚本。
j4=iHnE; `67i1w` --notriggers
~n%Lo3RiP 不执行任何由这个包的删除而出发的脚本。
) 5$?e ~+Pe=~a[ --test
eL(<p] 不真正卸载任何包,仅仅查看活动过程。