Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
nycJZ}f:wP bP$e1I3` 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
Y_*KAr'{P g s1 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
`GqF/?i VT>-* 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
Q']'KU. --------------------------------------------------------------------------------
'(r?($s rs4:jS$) (1S9+H>g 以下简要介绍RPM包的安装,删除和查询
{!(
htg; im<!JMI RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
C,;<SV2# q#Otp\f rpm命令的格式为:
d.ywH; XKp(31]) rpm [options] [packages]
LL:N/1ysG ?}^ y6 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
gz'{l[ \W_ Dz*N 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
G8F;fG N --------------------------------------------------------------------------------
c5f57Z eiOAbO#U im>/$!&OyI RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
hQ%X0X, ^38kxwh 以下为rpm --showrc命令显示的节选:
3mE8tTA$R k!qOE\%B 示例:
zGO_S\ MAqETjB 此为部分显示结果
\py&v5J)s! [root@localhost ~]# rpm --showrc
E]{0lG`l ARCHITECTURE AND OS:
vRmzjd~ build arch : i386
+CEt:KQ compatible build archs: athlon i686 i586 i486 i386 noarch
`h'Ab63 build os : Linux
K~&3etQF compatible build os's : linux
2DZ&g\| install arch : athlon
C>l (4*S install os : Linux
muK)Yw[#N compatible archs : athlon i686 i586 i486 i386 noarch
qyE*?73W compatible os's : linux
y}QqS/ RPMRC VALUES:
kyB>]2 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
O> wGJ. optflags : %{__global_cflags} -m32 -march=athlon
{dl@#Tu Features supported by rpmlib:
^*NOG\BK@ rpmlib(VersionedDependencies) = 3.0.3-1
T2T?)_f /
PreReq:, Provides:, and Obsoletes: dependencies support versions.
&@&^k$du8q rpmlib(CompressedFileNames) = 3.0.4-1
@$ )C pg file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
sQzr+]+#9 rpmlib(PayloadIsBzip2) = 3.0.5-1
up3mum package payload can be compressed using bzip2.
'~6l
6wi --------------------------------------------------------------------------------
^> d"D =:RNpi, \Zk<|T61$ rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
d D^?%,a YBk* CW9 示例:
-fz( ]d G|$n,X1O( [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
VDy_s8Z# Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
P_N},Xry Preparing... ########################################### [100%]
No/D"S# 1:lynx ########################################### [100%]
n{F&GE=" --------------------------------------------------------------------------------
M
w+4atO4[ aOW~! f/M w4&-9[@Y 以下列出一些通用选项(可以用于所有模式):
,Hc,]TPC4
P6ugbq[x#e --dbpath path
MB5X$5it 用path作为RPM数据库的路径。
ukXKUYNm8 "8yDqm --ftpport prot
h3-dJgb 用port作为FTP端口。
k:E+]5 #mv~1tL --ftpproxy host
62xAS#\K> 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
NEMC Q"{Q]IT --help
xHwcP2 1 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
CY.i0 `>$l2, --justdb
P?U}@U~9 只更新数据库;不改变任何文件。
6~(iLtd# *&yt;|y --pipe command
~D Ta%J 用管道把rpm输出到commond。
:sb+jk IQ}YF]I; --quiet
Z|Xv_Xo|4 仅显示错误信息。
WO6; K] []eZO_o6j --rcfile filename
c"@,|wCUi 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
V_7QWIdiy> `wLa.Gzj --root dir
N]@e7P'9F 在dir目录内执行所有操作。
,n+~S^r +QVe - --version
#_OrS/H 输出rpm版本号。
oQ8If$a} !_UBw7Zm -vv
nHi6$}
I 输出调试信息。
5oIgxy naKB2y]l --------------------------------------------------------------------------------
&8wluOs/5 o.H(&ex| Lv?e[GA 安装升级和刷新
(!`]S>_w9 Nl `8Kcv 安装或升级一个RPM包,install命令的语法为:
(|<.7K N a7Rg!%r rpm -i [install-options] package_file
6*H F`@( rpm --install [install-options] package_file
-{XXU )Z Fs EPM"&?h 示例:
DN;An0
{MK 14v,z;HXj [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
;iEFG^'tG package lynx-2.8.5-18 is already installed
{$mj9?n=v [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
~'l.g^p bv --------------------------------------------------------------------------------
?]L:j 55T c _~E&?zR2>" 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
(GdL(H#IL $w$4RQk3n rpm -U [install-options] package_file
f#9\&-he0 rpm --upgrade [install-options] package_file
P7GF"/ &<sN(;%0R 示例:
z2lEHa?w M _z-~G 先安装旧版
a_0G4@=T [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
h[O!kwE T;%ceLD 再安装新版
e/<Og\}P/ [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
`n!<h,S'2 \;>idbV 显示出新版本信息
GUyc1{6 [root@localhost ~]# rpm -q lynx
85fBKpEe lynx-2.8.5-18
HEjrat;5 Nz&J&\X)tD 说明:
3wBc`vJ! -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
Y`u.P(7# <eq93 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
=y/VrF.bV --------------------------------------------------------------------------------
&r;4$7 m"!!) ;Vad| - 刷新的语法是:
TY=BP!s UEJX0= rpm -F [install-options] package_file
*}\!&Zk" IdlW[h3`[ rpm --freshen [install-options] package_file
l\yFx shlL(&Py 示例:
7ST[XLwt%} }cll? 2 从未安装过lynx包,使用-F选项,将无法升级。
dOFxzk,g&R EV@xUq!x. [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
(s,*soAN [root@localhost ~]# rpm -q lynx
xcz1(R package lynx is not installed
D'>yu" --------------------------------------------------------------------------------
|/g\N,] FxC@KZG %cD7}o:u 安装和更新选项为:
@>J4K#" ~PUz/^^
s --allfiles
bf
`4GD( 安装或更新所有文件。
bgd1j,PWbW Got5(^'c --badreloc
PCs+`
WP!M 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
i+&*W{Re n-dO |3, --excludedocs
S5'BXE, 不安装任何文档文件。
Pe/cwKCI +E QRNbA --excludepath path
p~28?lYv 不安装文件名以path开始的任何文件。
JLRw`V,o7 Warz"n]iC --force
'?_;s9) 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
jd=k[Yqr `7Ni bZX0 -h,--hash
@Q3aJ98)2 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
iy8UrgG;l VZJs@qx:Z --ignorearch
j%b/1@I 即使二进制包用于不同的体系结果也进行安装。
6d,jR[JP u
Y/Q]NT --ignoreos
'uBW1, 即使操作系统不匹配也安装二进制包。
w@4q D eQno]$-\ --ignoresize
Z*nC
;5Kd 安装前不检查磁盘的可用空间。
DVRE ;+Jt C2,,+* v --includedocs
sW#6B+5_k 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
a>Uk<#>2?a 9rtcI[&?0 --nodeps
I1
j-Q8 不检查这个包是否依赖于其他包的存在。
8MM#q+8 p}!rPd* --noorder
9~<HTH 安装之前,不为了满足依赖关系而对包进行重新排序。
RT8xU;
S?*v p= --noscripts
v'S}&zmF] 不执行任何预安装或后安装脚本。
(J][(=s;a MVH^["AeR --notriggers
v$w!hYsQ 不执行任何由包安装触发的脚本。
q/?#+d a84^"GH7 --oldpackage
I)]wi% 允许升级以用旧包替换新包。
9n$GeRO 8k]'P*9ulz --percent
2r"-X 当文件被解压时输出完成百分比的信息。
%w,
{$ HW_\w --prefix path
oJUVW"X6 把可重定位包的安装前缀设置为path。
UBrYN'QRNt sYiegX`1c --replacefiles
@/ wJW``; 即使包替换了来自其他安装包的文件,也安装这些包。
_LFZ 0 M&~3fRb4 --replacepkgs
jnYFA[Ab 即使某些包已经被安装,也安装他们。
OA_:_%a( kz(%8qi8& --test
O$E3ry+? 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
lq}= &)%C ddmTMfH --------------------------------------------------------------------------------
,o]"G[Jk >
F&Wuf GNA:|x 查询
l&(,$RmYp [2gK^o&t query命令的语法为:
p-GlGEt_X =M>1;Qr<Z/ rpm -q[information-options] [package-options]
81fpeoNO rpm --query[information-options] [package-options]
KcglpKV` B t-o:)pa 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
# nwEF QA
--------------------------------------------------------------------------------
W^ict,t p[VBeO^% V{p*N* 以下简单示演示一下包查询:
DF-`nD L"&j(|{ 简单查询:
D+]#qS1q )C5<puh 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
^rMkCA@;TZ ^I@1y}xi 示例:
Eg-3GkC ~C6d5\ [root@localhost ~]# rpm -q lynx
n$g g$< lynx-2.8.5-18
fHCLsI --------------------------------------------------------------------------------
8 sZ~3 \?{nP6= ,di'279| 信息查询:
^6bU4bA
XZLo*C!MG rpm -qi packagename命令可以得到安装包的汇总信息。
ME7jF9d X}Bo[YoY$ 示例:
.p NWd [root@localhost ~]# rpm -qi lynx
uV!Ax*' Name : lynx Relocations: (not relocatable)
ATp7:Q Version : 2.8.5 Vendor: Red Hat, Inc.
v*SSc5gFG Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
Lg0Vn&k Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
K9B_o, Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
%Sr/'7 K Size : 4837340 License: GPL
v=zqj}T Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
R5c
Ya Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> O}I8P")m URL :
http://lynx.isc.org/ ?Y7'OlO Summary : 一个基于文本的网页浏览器。
Gx
ci Description :
m=<Tylv Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
CB{%~ 图像,但是它支持框架、表格、以及多数其它 HTML
REUWK#> 标签。Lynx 优于图形化浏览器的地方是它的速度――
$_CE!_G&) Links 能够快速启动、退出、及显示网页。
e>vV8a\ 标识拥有者
Q?-HU,RBO --------------------------------------------------------------------------------
23 j{bK U]tbV<m% d0ThhO 找出什么包拥有文件file:
86NAa6BW ,#3u.=IR[ 示例:
np,L39:sf 4A^=4"BCV [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
~V&4<=r` lynx-2.8.5-18
8.FBgZh* --------------------------------------------------------------------------------
Pz#D9.D0 ngJi;9X8*t }`#OA]NZ 列表包中的文件:
ivg:`$a[ NfvvwG;M 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
/cHd&i,> T&Z%=L_Q 示例:
g
/D@/AU1u ],CJSA!5F 此为部分显示结果
iJ.P&T9 [root@localhost ~]# rpm -ql lynx
"D0:Y(\ /etc/lynx-site.cfg
qOy3D~ /etc/lynx.cfg
e FDhJ /etc/lynx.cfg.cs
1-[~} /etc/lynx.cfg.ja
+]Ca_` /etc/lynx.cfg.sk
8:^`rw4a0 /usr/bin/lynx
KNT(lA0s /usr/share/doc/lynx-2.8.5
q] g'rO' /usr/share/doc/lynx-2.8.5/INSTALLATION
*#+e_)d /usr/share/doc/lynx-2.8.5/README
EH))%LY1y /usr/share/doc/lynx-2.8.5/docs
F[PIo7?K /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
*lHI\5 /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
:K&> /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
2,,zN-9mt /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
`L p3snS /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
YT7,=k _ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
U: 6 J ~ /usr/share/doc/lynx-2.8.5/docs/CMU.announce
z
d
9Gi5& /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
.Rt_j
/usr/share/doc/lynx-2.8.5/docs/FM.announce
/3|uU /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
f1GV6/| m /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
YT!QY@qw /usr/share/doc/lynx-2.8.5/docs/README.TRST
w5*?P4P /usr/share/doc/lynx-2.8.5/docs/README.chartrans
#hL<9j XrR@cDNx{ --------------------------------------------------------------------------------
}p-<+sFo ]jo^P5\h> 0v6(A4Y 列出包所提供的实际能力:
r,}U-S.w &_X6m0z --provides选项的作用是列出这个包所提供的实际能力。
48X;'b,h J u5<wjQR\ 示例:
XVXiiQ^
i8R.Wl$l [root@localhost ~]# rpm -q --provides lynx
Abr:UEG config(lynx) = 2.8.5-18
:$Lu
V5 webclient
NJJsg^' lynx = 2.8.5-18
nLK%5C --------------------------------------------------------------------------------
U9:?d>7 "0Xa?z8" \(UEjlo 列出这个包所倚赖的任何包:
`>:ozN#)\ =XWew* -R,--requires选项的作用是列出这个包所依赖的任何包。
ydp?%RB3w TTjj.fq6 示例:
h%e}4U@X )@DT^#zR [root@localhost ~]# rpm -qR lynx
S-^y;#= /bin/sh
RB1c!h$u config(lynx) = 2.8.5-18
[\N,ow,n indexhtml
n"B"Aysz libc.so.6
(1e;7sNG@ libc.so.6(GLIBC_2.0)
) *:<3g!
libc.so.6(GLIBC_2.1)
cy=,Dr9O libc.so.6(GLIBC_2.2)
2^ 'X libc.so.6(GLIBC_2.3)
<d$kGCz libcrypto.so.4
B.2F\ub g libncursesw.so.5
5A]IiX4Z libssl.so.4
9:0JWW^so libz.so.1
hg7`jE&2 rpmlib(CompressedFileNames) <= 3.0.4-1
K~$o2a
e rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Nx4_Oc^hY --------------------------------------------------------------------------------
FY"!%)TV Zab5"JR @
?y(\> 列出包中的配置文件
BBw]>* & i|x2;
v -c,--configfiles选项的作用是列出包中的配置文件
}x% ;y]S YIs (Q
示例:
,ZjbbBZ k!E`Xeob [root@localhost ~]# rpm -qc lynx
+:w9K!31- /etc/lynx-site.cfg
M@@"-dy /etc/lynx.cfg
Y<Y5HI" /etc/lynx.cfg.cs
_QCspPT' c /etc/lynx.cfg.ja
2&fIF}vk>m /etc/lynx.cfg.sk
aE.T%xR --------------------------------------------------------------------------------
drTX ]5D?Sc#- 30]?Jz6m 显示有关于包的改变信息的日志:
vvw6 GB,M !pl< --changllog选项的作用是显示有关于包的改变信息的日志。
R7cY$K{j M9*7r\hqYV 示例:
1fwCQM :av6*&+ 此为部分显示结果
%,%s09tO [root@localhost ~]# rpm -q --changelog lynx
7QL>f5Q * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
dix\hqZ - Removed perl dependencies (bug #127423).
O?NAbxkp * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
e#IED!U - rebuilt
~d_Z?Z * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
2J rr;"r - No longer need lynx-284-ipv6-salen.patch.
MdT'xYomzQ - No longer need lynx2-8-2-telnet.patch.
-fVeE<[ * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
Hx2.2A^ - rebuilt
[>&Nhn0iY * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
f33'2PYl - Updated to dev16, fixing bug #110196.
Wfkm'BnV - No longer need crlf patch.
Lhu2;F\/ - Use shipped ja translations.
L<]j& - Use %find_lang.
|{cdXbr - Default config file now sets UTF-8 (bug #110986).
GEfX,9LF & --------------------------------------------------------------------------------
<I'kJ{" sxJKu 5gZ0a4 包选择选项
g*\u8fpRq bG67TWY) package_name
wlBdA 查询已安装包的package_name。
kvv-f9/- {4ON2{8;4 -a,--all
d6,%P6 查询所有已安装拨。
@^}
%
o-: 0}hN/2}& -f file,--file file
?/)Mt(p 找出什么包拥有文件file。
7J./SBhB LslQZ]3MY -g group,--group group
V=k!&xN~ 找出什么包拥有组group。
6G7B&"& 8qp!S1Qnv -p package_file
)<9g+^ 查询未安装包package_file
Df02#493 ?2OT :/ I, --querybynumber num
b*qkox;j 查询第num个数据库条目。主要用于调试。
FIlw f!e8xDfA -qf,--queryformat num
?(>7v[=iT 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
lZV]Z3=p'0 }\=9l<| --specfile specfile
?tE}89c 查询specfile,就好象它是个包
X_+`7yCi"x t*zve,?} --triggeredby pkg
9fMg? 列出触发安装pkg包的包。
oh%T4$ IJx dbuKg --whatrequires capability
6Bmv1n[X^h 列出要求特定能力来行使职责的包。
a+)Yk8%KY Usk@{ --whatprovides capability
pK1P-!c 列出提供特定能力的包。
f'\I52;FB --------------------------------------------------------------------------------
c%>t(ce`Tl |;6FhDW+' 5*[zIKdt2 信息选择选项:
6#7f^uIK FT/H~|Z> -c,--configfiles
dP
T)& 列出包中的配置文件。
].pz
N~EM`d --changelog
`5< 显示有关于包的改变信息的日志。
`(H]aTLt , *y5d&4G2 -d,--docfiles
91E!4t}I 列出包中的文档文件。
ruS/Yh %<O'\&!, --dump
)J<Li!3 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
ipjl[ 以下列顺序输出信息:
YNn,{Xi path size mtime md5sum mode owner group isconfig isdoc rdev symlink
PDREwBX ?'P8H^K6u --filebypkg
0?BT* 列出每个包中的所有文件。
-0YS$v%au> Tcz67&c |W -i
S"CsY2; 显示包的信息,包括名字,版本和描述。
"^;'.~@e8 `O.*qs5 -l,--list
uKo)iB6D 列出包中所有文件
j +@1frp ? =_l=dR --last
0gm+R3;k^ 根据安装时间列出包,最新的包排第一位。
?#ndMv!$ \ s`'3y --provides
@NlnZfMu 列出这个包所提供的实际能力。
~ d/Doi v#IW;Rj8 -R,--requires
%g5weiFM 列出这个包所依赖的任何包。
#lM!s Mto3Ryic! -s,--state
W>wIcUP<< 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
cm%QV? Q
{3"& --scripts
@'?<92A 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
$f_;>f2N *hF5cM[ --------------------------------------------------------------------------------
M cNj TD p
W:[Q\rSj Q pz01x 卸载
8~ .r/!wfy >sm<
< gVb uninstall命令的语法为:
A{: a kK <uU AAHi rpm -e package_name
AQ32rJT8c` rpm --erase package_name
I/|)? OC#o JwC 示例:
8n?P'iM 6>%)qc$i [root@localhost ~]# rpm -e lynx
g4=}]. [root@localhost ~]# rpm -q lynx
0jrcXN~ package lynx is not installed
_;yp^^S --------------------------------------------------------------------------------
~uq J@#o{ 8{6KWqG\ *P$5k1 卸载选项为:
JZD27[b uDafPTF --allmatches
FGr0W|?v 删除包的所有版本。应该只指定一个包,否则会导致错误。
|m"2B]"@
1mJBxg}( --nodeps
qK:.j 在卸载包之前不检查依赖性。
A_{QY&%m RA+Y ./*h --noscripts
cwz
% LKh 不执行任何预卸载和后卸载脚本。
{p9y{$ wQ2'%T|t --notriggers
5ii`!y 不执行任何由这个包的删除而出发的脚本。
<gZC78}E qX0IHe --test
"h_n/}r= 不真正卸载任何包,仅仅查看活动过程。