Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
#Mg lHQO+ f|#8qiUS 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
]rnXNn; Ssf+b!e] 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
}"n7~| e=7W7^"_ 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
L%XXf3;c --------------------------------------------------------------------------------
~,gLplpG0 r1;e 0\?` )&,K94
以下简要介绍RPM包的安装,删除和查询
]IS;\~ 84^[/d;! RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
dMV=jJ%Y bK4&=#Zh rpm命令的格式为:
x,\!DLq:p R*bmu rpm [options] [packages]
4sIXO NI.`mc6Xd 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
{fU?idY)c qp&4 1 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
`|EH[W&y --------------------------------------------------------------------------------
\2>?6zs nvt$F%+ h>klTPM> RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
I+",b4 VoM6 以下为rpm --showrc命令显示的节选:
"r. . OJpj}R 示例:
LG&5VxT=,< |` "? 此为部分显示结果
2m" _z [root@localhost ~]# rpm --showrc
\ha-"Aqze3 ARCHITECTURE AND OS:
+/y]h0aa build arch : i386
A=X-;N# compatible build archs: athlon i686 i586 i486 i386 noarch
\[ M_\&GC build os : Linux
$;`I,k$0>~ compatible build os's : linux
=X@o@1 install arch : athlon
=|,A%ZGF$ install os : Linux
=cn~BnowY compatible archs : athlon i686 i586 i486 i386 noarch
41yOXy ;~l compatible os's : linux
0x ~`5h RPMRC VALUES:
^A!$i$NON 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
`WnQ optflags : %{__global_cflags} -m32 -march=athlon
smup,RNZRX Features supported by rpmlib:
cDeZMsV rpmlib(VersionedDependencies) = 3.0.3-1
utH%y\NMF| PreReq:, Provides:, and Obsoletes: dependencies support versions.
S-!=NX&C rpmlib(CompressedFileNames) = 3.0.4-1
0
iRR{a< file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
"hPCQp`Tj rpmlib(PayloadIsBzip2) = 3.0.5-1
6/1$<!WH package payload can be compressed using bzip2.
V`bs&5#Sx --------------------------------------------------------------------------------
si(cOCj/ 7ZsA5%s=, -DCa
rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
4pPI'd&/7 e_rzA 示例:
/oL8;:m K5`Rk"s [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
MhxDV d Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
e&1\'Zq?> Preparing... ########################################### [100%]
IzUo0D*@ 1:lynx ########################################### [100%]
CVQB"L --------------------------------------------------------------------------------
,S!w'0k|n :=fvZA WD >qh?L#Fk 以下列出一些通用选项(可以用于所有模式):
KOSQQf
o y LM"+.?pL --dbpath path
{rXs:N@ 用path作为RPM数据库的路径。
PJ
q yvbD .:9s}%Zr --ftpport prot
zOB=aG?/ 用port作为FTP端口。
f$F*3 "HlgRp]u --ftpproxy host
f /y` 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
v\%G|8+] a$JLc a --help
T3 pdx~66 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
-JV~[-, lZWX7FO' --justdb
z$[C#5+2 只更新数据库;不改变任何文件。
LFu%v7L` H%}IuHhN) --pipe command
`78V%\ 用管道把rpm输出到commond。
~?U*6P)o 2R.2D'4)` --quiet
Q6'nSBi:A_ 仅显示错误信息。
gEJi[E@ ||eAE) --rcfile filename
-iN.Iuc{b_ 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
i8PuC^] :&w{\-0{ --root dir
^^Jnv{) 在dir目录内执行所有操作。
lE5v-z? &| glUo7^ay7 --version
,)fkr]`< 输出rpm版本号。
#"f'7'TE !GK$[9 -vv
Fn|gVR 输出调试信息。
Hs(D/&6% ofdZ1F --------------------------------------------------------------------------------
Is.WZYa XFqJ 'R q4k@l 安装升级和刷新
x?yD=Mq_ -J0WUN$2* 安装或升级一个RPM包,install命令的语法为:
.tXtcf/ (pR.Abq rpm -i [install-options] package_file
m7qqY
rpm --install [install-options] package_file
l!~
mxUb ktH8as^54! 示例:
SUtf[6 /Cr/RG:OX [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
b.yh8|& package lynx-2.8.5-18 is already installed
slW3qRT\k [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
T-" I9kM --------------------------------------------------------------------------------
"ZMkL)'7- ]MTbW=*}ED q/&y*)&'O 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
!|G(Yg7C (lH,JX`$a rpm -U [install-options] package_file
USPTpjt8R rpm --upgrade [install-options] package_file
O8u3y ~H6;I$e[ 示例:
\h{r;#g G*}F5.>8( 先安装旧版
saZ>?Owz [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
>_ \<E!j LMl~yqM 再安装新版
9.+/~$Ht
[root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
,L YFEq_ `,Vv["^ PB 显示出新版本信息
-_^c6!i [root@localhost ~]# rpm -q lynx
F[`ZqW lynx-2.8.5-18
#Gf+=G i+vsp@d 说明:
u<tk G B -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
F
# YPOH 'cd N3i( 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
+: Ge_- --------------------------------------------------------------------------------
lE#m]D ,^s )R)a@op 刷新的语法是:
Rm>^tu
- j|(Z#3J rpm -F [install-options] package_file
&Ral+J ;?L\Fz(< rpm --freshen [install-options] package_file
Tupiq /2uQCw&x- 示例:
+Ov2`O8? % 4 ~l 从未安装过lynx包,使用-F选项,将无法升级。
:`,3h% }At{'8*n [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
`$5UHa2/ [root@localhost ~]# rpm -q lynx
a}nbo4jK package lynx is not installed
mxG ]kqi --------------------------------------------------------------------------------
"4xfrlOc NX6nQ ' [0AHM 安装和更新选项为:
`sHuM* +V(5w`qx --allfiles
JhK/']R 安装或更新所有文件。
)9j06(<A -pb&-@Hul --badreloc
peVq+(=. 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
[J#1Ff; Bx~[F --excludedocs
_7)F
? 不安装任何文档文件。
%b!-~
Y.
j2n,f7hl. --excludepath path
O}ejWP8> 不安装文件名以path开始的任何文件。
qN|
fEO> VHUW]8We --force
30cd|
S? 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
&XLD S=j 9uB(Mx(-:` -h,--hash
wsfd8T4 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
\}]iS C.2 ra7uU* --ignorearch
qv{o|g
QB 即使二进制包用于不同的体系结果也进行安装。
j6}R7$JR ZU&"73 --ignoreos
fZWGn6$ 即使操作系统不匹配也安装二进制包。
90N`CXas mj,fp2D;% --ignoresize
Wsj=!Obc 安装前不检查磁盘的可用空间。
F@<0s&)1 n-;y*kD --includedocs
}-<zWI{p 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
qCMl!g' f^<6`Aeq --nodeps
vwGeD|Fb5 不检查这个包是否依赖于其他包的存在。
hsLzj\)6 L;t)c --noorder
#VbVsl 安装之前,不为了满足依赖关系而对包进行重新排序。
jFG0`n}I t,%iL --noscripts
!^fa.I'mM 不执行任何预安装或后安装脚本。
^s/ f<jb=\}x --notriggers
Q[ieaL6& 不执行任何由包安装触发的脚本。
hq>Csj==@ g=)J~1&p --oldpackage
<g2_6C\j 允许升级以用旧包替换新包。
n]!fO
6kj mryN} --percent
&lc8G 当文件被解压时输出完成百分比的信息。
L):qu [Gr*,nVvB --prefix path
y6HuN 把可重定位包的安装前缀设置为path。
tJI,r_ w5C*L)l --replacefiles
F1azZ( 即使包替换了来自其他安装包的文件,也安装这些包。
3ha|0[r9 -\$`ic$"1 --replacepkgs
)|#%Czd4 即使某些包已经被安装,也安装他们。
_sHK*&W{CT xBnbF[ --test
Zf*r2t1&P 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
KU&G;ni2 _Tm0x>EM --------------------------------------------------------------------------------
N]/!mo? r8M Zvm2 /i|z.nNO 查询
':
F}3At Tp%(I"H'_; query命令的语法为:
pa
.K-e)Mu 3eIr{xs rpm -q[information-options] [package-options]
nY? rpm --query[information-options] [package-options]
}k$4/7ri g<*jlM1r 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
S4NL "m --------------------------------------------------------------------------------
eo]#sf@\0 e,1u @)YY\l# 以下简单示演示一下包查询:
/!FWuRe^ *=F(KZ 简单查询:
tV;%J4E' HaNboYW_K 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
/)|X.D v@
C,RP9 示例:
Ps[$.h zi]%Zp [root@localhost ~]# rpm -q lynx
[G|mY6F^ lynx-2.8.5-18
Y#V8(DTyH --------------------------------------------------------------------------------
>
dZ3+f !4#"!Md4o P1kB>"bR 信息查询:
0`#(Toe{B =odkz}bU rpm -qi packagename命令可以得到安装包的汇总信息。
KlxN~/gyik >O`l8tM 示例:
eBW=^B"y+ [root@localhost ~]# rpm -qi lynx
Jcf"#u-Q/ Name : lynx Relocations: (not relocatable)
P!g-X%ngo Version : 2.8.5 Vendor: Red Hat, Inc.
X~T/qFS Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
C"<s/h Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
~Vh =5J~ Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
my\&hCE Size : 4837340 License: GPL
Iq5pAHm>M6 Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
b}z`BRCc Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> .#6MQJ]OH URL :
http://lynx.isc.org/ RNJFSD. Summary : 一个基于文本的网页浏览器。
Va<HU:< Description :
jRZ%}KX Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
0NE{8O0;Fr 图像,但是它支持框架、表格、以及多数其它 HTML
5a`%)K 标签。Lynx 优于图形化浏览器的地方是它的速度――
|WQ9a' ' Links 能够快速启动、退出、及显示网页。
6.Ie\5-a; 标识拥有者
&]p}+{ (> --------------------------------------------------------------------------------
".2K9j7$ s'I)A^i+ V-W'RunnW 找出什么包拥有文件file:
L^Wz vv] ?H|T&66 示例:
x!7yU_ls` -$8.3\6h [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
L_O$>c lynx-2.8.5-18
7_jE[10 --------------------------------------------------------------------------------
mX# "+X| 6Z:YT&,f C0)Z6 列表包中的文件:
$n=lsDnhQ {")\0|2\x 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
GlYly5F '?Bg;Z'L % 示例:
\ {|ImCH x-m/SI]_N 此为部分显示结果
w<wV]F* [root@localhost ~]# rpm -ql lynx
`^F: - /etc/lynx-site.cfg
_2Zp1h, /etc/lynx.cfg
=yiOJyx /etc/lynx.cfg.cs
7qIB7 _K5
/etc/lynx.cfg.ja
'&yg{n /etc/lynx.cfg.sk
O12Q8Oj!0 /usr/bin/lynx
@"87F{! /usr/share/doc/lynx-2.8.5
*YV
S|6bs /usr/share/doc/lynx-2.8.5/INSTALLATION
4cgIEw[6 /usr/share/doc/lynx-2.8.5/README
0irr7Y /usr/share/doc/lynx-2.8.5/docs
w<nv!e? /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
2ypIq /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
laREjN/\` /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
ZW4aY}~)$ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
mf$j03tu /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
UsW5d]i}Y /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
t 0O4GcAN /usr/share/doc/lynx-2.8.5/docs/CMU.announce
f?UzD#50D /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
`iixq9xi /usr/share/doc/lynx-2.8.5/docs/FM.announce
%_)zWlN /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
|"7Pv
skT /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
{[OwMk /usr/share/doc/lynx-2.8.5/docs/README.TRST
1=GI&f2I /usr/share/doc/lynx-2.8.5/docs/README.chartrans
kA?_%fi1 E%pz9gcSx --------------------------------------------------------------------------------
H
oy7RC& RIy\u> 8n)WW$ 列出包所提供的实际能力:
]r"Yqv3 Zr/r2 --provides选项的作用是列出这个包所提供的实际能力。
gQVBA % e1(h</M U2 示例:
RXSf,O __N.#c/l{ [root@localhost ~]# rpm -q --provides lynx
!vqC+o>@ config(lynx) = 2.8.5-18
Jbw!:x
[ webclient
HkjEiU lynx = 2.8.5-18
'p}`i/ --------------------------------------------------------------------------------
dk5|@?pe Bq}x9C&< pdz'!I 列出这个包所倚赖的任何包:
LJuW${Y sg?@qc=g -R,--requires选项的作用是列出这个包所依赖的任何包。
Z6s5M{mE "dCzWFet 示例:
Uene=Q6> Ie_I7YJ [root@localhost ~]# rpm -qR lynx
;iX<`re~ /bin/sh
5w3Fqu>39? config(lynx) = 2.8.5-18
xy^1US,L1 indexhtml
%J P!{mqj libc.so.6
8 njuDl libc.so.6(GLIBC_2.0)
$G";2(-k libc.so.6(GLIBC_2.1)
\+B?}P8N*l libc.so.6(GLIBC_2.2)
zy)i1d libc.so.6(GLIBC_2.3)
r_o<SH libcrypto.so.4
FmT
`Oa> libncursesw.so.5
uw_?O[ZA[ libssl.so.4
uLW/f=7L libz.so.1
dr]&kqm rpmlib(CompressedFileNames) <= 3.0.4-1
z,Xk\@ rpmlib(PayloadFilesHavePrefix) <= 4.0-1
+VOb --------------------------------------------------------------------------------
rg)h5G e- 6(F4 #5{sglC"|F 列出包中的配置文件
> V%Q O>C <94WZ?{p -c,--configfiles选项的作用是列出包中的配置文件
dU+0dZdKO ^, wnp@ 示例:
d]7*mzw^j 1uM/2sX [root@localhost ~]# rpm -qc lynx
ua#K>sur. /etc/lynx-site.cfg
jgRCs.6 /etc/lynx.cfg
pt})JMm /etc/lynx.cfg.cs
P9yw&A /etc/lynx.cfg.ja
n-OWwev) /etc/lynx.cfg.sk
Xp^$
E6YFy --------------------------------------------------------------------------------
7^wE$7hS iS-K
~qa 4A o{M 显示有关于包的改变信息的日志:
ND,`QjmZ _LLshV3 --changllog选项的作用是显示有关于包的改变信息的日志。
4x]NUt h AAU ecx 示例:
U.Hdbmix {PmzkT}LF 此为部分显示结果
B\zoJg&7( [root@localhost ~]# rpm -q --changelog lynx
@_O3&ZK * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
.zwVCW,u - Removed perl dependencies (bug #127423).
K+> V|zKuk * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
B1,?{Ur - rebuilt
3 2y[ * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
Zd XKI{b - No longer need lynx-284-ipv6-salen.patch.
nKu(XgFv - No longer need lynx2-8-2-telnet.patch.
%8<2> * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
;MZbL) - rebuilt
1.dX)^\ * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
ZbyG*5iq - Updated to dev16, fixing bug #110196.
gvr]]}h:O - No longer need crlf patch.
sD2Qm - Use shipped ja translations.
sH@ &* - Use %find_lang.
U,HS;wo;t - Default config file now sets UTF-8 (bug #110986).
6vWii)O.D --------------------------------------------------------------------------------
@>Ek '~m Xj;2h{#s Cz[5Ug'V 包选择选项
~Jxlj(" 0( B3.X}ys# package_name
`&,_xUA 查询已安装包的package_name。
/J.0s0@ 8J^d7uC -a,--all
+7^w9G 查询所有已安装拨。
At|ht %&2B -f file,--file file
v?{vg?vI 找出什么包拥有文件file。
2;}xN! 8 8xgc[# -g group,--group group
!xH,y 找出什么包拥有组group。
n4R]+&* b<\G I7 -p package_file
C#T)@UxBZ 查询未安装包package_file
.W-=x,`hY4 9Q=>MOB- --querybynumber num
8(uw0~GO 查询第num个数据库条目。主要用于调试。
-BjEL; 9<w=),R`8 -qf,--queryformat num
`U!(cDY 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
xpz`))w qs "s/$ --specfile specfile
6T]Q.\5BZ 查询specfile,就好象它是个包
rr>IKyI' nDF&EE --triggeredby pkg
sB8p(
L 列出触发安装pkg包的包。
uiuTv)pwF -$b?rt]h1g --whatrequires capability
eA10xpM0 列出要求特定能力来行使职责的包。
03] r*\ x6jm-n --whatprovides capability
DWdLA~'t 列出提供特定能力的包。
JqQ3C}z --------------------------------------------------------------------------------
a0)vvo=bz &!4(
0u %qONJP 信息选择选项:
)v};C< Jfe~ ,cI -c,--configfiles
C\J@fpH(t` 列出包中的配置文件。
#'#4hJ*YC Vj29L?3 --changelog
[KD}U-(Wg 显示有关于包的改变信息的日志。
M Ey1~h/ A?\h|u< -d,--docfiles
D`8E-Bq 列出包中的文档文件。
;g6 nHek I?A~zigO --dump
7/4~>D&-b 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
RlPjki"Mg 以下列顺序输出信息:
l(.7t' path size mtime md5sum mode owner group isconfig isdoc rdev symlink
:S#eg1y.w] ADTU{6UPS --filebypkg
{~ ":; 列出每个包中的所有文件。
X3<SP Yo>%s4_, -i
DCz\TwzU 显示包的信息,包括名字,版本和描述。
N4'
.a=1 rffVfw -l,--list
z/pDOP Ku 列出包中所有文件
Xx=K?Z?3. nIG[{gGX --last
Mp!2`4rD 根据安装时间列出包,最新的包排第一位。
G &m>Ov$#& pn+D@x#IA --provides
'Dnq+ 列出这个包所提供的实际能力。
4
3}qaf[ -v;iMEZ) -R,--requires
UzXDi#Ky 列出这个包所依赖的任何包。
$4ka +nfU Pxap;;\ -s,--state
:p,c%"8 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
$h C~af6 W=q?tD~V --scripts
7l[t9ON 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
A[K:/tB G1,Ro1 --------------------------------------------------------------------------------
gGF$M
` ^.nwc# ?SBh^/zf 卸载
Kw)C{L5a JiG8jB7%} uninstall命令的语法为:
T@2f&Un^ 0^-z?Kb<} rpm -e package_name
h]G6~TYI5 rpm --erase package_name
3 t~X: T]5U_AI@ 示例:
O<gP)ZW~ FA5k45wL [root@localhost ~]# rpm -e lynx
T9aTEsA[U [root@localhost ~]# rpm -q lynx
'&rw=.cU package lynx is not installed
"-G.V#zI --------------------------------------------------------------------------------
NHst7$Y< >?H_A :0i#=ODR 卸载选项为:
wI|bBfd( jJiCF,m --allmatches
g`y/_ 删除包的所有版本。应该只指定一个包,否则会导致错误。
b#bO=T$e- 89 _&X[X --nodeps
(\5<GCW- 在卸载包之前不检查依赖性。
Lx|w~+k} JI28}Cxs0 --noscripts
{'cs![U 不执行任何预卸载和后卸载脚本。
FZ;YvdX6 uOy\{5s8 --notriggers
}s8*QfK> 不执行任何由这个包的删除而出发的脚本。
g;|
n8] N9~'P-V --test
{FrHm 不真正卸载任何包,仅仅查看活动过程。