Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
6i+AJCkC @-0mE_$[ 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
OI0@lSAo< 'b" 7Lzp2 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
w('}QB`xad Za?BpV~ 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
>bI\pJ --------------------------------------------------------------------------------
`*0VN(gf' UdcV<# P}=n^*8(I 以下简要介绍RPM包的安装,删除和查询
<}.!G>X 45BpZ~- RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
+_ 8BJ 3xRn rpm命令的格式为:
9*~";{O.Oa *yHz#u' rpm [options] [packages]
R4 b!?}d jq#`cay! 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
DGTE#?'( QxbG-B^)= 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
x8c>2w;6x^ --------------------------------------------------------------------------------
PYNY1|3 EqBTN07dZS YnU*MC} RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
*T}c{/ Id8MXdV 以下为rpm --showrc命令显示的节选:
w87$p821 H}&JrT95 示例:
"Q\b6
7Ch wmX(%5vY^ 此为部分显示结果
,jW a&7 [root@localhost ~]# rpm --showrc
}4piZ
ch ARCHITECTURE AND OS:
DTsD<o build arch : i386
?b}e0C-a compatible build archs: athlon i686 i586 i486 i386 noarch
3&"uf9d build os : Linux
9:3`LY3wW compatible build os's : linux
7/KK}\NE install arch : athlon
f`rI]v|@ install os : Linux
cM,g,E} compatible archs : athlon i686 i586 i486 i386 noarch
x1Z'_Qw compatible os's : linux
7$Wbf4 RPMRC VALUES:
?MfwRWY 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
.qf~t/o optflags : %{__global_cflags} -m32 -march=athlon
4\ElMb[] Features supported by rpmlib:
Z:<wB#G rpmlib(VersionedDependencies) = 3.0.3-1
n``9H91 PreReq:, Provides:, and Obsoletes: dependencies support versions.
#RyTa
/L rpmlib(CompressedFileNames) = 3.0.4-1
ugj I$u file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
2[1t
)EW rpmlib(PayloadIsBzip2) = 3.0.5-1
]
X)~D!mA package payload can be compressed using bzip2.
p1.3)=T --------------------------------------------------------------------------------
X$~T*l0 +~:OUR*> CRiqY_gBf rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
e\-,e+ K:VZ#U(_ 示例:
B>S>t5$ zmu+un"\j [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
u|\?6fz Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
+Y;hVcE9 Preparing... ########################################### [100%]
uvR l`"Y 1:lynx ########################################### [100%]
"~zLG" --------------------------------------------------------------------------------
UxF9Ko( ]d Y]`o-dV tnBCO%uG 以下列出一些通用选项(可以用于所有模式):
Yne1MBK ~gQYgv<7 --dbpath path
VV54$a 用path作为RPM数据库的路径。
9pr.`w f)Y~F/[$P --ftpport prot
:AQ9-&i/a- 用port作为FTP端口。
0`v-pL0| #Jp|Cb<qx --ftpproxy host
n{{"+;oR 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
rXBCM +M#}(hK --help
A@:U|)+4 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
MXDCOe~07 !I&,!$ --justdb
^B}q@/KV 只更新数据库;不改变任何文件。
%<p/s;eu 5eyB\>k, --pipe command
~J#Z7y]p!j 用管道把rpm输出到commond。
M_%c9g@x z
yp3+| --quiet
ly_8p63- 仅显示错误信息。
A>mk0P)~Q G^.tAO5:f --rcfile filename
>lyE@S sA 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
0r i 8<ev5af --root dir
SXE@\Afj 在dir目录内执行所有操作。
(c"!&&S^ = q
\fyp\z --version
=[Z3]#h 输出rpm版本号。
\L}7.fkb8 l,3,$ -vv
darbL_1 输出调试信息。
5}! 36SO\ 5'V-Ly)*% --------------------------------------------------------------------------------
\MdieO* Eht8~"fj <9:~u]ixt 安装升级和刷新
9d( M%F (J%>{?"ij 安装或升级一个RPM包,install命令的语法为:
a({N}ZDo Ro `Xs.X rpm -i [install-options] package_file
gq4X(rsyD rpm --install [install-options] package_file
,&fZo9J9 8A::q ; 示例:
jaavh6h) 8TU(5:xJo [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
K:Z(jF!j package lynx-2.8.5-18 is already installed
E`C!q
X> [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
Oz&*A/si+3 --------------------------------------------------------------------------------
>pJ#b= knpdECq&k ~v:IgS 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
?|
6sTu! -okq=9 rpm -U [install-options] package_file
*DZ7,$LQ~D rpm --upgrade [install-options] package_file
\}Iq-Je D,lY_6= 示例:
5Fj9.K~k 4}UJBb? 先安装旧版
F0r2=f(? [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
X8R:9q_ agkKm?xIL 再安装新版
7|_2@4-W6 [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
3-1a+7fD !;d>}iE 显示出新版本信息
rO{?.#~ [root@localhost ~]# rpm -q lynx
JR&yaOws lynx-2.8.5-18
J6>tGKa+e _% \% 说明:
cnw+^8 -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
/EegP@[ c9c3o{(6Y 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
)~ &gBX --------------------------------------------------------------------------------
-xN/H,xok 9HlWoHuC a'n17d& 刷新的语法是:
dV}]\8N \1n (Jr.< rpm -F [install-options] package_file
9Nx%Sdu I _N:j,Mx
rpm --freshen [install-options] package_file
R?2HnJh 4PkKL/E 示例:
Q
8;JvCz Dfc%
jWbA 从未安装过lynx包,使用-F选项,将无法升级。
2+C:Em0yI ;4GGXT++L [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
}QQ 7jE [root@localhost ~]# rpm -q lynx
,`k6@4 package lynx is not installed
/(u? k%Q --------------------------------------------------------------------------------
VZ">vIRyi| ]l +<- n\<7`, 安装和更新选项为:
,S<) ) =VT\$
5A --allfiles
Qnt9x,1m_ 安装或更新所有文件。
#Q-#7|0& \Y8 sIs --badreloc
' u;Zw%O(J 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
qdmAkYUC :*DWL!a --excludedocs
SyT{k\[ 不安装任何文档文件。
P>_9>k@;Q 1w7XM0SHcn --excludepath path
b?lRada{I 不安装文件名以path开始的任何文件。
N7
hl M _O11SiP] --force
d<HO~+9 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
jAv3qMQA u?g&(h -h,--hash
.n4{xQo,EJ 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
^w"hA; ?~.:C' --ignorearch
cR,'aX 即使二进制包用于不同的体系结果也进行安装。
2+S+Y%~ l]Xbd{ --ignoreos
B4* y-Q.* 即使操作系统不匹配也安装二进制包。
q8;MPXSG3 AkdO:hVtG --ignoresize
}m%&|:PH 安装前不检查磁盘的可用空间。
$/5\Hg1 F< 5kcu#iL --includedocs
;T8(byH ? 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
S#He OPRL i "X" -)# --nodeps
#3{}(T7 不检查这个包是否依赖于其他包的存在。
~x+'-2A46 fkImX:|q --noorder
I|>.&nb 安装之前,不为了满足依赖关系而对包进行重新排序。
J7aYi]vI /me ]sOkn --noscripts
pFZ$z?lI 不执行任何预安装或后安装脚本。
TX@ed 9^`cVjD5 --notriggers
NXDkGO/* 不执行任何由包安装触发的脚本。
>&R@L KP UL#:!J/34 --oldpackage
2Oyw#1tdn 允许升级以用旧包替换新包。
quC$<Y 1@|%{c&+9 --percent
m']$)Iqw 当文件被解压时输出完成百分比的信息。
ZU`~@.`i BYHyqpP9 --prefix path
GM1.pVb 把可重定位包的安装前缀设置为path。
t%5bDdo [e@m-/B --replacefiles
&(l.jgqg& 即使包替换了来自其他安装包的文件,也安装这些包。
in,0(I&I )'e1@CR --replacepkgs
wq!9wk9 即使某些包已经被安装,也安装他们。
$sg- P|Wo tX@y ]" --test
_T~&kwe 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
MU2kA&LH PYs0w6o --------------------------------------------------------------------------------
0dS (g&ZR A-_M=\ T /IX(b'< 查询
K`uPPyv Nq\)o{<1 query命令的语法为:
`.3.n8V ADB)-!$xoi rpm -q[information-options] [package-options]
O;McPw<&\: rpm --query[information-options] [package-options]
2@pEiq3 E_[a|N"D 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
z8%qCq --------------------------------------------------------------------------------
zSk`Ou8M * a1q M? `k8j FB C
以下简单示演示一下包查询:
}NGP! x?u@
j7[ 简单查询:
S?a4IK ~)>.%`v& 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
ZGI<L UzIE,A 示例:
+Zr~mwM=x w9RBT(u [root@localhost ~]# rpm -q lynx
.f;@OqU lynx-2.8.5-18
=_g#I --------------------------------------------------------------------------------
ips)-1 #902x*Z'c" R+e)TR7+ 信息查询:
/L@o.[H re#]zc< rpm -qi packagename命令可以得到安装包的汇总信息。
=A{'57yP ahCwA} 示例:
fkX86 [root@localhost ~]# rpm -qi lynx
Lc[TIX Name : lynx Relocations: (not relocatable)
02%~HBS Version : 2.8.5 Vendor: Red Hat, Inc.
iycceZ Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
OT=1doDp
Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
Xo[cpcV Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
Q)M-f;O Size : 4837340 License: GPL
q@XJ,e1A Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
^-n^IR}J Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> (vzYgU, URL :
http://lynx.isc.org/ ~&F|g2: Summary : 一个基于文本的网页浏览器。
_y>drvg Description :
*<SXzJ( Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
yM9>)SE5` 图像,但是它支持框架、表格、以及多数其它 HTML
~UQ<8`@a 标签。Lynx 优于图形化浏览器的地方是它的速度――
jOGiT|A
Links 能够快速启动、退出、及显示网页。
1=sL[I 7< 标识拥有者
@|">j#0 --------------------------------------------------------------------------------
C"0
VOb )D'#>!Y be]/ROP>H 找出什么包拥有文件file:
3&{6+ A sKR%YK
"A 示例:
F s=x+8'M 0.nkh6? [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
!Y7$cU &
lynx-2.8.5-18
y!R9)=/M --------------------------------------------------------------------------------
4MW oGV9 fl9VokAT _?'W30Dg 列表包中的文件:
)^4Ljb1 pr4y*!|Y$ 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
v3t<rv KU0Ad);e 示例:
q(hBqU W 9kqR-T|Q 此为部分显示结果
\dE{[^.5 [root@localhost ~]# rpm -ql lynx
OK`^DIr5l /etc/lynx-site.cfg
PvjZoF[" /etc/lynx.cfg
Pec Zuv /etc/lynx.cfg.cs
UGgo;e /etc/lynx.cfg.ja
F6Q%<p a /etc/lynx.cfg.sk
8'TIDu /usr/bin/lynx
7P*\|Sxk% /usr/share/doc/lynx-2.8.5
fi ~@J` /usr/share/doc/lynx-2.8.5/INSTALLATION
)t7MD( /usr/share/doc/lynx-2.8.5/README
eX}aa0 /usr/share/doc/lynx-2.8.5/docs
'/0e!x/8 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
"zTy_0[; /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
L2}<2 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
7 H:y=?X6 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
F]>+pU
/usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
4@<wN \' /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
xE!0p EHd /usr/share/doc/lynx-2.8.5/docs/CMU.announce
8@S]P0lk /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
~=[5X,Ta /usr/share/doc/lynx-2.8.5/docs/FM.announce
U#iW1jPE2 /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
ed_+bCNy /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
'o0o.&/= /usr/share/doc/lynx-2.8.5/docs/README.TRST
yIngenr$ /usr/share/doc/lynx-2.8.5/docs/README.chartrans
bT
T> 2|B@s3a --------------------------------------------------------------------------------
8<C@I/ $MNJsc^n )Td{}vbIh 列出包所提供的实际能力:
.v'`TD).6 NYG!\u\Rm --provides选项的作用是列出这个包所提供的实际能力。
e 6>j
gy ^*B@= 示例:
3K/tB1 a&)!zhVP [root@localhost ~]# rpm -q --provides lynx
gE=9K @ config(lynx) = 2.8.5-18
8==M{M/eM webclient
k W
8>VnW lynx = 2.8.5-18
2P@6Qe
? --------------------------------------------------------------------------------
Fi;OZ>;a ru`U/6n 4/mz>eK" 列出这个包所倚赖的任何包:
Ya!e83-r KiKw,@ -R,--requires选项的作用是列出这个包所依赖的任何包。
(0`w.n W_ Hoa*~ 示例:
;E.f% n$7*L9)(C [root@localhost ~]# rpm -qR lynx
l;R8"L:,p\ /bin/sh
U,6sR config(lynx) = 2.8.5-18
,`YBTU indexhtml
YN<vOv libc.so.6
!dh:jPpKq libc.so.6(GLIBC_2.0)
Ct~j/. libc.so.6(GLIBC_2.1)
zOFHdd ,"g libc.so.6(GLIBC_2.2)
A<TYt
M libc.so.6(GLIBC_2.3)
Yh@2m9 libcrypto.so.4
A8ef=ljM? libncursesw.so.5
|42;171
libssl.so.4
_29wQn@] libz.so.1
S+wT}_BQ rpmlib(CompressedFileNames) <= 3.0.4-1
~%M*@fm rpmlib(PayloadFilesHavePrefix) <= 4.0-1
shy[>\w --------------------------------------------------------------------------------
)uR_d=B& +c
C.
ZOS Dr=$ }Y 列出包中的配置文件
~!g2+^G7+P :2
:VMIa -c,--configfiles选项的作用是列出包中的配置文件
1-PlRQs.1 (3!6nQj-t 示例:
z#P`m,~t0 `{
HWk^ [root@localhost ~]# rpm -qc lynx
k\j_hu /etc/lynx-site.cfg
"%a<+D /etc/lynx.cfg
%,
iAngF' /etc/lynx.cfg.cs
5/h-Hr /etc/lynx.cfg.ja
T{`VUS/ /etc/lynx.cfg.sk
j;z7T;!i --------------------------------------------------------------------------------
yJ0%6],^g B)L0hi
(#O" 显示有关于包的改变信息的日志:
Vky]In= -Eq[J k --changllog选项的作用是显示有关于包的改变信息的日志。
`#8k Jt l Ib
d9F 示例:
=&9c5"V& Sf.OBU1rs 此为部分显示结果
" Y^9g/ [root@localhost ~]# rpm -q --changelog lynx
%la1-r~ * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
7[mfI?*m - Removed perl dependencies (bug #127423).
+TaxH; * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
w{2CV\^>5 - rebuilt
%0/qb0N& * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
^?sP[;8S! - No longer need lynx-284-ipv6-salen.patch.
Q3^h - No longer need lynx2-8-2-telnet.patch.
S^p^)
fAmF * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
C8T0=o/-` - rebuilt
ZnzO] * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
FkuD Gg~a - Updated to dev16, fixing bug #110196.
j3N d4# - No longer need crlf patch.
N|>JLZ> - Use shipped ja translations.
.QZjJ9pvK - Use %find_lang.
yE,qLiH - Default config file now sets UTF-8 (bug #110986).
,c?(
|tF --------------------------------------------------------------------------------
$ xHtI]T 4cPZGZ{U q165S 包选择选项
OgC,oj,!/ (EosLn
h0 package_name
8-k`"QI= 查询已安装包的package_name。
2fu<s^9dh kN{$-v=K -a,--all
ISK 8t 查询所有已安装拨。
h!|U j r<:d+5" -f file,--file file
uPr!;'J= 找出什么包拥有文件file。
U$+,|\9 ;s3\Z^h4kd -g group,--group group
eiyr^Sch. 找出什么包拥有组group。
GI,TE }
S]!W\a -p package_file
jn(!6\n" 查询未安装包package_file
$cJ fdE ~"J1@< --querybynumber num
e`LkCy[_ 查询第num个数据库条目。主要用于调试。
vxC];nCC# 4Otq3s34FT -qf,--queryformat num
GQhy4ji'z 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
^dhx/e%s hi/d%lNZ --specfile specfile
MMpId
Uhr 查询specfile,就好象它是个包
'7oCWHq[ FJCORa@?_ --triggeredby pkg
GK1nGdT] 列出触发安装pkg包的包。
Y*\h?p[, %g@\SR. --whatrequires capability
Y`eF9Im, 列出要求特定能力来行使职责的包。
"!AtS =SeQ- H# --whatprovides capability
!o?&{"#+ 列出提供特定能力的包。
jIrfJ*z --------------------------------------------------------------------------------
AH/o-$C& UQ;2g\([ ty"L&$bf 信息选择选项:
Z4As'al rEC -c,--configfiles
00dY?d{[D 列出包中的配置文件。
RN[x\" , *c/V('D/ --changelog
,tg]Gt 显示有关于包的改变信息的日志。
$MwBt fmQif]J;; -d,--docfiles
FGyrDRDwC 列出包中的文档文件。
p_&B+
<z x7<l*WQ --dump
fKr_u<| 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
v^s?=9 以下列顺序输出信息:
0|j44e} path size mtime md5sum mode owner group isconfig isdoc rdev symlink
G"-V6CA[ D86F5HT}} --filebypkg
n w`rH* 列出每个包中的所有文件。
YsVKdh e Ru5/y~ -i
HK<S|6B7V 显示包的信息,包括名字,版本和描述。
u pUJF`3 {^N,$,Ab. -l,--list
O#18a,o@ 列出包中所有文件
&g23tT#P? WoGnJ0N q --last
?6&G:Uz/ 根据安装时间列出包,最新的包排第一位。
KGo^>us 8,[ *BgeX --provides
.JB1#&B+ 列出这个包所提供的实际能力。
F*Hovxez Vjt7X"_/ -R,--requires
tx9%.)M:n 列出这个包所依赖的任何包。
W5Pur
lu? HpIi- Es7C -s,--state
ILH[q> 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
5EI"5&`* id :
^| --scripts
4~$U#$u_ 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
~J+
qIZge 5WRqeSGh --------------------------------------------------------------------------------
CALD7qMK U_gkO;s% *!BQ1] G 卸载
;^0ok'P\~9 =LK`mNA uninstall命令的语法为:
.B2e$`s$ M!!vr8} rpm -e package_name
!]A/ID0K rpm --erase package_name
N5=}0s]e ^mFsrw 示例:
w_@{v wM$A qk3~]</ [root@localhost ~]# rpm -e lynx
.-&
=\}^2l [root@localhost ~]# rpm -q lynx
G:lhrT{ package lynx is not installed
ps,Kj3^T< --------------------------------------------------------------------------------
zZRLFfz<9 f-[.^/ 8?kB+}@6X 卸载选项为:
Nv;'Ys P W1xPK* --allmatches
J>#yA0QD2 删除包的所有版本。应该只指定一个包,否则会导致错误。
c?c\6*O )zz{~Cf --nodeps
<kwF<J 在卸载包之前不检查依赖性。
v<2,OcH _:tS-Mx@5 --noscripts
|4j6}g\ 不执行任何预卸载和后卸载脚本。
Z+);}>-5 dQ-g\]d| --notriggers
h@ ZC{B 不执行任何由这个包的删除而出发的脚本。
O_th/hl Zj ` ;IYFG --test
fB]2"( 不真正卸载任何包,仅仅查看活动过程。