Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
U7@)RJ Hg%8Q@ 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
Y~+`F5xX< &nX,)" 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
*&sXC@^@^ U)y~{E~c34 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
R4P$zB_<2 --------------------------------------------------------------------------------
k<cv80lhK 4C[n@p2 1l`$. k 以下简要介绍RPM包的安装,删除和查询
H]JVv8 KXTx{R RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
WA&&*ae5` LJII7<k rpm命令的格式为:
iJD_qhd7 ;V"(! 'd rpm [options] [packages]
~PAbtY9}U >iIUS 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
OP}8u"\Z e:H9! 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
875BD U --------------------------------------------------------------------------------
ezR!ngt `GD>3- 7TN94@kCF RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
sBfPhBT| L_4ZxsIv 以下为rpm --showrc命令显示的节选:
CWk65tcF ={a_?l% 示例:
zkrcsc\Z~0 F&I ;E i 此为部分显示结果
K@PQLL#yJp [root@localhost ~]# rpm --showrc
&^W91C?<6 ARCHITECTURE AND OS:
=z$XqT.' build arch : i386
o>' 1ct compatible build archs: athlon i686 i586 i486 i386 noarch
/ NlT[@T build os : Linux
&R
"Q compatible build os's : linux
3h|:ew[ install arch : athlon
`/z6Q" install os : Linux
T]fu[yRVvg compatible archs : athlon i686 i586 i486 i386 noarch
$M T'ZM compatible os's : linux
}`,}e 259 RPMRC VALUES:
IO\>U(:vx 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
WhR j@y optflags : %{__global_cflags} -m32 -march=athlon
oT\u^WU Features supported by rpmlib:
G}&{]w@ rpmlib(VersionedDependencies) = 3.0.3-1
JM@}+pX PreReq:, Provides:, and Obsoletes: dependencies support versions.
!L#>wlX) rpmlib(CompressedFileNames) = 3.0.4-1
$`emP
Hel file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
u0@i3Po rpmlib(PayloadIsBzip2) = 3.0.5-1
-K_p?
l package payload can be compressed using bzip2.
H-sJt: --------------------------------------------------------------------------------
d,G:+ s2{d<0x?v @ KhDQ0v]5 rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
z3 lZ3 HCI|6{k 示例:
KKd Sh1 rR4_=S<Mi: [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
$`Z-,AJc Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
5UQz6DK Preparing... ########################################### [100%]
4X@
<PX5 1:lynx ########################################### [100%]
cVt
MCgx --------------------------------------------------------------------------------
\tj7Jy ,{HxX0 R7o3X,-iwn 以下列出一些通用选项(可以用于所有模式):
Gyak?.@R D~~&e<v'1 --dbpath path
S0\;FmLIc 用path作为RPM数据库的路径。
+P?!yH,n iwnctI --ftpport prot
HWJ(O/N 用port作为FTP端口。
9y(75Bn9 +0016UgS# --ftpproxy host
El;\#la 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
.a%D:4GYR ieN}Ajl2 --help
S`oADy 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
prvvr;Ib X|}yp| --justdb
.5ap9li] 只更新数据库;不改变任何文件。
uXX3IE[ e6C;A]T2E --pipe command
GJ:65)KU 用管道把rpm输出到commond。
Zl69d4vG QxRT%;'Zh] --quiet
}pJ6CW 仅显示错误信息。
w-%V9]J1 raL!} --rcfile filename
poZ04Uxo> 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
P|>
f O' "|?zQ?E --root dir
<l/QS3M 在dir目录内执行所有操作。
>h^CC*&'pw L|hdV\
--version
AJ_''%$I3: 输出rpm版本号。
;GW[Yw>Rz uhi(Gny. -vv
s}8(__| 输出调试信息。
dWK;
h pFfd6P --------------------------------------------------------------------------------
ftS^|%p f)`_su
U ldd|"[Ds 安装升级和刷新
Lnin;0~{ Sz_bjh yT} 安装或升级一个RPM包,install命令的语法为:
dNH6%1(s]0 nQe^Bn rpm -i [install-options] package_file
/NFk@8<? rpm --install [install-options] package_file
Akar@ wh >o=O^:/L 示例:
[1+ o <gvuCydsh [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
asDk@Gcu package lynx-2.8.5-18 is already installed
8+HXGqcv [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
RO>3U2 --------------------------------------------------------------------------------
:c4iXK0_^? N_3$B= /W vF}y 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
criQa<N" 7Cx*Ts $ rpm -U [install-options] package_file
?8ZOiY( rpm --upgrade [install-options] package_file
<c`+ fPW ZGILV 示例:
9T`$gAI N*J!<vY" 先安装旧版
u'Od~x^z [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
4b\R@Knu GSHJ?}U, 再安装新版
??\1eo2gB [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
"!- {..6{~L 显示出新版本信息
*d~).z) [root@localhost ~]# rpm -q lynx
sBN"eHg lynx-2.8.5-18
$#z
` R; )6~s;y! 说明:
fT]hpoJl -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
rI'kGqU *Z9Rl> 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
8fI]QW --------------------------------------------------------------------------------
2F}D?]A !6`pq wBuos}/ 刷新的语法是:
oouhP1py, TnuaP'xZ rpm -F [install-options] package_file
J!\Cs1!f 8QJ^@|7 rpm --freshen [install-options] package_file
j3-^,r
t4 \!51I./Q/ 示例:
8I>'xf O:%,.??<% 从未安装过lynx包,使用-F选项,将无法升级。
k<Y}BvAYB ' ?4\ [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
9Sb[5_Q [root@localhost ~]# rpm -q lynx
GLBzlZ? package lynx is not installed
r_"=DLx6 --------------------------------------------------------------------------------
ZwFVtR 9} *Pb6 IYG,nt! 安装和更新选项为:
fb=[gK#*, %2I >0 --allfiles
>h
Rq 安装或更新所有文件。
r|ID]}w LBIsj}e --badreloc
TOH+JL8L 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
s7Z+--I)L sZDxTP+ --excludedocs
n:8<Ijrh 不安装任何文档文件。
W2w A66MB g7l?/p[n --excludepath path
Hob n{E 不安装文件名以path开始的任何文件。
"\~d!"n|2 F*4zC@; --force
nB9(y4 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
,]L sX"u <*3#nA-O>i -h,--hash
+HSKFp 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
VprrklZ Q`zW[Y&] --ignorearch
(7 O?NS 即使二进制包用于不同的体系结果也进行安装。
G_E \p%L>] #zed8I:w --ignoreos
dr gCr:Gf 即使操作系统不匹配也安装二进制包。
B1k;!@@14 L;i(@tp|v --ignoresize
:>*0./hG 安装前不检查磁盘的可用空间。
M\D25=( oIv\Xdc8 1 --includedocs
jmJeu@( 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
DmiZ"A .L8g(F(=: --nodeps
1wLEkp!~ 不检查这个包是否依赖于其他包的存在。
oC~+K@S Zv5vYe9Ow --noorder
') K'Ea 安装之前,不为了满足依赖关系而对包进行重新排序。
D$fWeG{f ly::? --noscripts
D}OhmOu3 不执行任何预安装或后安装脚本。
^D?{[LBc Y<;KKD5P'j --notriggers
=3EE-%eF! 不执行任何由包安装触发的脚本。
9P&{Xhs7 b6d}<b9# --oldpackage
^ pNA_s!S 允许升级以用旧包替换新包。
Zq{TY)PI] mCSt.n~ --percent
a49t/ 当文件被解压时输出完成百分比的信息。
rCd*'Qg .s%dP.P:i1 --prefix path
w^^8*b< 把可重定位包的安装前缀设置为path。
(g3DI*Z 2.
f8uq --replacefiles
[8'^" 即使包替换了来自其他安装包的文件,也安装这些包。
M:t"is 4"s/T0C --replacepkgs
/pL'G` 即使某些包已经被安装,也安装他们。
KtcuGI/A Bej k^V~ --test
L}VQc9"gc 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
nq:'jdY5| E&;;2 --------------------------------------------------------------------------------
kZ'wXtBYe NEt_UcC scPvuHzl 查询
[tkP2%1 5Un)d<!7&u query命令的语法为:
lmYyaui wg^'oy rpm -q[information-options] [package-options]
W?gelu] rpm --query[information-options] [package-options]
)v %tyU cd;~60@K 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
oO9yI^ --------------------------------------------------------------------------------
?~X^YxWsY hR,5U=+M7 q>m[vvt" 以下简单示演示一下包查询:
A\v]ZN4 >NZJ-:t 简单查询:
#kp+e)F !=?Q>mz 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
8u"HW~~= <tv"I-2 示例:
wu3p2#-Z $*C'{&2 [root@localhost ~]# rpm -q lynx
@;Xa&* lynx-2.8.5-18
3aFD*S --------------------------------------------------------------------------------
AtP!.p"j 2U) 0k* 5}:`CC2,S~ 信息查询:
Z`>m tJpK/"R' rpm -qi packagename命令可以得到安装包的汇总信息。
]~9YRVeC }Io5&ww:U 示例:
S6{u(=H [root@localhost ~]# rpm -qi lynx
Sz>Lbs Name : lynx Relocations: (not relocatable)
Wux[h8G
Version : 2.8.5 Vendor: Red Hat, Inc.
R/kF,}^F Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
]%+T+zg(Y Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
_*n
4W^8 Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
.}n\c%& Size : 4837340 License: GPL
|b+CXEzo Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
%VS+?4ww Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> TH*}Ja^/ URL :
http://lynx.isc.org/ !"dAwG?S Summary : 一个基于文本的网页浏览器。
U<wM#l
P|Z Description :
t>eeOWk3 Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
!rff/0/x" 图像,但是它支持框架、表格、以及多数其它 HTML
#pk 标签。Lynx 优于图形化浏览器的地方是它的速度――
/-Nq DRmJ Links 能够快速启动、退出、及显示网页。
d8&T62Dnd4 标识拥有者
F_~A8y --------------------------------------------------------------------------------
2 @t?@,c B:(a?X-7 _ c,{}sn 找出什么包拥有文件file:
R+tQvxp# I[bWd{i: 示例:
gq050Bl) 'EG/)0t` [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
[!U!
Z'i lynx-2.8.5-18
I.kuYD62 --------------------------------------------------------------------------------
L4v26*P ?4#wVzuzA WZcAwYB 列表包中的文件:
#^xj"}o@ YA~`R~9d 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
bd)Sb? !nTI(-- 示例:
?7TuE!!M 8p PQ 此为部分显示结果
9}'92 [root@localhost ~]# rpm -ql lynx
BB.120v&N /etc/lynx-site.cfg
-?vVV@W-O^ /etc/lynx.cfg
s,H
}km /etc/lynx.cfg.cs
r)oR`\7 /etc/lynx.cfg.ja
co{i~['u /etc/lynx.cfg.sk
(= Wu5H /usr/bin/lynx
{2LV0:k2 /usr/share/doc/lynx-2.8.5
lA n^)EL /usr/share/doc/lynx-2.8.5/INSTALLATION
0Z
jE(3i /usr/share/doc/lynx-2.8.5/README
c=33O,_ /usr/share/doc/lynx-2.8.5/docs
[FeN(8hGS /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
Xr{
r&Rl /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
YqYobL*q/ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
#BX}j&h_ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
i&0Zli /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
l f_q6y /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
)p[Qj58 /usr/share/doc/lynx-2.8.5/docs/CMU.announce
!&pk^VFl+ /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
*kt%.wPJ /usr/share/doc/lynx-2.8.5/docs/FM.announce
3V3 q
vd /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
69N8COLB /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
aEdc8i? /usr/share/doc/lynx-2.8.5/docs/README.TRST
Vw5Pgt x /usr/share/doc/lynx-2.8.5/docs/README.chartrans
o^Qy71Uj BQ(sjJ$v6F --------------------------------------------------------------------------------
BKQwF*<V $>hH{ Wt!8.d}= 列出包所提供的实际能力:
7x.]
9J -+kTw06_C --provides选项的作用是列出这个包所提供的实际能力。
dm"|\7 n1rJ^q-G 示例:
.5iXOS0
G kcE86Y=|x! [root@localhost ~]# rpm -q --provides lynx
6yXN7L==x config(lynx) = 2.8.5-18
)npvy>C'( webclient
;upYam" lynx = 2.8.5-18
4v.i!U#
{ --------------------------------------------------------------------------------
_vUId?9@+e U[NQ" -P28pVX` 列出这个包所倚赖的任何包:
$|7;(2k } /aqh ;W -R,--requires选项的作用是列出这个包所依赖的任何包。
uex([;y $uYfy< 示例:
rl:D>t(:. >"pHk@AW K [root@localhost ~]# rpm -qR lynx
!Er)|YP /bin/sh
C$^WW}S config(lynx) = 2.8.5-18
PbY=?>0 z indexhtml
n*A"}i`ix libc.so.6
~~{+?v6B] libc.so.6(GLIBC_2.0)
;I]$N]8YI libc.so.6(GLIBC_2.1)
IAb-O libc.so.6(GLIBC_2.2)
R;H>#caJ libc.so.6(GLIBC_2.3)
vec4R )S libcrypto.so.4
4/Xu,pT libncursesw.so.5
Aw=GvCo< libssl.so.4
Ex4)R2c* libz.so.1
QI6=[
rpmlib(CompressedFileNames) <= 3.0.4-1
eOs 4c` rpmlib(PayloadFilesHavePrefix) <= 4.0-1
#oxP,LR --------------------------------------------------------------------------------
3(=QY) q;9OqArq m" c6^)U 列出包中的配置文件
r<EwtO+x Z>J3DH -c,--configfiles选项的作用是列出包中的配置文件
zI.:1(, s1
(UOd7} 示例:
koy0A/\% &?3P5dy_ [root@localhost ~]# rpm -qc lynx
aHBM9 %gV /etc/lynx-site.cfg
R|R3Ob.e /etc/lynx.cfg
\x=!' /etc/lynx.cfg.cs
tW"s^r=95 /etc/lynx.cfg.ja
j:xm>X' /etc/lynx.cfg.sk
%QFeQ(b/( --------------------------------------------------------------------------------
A4f;ftB X{;5jnpG
ee#\XE=A 显示有关于包的改变信息的日志:
Q6=>*}Cm6m 8o[+>W --changllog选项的作用是显示有关于包的改变信息的日志。
2 D!$x+| ]QmY`pTB` 示例:
Jb]22] ts;C:.X 此为部分显示结果
,Zb_Pu [root@localhost ~]# rpm -q --changelog lynx
y.?Q * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
L?r\J8Ch< - Removed perl dependencies (bug #127423).
uEDvdd#V. * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
48[b1#q] - rebuilt
G33'Cgo:, * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
trM)&aQto - No longer need lynx-284-ipv6-salen.patch.
j$=MJN0 - No longer need lynx2-8-2-telnet.patch.
Z~HLa * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
<k7q9"\4 - rebuilt
n/Dk~Q) * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
-ZBSkyMGy - Updated to dev16, fixing bug #110196.
KhPDkD- - No longer need crlf patch.
l#;o^H i - Use shipped ja translations.
~ ]^<*R - Use %find_lang.
:1e'22[=. - Default config file now sets UTF-8 (bug #110986).
9Q:}VpT~nG --------------------------------------------------------------------------------
psB9~EU&Q &z%DX
BH^8!7dkT 包选择选项
eLyaTOZadu z|sR
`]K package_name
Nj;G%KAP
查询已安装包的package_name。
J)_IfbY #(d/A< -a,--all
@4%x7%+[c 查询所有已安装拨。
q?Av5TFf 6Z68n -f file,--file file
5'"l0EuD 找出什么包拥有文件file。
vAo|o* Dv-ubki -g group,--group group
=-8y= 找出什么包拥有组group。
J5*( PxDF >;OwBzB -p package_file
,: 4+hJ<q 查询未安装包package_file
lr&O@
5"oy F)4;:".zna --querybynumber num
* 2s(TW 查询第num个数据库条目。主要用于调试。
n%}Vd
`c (X}Q'm$n\h -qf,--queryformat num
p_l.a 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
}[8Nr+y :gacP? --specfile specfile
rdQ'#}Ix 查询specfile,就好象它是个包
8WL*Pr1I zHW}A
`Rz --triggeredby pkg
%[7<GcWl 列出触发安装pkg包的包。
CHNIL^B Fg-4u&Ik --whatrequires capability
!L\P.FP7b 列出要求特定能力来行使职责的包。
zoI0oA NlV,]
$L1T --whatprovides capability
>KMTxHE`+ 列出提供特定能力的包。
FV W&)-I --------------------------------------------------------------------------------
0xe*\CAo i>n)T #ZvDf5A 信息选择选项:
!xo; $4 }_"<2|~_ -c,--configfiles
_4h[q4Z 列出包中的配置文件。
IL2OVL X 'Xw>?[BB --changelog
+_E96`P 显示有关于包的改变信息的日志。
Th[Gu8b3 +axpIjI' -d,--docfiles
lH8e?zJ 列出包中的文档文件。
u*i[A\Y wSP'pM{#2 --dump
_
BUD~'Q5 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
i!9|R)c 以下列顺序输出信息:
9#A&Qvyywg path size mtime md5sum mode owner group isconfig isdoc rdev symlink
/6Vn WrN_ H(k-jAO, --filebypkg
:UdH}u!Ek 列出每个包中的所有文件。
6}9`z8 (D5.NB%@ -i
s@c.nT%BYL 显示包的信息,包括名字,版本和描述。
z3X:.% Jg\1(ix -l,--list
o$FYCz n 列出包中所有文件
KeiPo KhZi "P_PqM --last
f-b#F2I 根据安装时间列出包,最新的包排第一位。
G8E=E<Yg~ V0!.>sX9
--provides
o}4J|@Hi|4 列出这个包所提供的实际能力。
Oe^oigcM ttaYtV]] -R,--requires
(#"iZv, 列出这个包所依赖的任何包。
hi(uL>\ f<T"# G$5 -s,--state
)5(Ko<" 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
Rw9 *!<Izt DoYzTSWx --scripts
9/x_p;bI 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
RU'
WHk ^.f`6 6/ --------------------------------------------------------------------------------
?{Gf'Y}y& ~
[4oA$[a| jdF~0#vH 卸载
#g6*s+Gm EhBYmc"& uninstall命令的语法为:
:)9^T< ?TXe.h|u rpm -e package_name
w[V71Iej rpm --erase package_name
Pd[&&!+gV ee=d*) 示例:
%`~?w'
XtV=Gr8" [root@localhost ~]# rpm -e lynx
l"-F<^
U [root@localhost ~]# rpm -q lynx
z'FJx2 package lynx is not installed
6*:mc --------------------------------------------------------------------------------
Td`0;R'<}c n #|p R2 #
[0>wEq 卸载选项为:
#q5
L4uM9 X~Yj#@ --allmatches
5l&9BS& 删除包的所有版本。应该只指定一个包,否则会导致错误。
3]iBX`Ni kZsat4r --nodeps
^?5[M^ 在卸载包之前不检查依赖性。
q-;z!iq|! *:*Kdt`'G --noscripts
{'QA0K 不执行任何预卸载和后卸载脚本。
hu
G]kv3F: *UJ&9rQ --notriggers
PJCRvs|X 不执行任何由这个包的删除而出发的脚本。
@AgV7# c-2##Pf_8O --test
^,$>z*WQ. 不真正卸载任何包,仅仅查看活动过程。