Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
C5;wf3 hLo>R'@uN 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
=]d^3bqN 5W{hH\E _5 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
W0|_]"K- tvT4S 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
)ji@k(x27q --------------------------------------------------------------------------------
6Hl<,(vn o?y"]RCM :~erh}~ps 以下简要介绍RPM包的安装,删除和查询
gCL{Cw <r3Jf}%tT RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
W #47Cz y+RRg[6| rpm命令的格式为:
69iM0X!'u xl9(ze rpm [options] [packages]
OGGSS&5tw 1OP"5f 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
k:mlt: ]LVnt-q 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
Z)5klg$c --------------------------------------------------------------------------------
.jaZ|nN8` >3!DOv -O %[!&` RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
q}sK &rP~`4Mkp 以下为rpm --showrc命令显示的节选:
@Kp1k> ov w?S8@|MK 示例:
|@ *3^' K-6p'| 此为部分显示结果
+dM.-wW [root@localhost ~]# rpm --showrc
)WmZP3$^TX ARCHITECTURE AND OS:
1\IZcJ { build arch : i386
t2U$m'(A& compatible build archs: athlon i686 i586 i486 i386 noarch
vbedk+dd?A build os : Linux
nd;O(s; compatible build os's : linux
kU1 %f
o install arch : athlon
7JS#a=D# install os : Linux
&urb!tQ>& compatible archs : athlon i686 i586 i486 i386 noarch
gW}} 5Xq compatible os's : linux
*0\k
Z,#BJ RPMRC VALUES:
KX=/B=3~ 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
H>Ks6V)RL4 optflags : %{__global_cflags} -m32 -march=athlon
80HEAv,O Features supported by rpmlib:
\6i9q= rpmlib(VersionedDependencies) = 3.0.3-1
jceHKl PreReq:, Provides:, and Obsoletes: dependencies support versions.
L\YZT|
K( rpmlib(CompressedFileNames) = 3.0.4-1
%UBPoq file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
O"8 P#Ed rpmlib(PayloadIsBzip2) = 3.0.5-1
;AltNGcM package payload can be compressed using bzip2.
~ur)fAuF2 --------------------------------------------------------------------------------
O/$ v69: 9\:w8M X' DP0Z*8Ia rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
3<3t;&e Z@u ;Z[@ 示例:
]o `4Z" kR_E6Fl [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
Bu':2"7 Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
TG?fUD V Preparing... ########################################### [100%]
pj+tjF6Np 1:lynx ########################################### [100%]
4L!e=>as"1 --------------------------------------------------------------------------------
[d\#[l_ E}t-N OoSa95#x 以下列出一些通用选项(可以用于所有模式):
*5^ze+: TD%WJ9K\ --dbpath path
Fos1WH?\ 用path作为RPM数据库的路径。
1&} G+y v >NTh --ftpport prot
kHZKj!!R 用port作为FTP端口。
so'eZ"A: TZkTz
P[ --ftpproxy host
pIL`WE1' 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
S`4e@Z$ |NXFla --help
(a,6a 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
9z5z *x5o=)Y --justdb
7;~2e 只更新数据库;不改变任何文件。
uz8nRS s IK85D>00T --pipe command
"1AjCHZ 用管道把rpm输出到commond。
:3:)E =\*S'Ded --quiet
POkXd^pI 仅显示错误信息。
Kgps_tY% []!tT-Gzy --rcfile filename
N%:D8\ qx 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
H9/XW6W,"w EccFx7h --root dir
g}^4^88=a 在dir目录内执行所有操作。
G6f%/m` 8}]l9"q( --version
@
$9m>6V 输出rpm版本号。
bXk:~LE DM+sjn -vv
aIY$5^x 输出调试信息。
9[B<rz E\W;:p,{A --------------------------------------------------------------------------------
>I{4 P^i6MZ? V>DXV-%&C 安装升级和刷新
9
<y/Wv Uzy;#q 安装或升级一个RPM包,install命令的语法为:
*vEU}SxRuv lrM.RM96 rpm -i [install-options] package_file
\z<ws&z3`$ rpm --install [install-options] package_file
K%o6hBlk_ ,!xz*o+#@ 示例:
PpI+@:p[ 8.6no [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
b6
J2*;XG package lynx-2.8.5-18 is already installed
V7qCbd^>XJ [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
H!Fr("6} --------------------------------------------------------------------------------
BHIZHp 1==P.d( ";%e~
= 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
o;Hd W g6tWU rpm -U [install-options] package_file
P*?d6v,r rpm --upgrade [install-options] package_file
Q%_!xQP` 4+Li)A:4. 示例:
{m1t~ S 'M]CZ} 先安装旧版
h+ `J=a|\ [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
5x93+DkO\ eUGmns 再安装新版
Qr^Z~$i t [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
A=\'r<: *+4>iL*: 显示出新版本信息
f=-!2#% [root@localhost ~]# rpm -q lynx
zM3H@;}m lynx-2.8.5-18
;@h'Mb ][T9IAn 说明:
fJ|Bu("N -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
3"2<T^H] LrmtPnL 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
fS8XuT --------------------------------------------------------------------------------
_ d(Ks9 v ](G?L9b |TNiKy 刷新的语法是:
&Nj:XX;X Gx~"iM rpm -F [install-options] package_file
Cv?<}q .j+2x[`l rpm --freshen [install-options] package_file
Huug_E+ `SSP53R(0 示例:
J%O[@jX1 NoSqzJyh 从未安装过lynx包,使用-F选项,将无法升级。
W}<M?b4tP "OlI-^y [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
ys~p( [root@localhost ~]# rpm -q lynx
NUxAv= xl package lynx is not installed
.wt>.mUH --------------------------------------------------------------------------------
XQ+-+CD @hz0:ezg: !Ed<xG/ 安装和更新选项为:
Y`[HjS, (<AM+| --allfiles
{ 8|Z}?I 安装或更新所有文件。
_Oaso > ZQJw2LA gO --badreloc
!pFKC) 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
[W8iM7D |n-a\ --excludedocs
7!` C TE 不安装任何文档文件。
D{Jc+Q$ #7cf 8y --excludepath path
F(J!dG5# 不安装文件名以path开始的任何文件。
%'D:bi5 Xbsj:Ko]]U --force
A<*tn?M] 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
tZc.%TU =":V
WHf -h,--hash
=."WvBKg 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
iu:p&h iA{chQBr --ignorearch
aF4V|?+ 即使二进制包用于不同的体系结果也进行安装。
g en3"\Og{ 7p"~:1hU --ignoreos
6m;wO r 即使操作系统不匹配也安装二进制包。
m%[2x# DlQ[}5STF --ignoresize
C>(M+qXL+ 安装前不检查磁盘的可用空间。
*Tlws )MX1776kU --includedocs
?-6x]l=] 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
O}\"$n> jW+VUF-t --nodeps
}1^tK(Am 不检查这个包是否依赖于其他包的存在。
aGzdur VHXR)} --noorder
$4ZDT]n 安装之前,不为了满足依赖关系而对包进行重新排序。
#\!hBL
@b "l2N_xX; --noscripts
[7Kj$PB3 不执行任何预安装或后安装脚本。
,a?\i
JNb q_m#BE;t --notriggers
WTy8 N 不执行任何由包安装触发的脚本。
e[VJ0 A= /v5g;x_T --oldpackage
;H#R{uR_< 允许升级以用旧包替换新包。
3Jk?)Dy :N'[de --percent
uhN(`E@ 当文件被解压时输出完成百分比的信息。
l.W 1$g x.4)p6 --prefix path
`
a<|CcUGU 把可重定位包的安装前缀设置为path。
@0@'6J04 "=5vgg3 --replacefiles
<xh'@592 即使包替换了来自其他安装包的文件,也安装这些包。
=ym~=
S %+OPas8C --replacepkgs
cK} 即使某些包已经被安装,也安装他们。
6;=wuoJi mYs->mg1 --test
!E.lyz 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
[8J}da } ~Sem_U`G --------------------------------------------------------------------------------
''
A[`,3 1J%qbh :R?| 2l 查询
@BQBNGR 1 gt~2Br4 query命令的语法为:
`LHfAXKN 4sD:J-c rpm -q[information-options] [package-options]
+M%2m3.Jo rpm --query[information-options] [package-options]
!v;_@iW3e +H^V},dBp! 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
qFsg&< --------------------------------------------------------------------------------
o4
OEA)k)= Y
Z2VP x[uXD 以下简单示演示一下包查询:
kk7:A0._ ~X(xa 简单查询:
w!9W Cl]9M "l;8
O2;g 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
,8 NEnB l$~bkVNL 示例:
7|eSvC +Q#Qu0_
[root@localhost ~]# rpm -q lynx
{zN_l! lynx-2.8.5-18
5$G??="K --------------------------------------------------------------------------------
Xq)%w#l5? '!L1z45 />I8nS}T 信息查询:
0*M}QXt Y,Zv0-" rpm -qi packagename命令可以得到安装包的汇总信息。
:H8L (BsI %+W
>+xRb 示例:
/F9lW}pd [root@localhost ~]# rpm -qi lynx
7wEG<,D Name : lynx Relocations: (not relocatable)
D\&y(=fzf Version : 2.8.5 Vendor: Red Hat, Inc.
N'BctKL Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
T-8nUo}i Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
HnY"6gTNK Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
^3s&90 Size : 4837340 License: GPL
`Q^Sm`R Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
KIl.?_61O Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> h9smviU7u URL :
http://lynx.isc.org/ J#Ehx| Summary : 一个基于文本的网页浏览器。
bvRGTOxO Description :
EuA<{%i Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
7?WBzo!!L 图像,但是它支持框架、表格、以及多数其它 HTML
w=>mG- 标签。Lynx 优于图形化浏览器的地方是它的速度――
+rO<'H:umJ Links 能够快速启动、退出、及显示网页。
4'[ V'c\ 标识拥有者
uiEA=*axp --------------------------------------------------------------------------------
/<pQ!'/G 9F1stT0G% |VEAzY|[# 找出什么包拥有文件file:
2/q=l? +7OT`e
%q 示例:
exKmK!FT 4'b]2Mn3 [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
v!9Imf lynx-2.8.5-18
"fJ|DE&@<i --------------------------------------------------------------------------------
&+iW: D)Rf 0lh6b3tdP 列表包中的文件:
yC*B OJS zW`koRH@ 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
U+M?<4J)" cyeDZ) 示例:
0\^2HjsJ ]Wm ?<7H 此为部分显示结果
&nw~gSe [root@localhost ~]# rpm -ql lynx
Ou,_l /etc/lynx-site.cfg
ZTC1t_ /etc/lynx.cfg
V
*y /etc/lynx.cfg.cs
2,nCGSfc /etc/lynx.cfg.ja
d+ko"F| /etc/lynx.cfg.sk
~y^lNgujO /usr/bin/lynx
&bK$!8Z /usr/share/doc/lynx-2.8.5
rM.<Gi05Qe /usr/share/doc/lynx-2.8.5/INSTALLATION
cHct|Z
u /usr/share/doc/lynx-2.8.5/README
)Dpt<}}\ /usr/share/doc/lynx-2.8.5/docs
^{bEq\5& /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
[
[CXMbD`* /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
M 7$4KFNp /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
4ux5G`oL /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
Y &+/[[ /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
*lO+^\HXD /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
TBT*j&!L /usr/share/doc/lynx-2.8.5/docs/CMU.announce
WfO$q^'?DP /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
CxQ,yd;> /usr/share/doc/lynx-2.8.5/docs/FM.announce
Khd ,|pM /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
Bz~h- /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
3mz>Y*^?0 /usr/share/doc/lynx-2.8.5/docs/README.TRST
Yk&{VXU< /usr/share/doc/lynx-2.8.5/docs/README.chartrans
l);8y5 Y\\nJuJo --------------------------------------------------------------------------------
RyD$4jk+T" H2cc).8" Isb^~c_P 列出包所提供的实际能力:
Ih"Ol(W - Sgp,"a --provides选项的作用是列出这个包所提供的实际能力。
rcT<OiYuig :!hH`l}p 示例:
y@JYkp>I 2oASz| [root@localhost ~]# rpm -q --provides lynx
@'4D9A config(lynx) = 2.8.5-18
k@U`?7X webclient
[nD4\x+ lynx = 2.8.5-18
~C
x2Q4E --------------------------------------------------------------------------------
Tyl"N{ _ +,>bpp1 D<6kAGE 列出这个包所倚赖的任何包:
#::vMnT hZJqo + s -R,--requires选项的作用是列出这个包所依赖的任何包。
"r+<=JU>OV 1X.1t^HH: 示例:
!{;RtUPz* e[!>ezaIY [root@localhost ~]# rpm -qR lynx
eO G%6C%a /bin/sh
)>p6h]]a config(lynx) = 2.8.5-18
>FNt*tX<0 indexhtml
}iAi`_\0; libc.so.6
]Jqe)o libc.so.6(GLIBC_2.0)
#9Z-Hd< libc.so.6(GLIBC_2.1)
KZNyp%q libc.so.6(GLIBC_2.2)
/d'u1FnA= libc.so.6(GLIBC_2.3)
s&</zU' libcrypto.so.4
k#[s)Ja?s libncursesw.so.5
!o!04_ libssl.so.4
gs>cx]> libz.so.1
~!kbB4`WK rpmlib(CompressedFileNames) <= 3.0.4-1
!6C d.fpWL rpmlib(PayloadFilesHavePrefix) <= 4.0-1
N/VIP0Kb --------------------------------------------------------------------------------
zY-m]7Yf sA.yb,Fw Km-B=6*QY 列出包中的配置文件
Wz]S+IpY &@-glF5 -c,--configfiles选项的作用是列出包中的配置文件
K e8cfd~c $n"Llw&) 示例:
bHnQLJ V
"" [root@localhost ~]# rpm -qc lynx
)`^:G3w /etc/lynx-site.cfg
{5JXg9um /etc/lynx.cfg
=
xk@ Q7$ /etc/lynx.cfg.cs
5WYU&8+]{: /etc/lynx.cfg.ja
DM9 5Il[/ /etc/lynx.cfg.sk
uX[
"w| --------------------------------------------------------------------------------
Ex3woT- +n dyR r
N7"%dx 显示有关于包的改变信息的日志:
HV(Kz rge/jE,^~Z --changllog选项的作用是显示有关于包的改变信息的日志。
%*nZ,r y]_DW6W 示例:
p'*UM%@SIY 9iE66N>z 此为部分显示结果
n21J7;\/+ [root@localhost ~]# rpm -q --changelog lynx
lTXU * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
!w Bmf&= - Removed perl dependencies (bug #127423).
.$iIr:Tc> * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
SH.'E Hd - rebuilt
-E7\.K3 * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
A-FwNo2"% - No longer need lynx-284-ipv6-salen.patch.
0"N %Vm - No longer need lynx2-8-2-telnet.patch.
*$!LRmp? * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
'\Ub*m((1O - rebuilt
Qp,l>k * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
TfPx - Updated to dev16, fixing bug #110196.
;l'I.j - No longer need crlf patch.
cx|j
_5%i - Use shipped ja translations.
!MC Wt - Use %find_lang.
]O."M"B - Default config file now sets UTF-8 (bug #110986).
+,lD_{}_ --------------------------------------------------------------------------------
LHb{9x QS}=oOR@k D }\`5L< 包选择选项
~a $%
a _,^sI% package_name
QVpZA, 查询已安装包的package_name。
]Gr'Bt / _$0Ix6y, -a,--all
t>xV]W< 查询所有已安装拨。
iYf4 /1IG, 1;W>ceN" -f file,--file file
DKZ69^ 找出什么包拥有文件file。
ARE~jzakg 4]bT O -g group,--group group
oa|0= 找出什么包拥有组group。
L*z;-, hk
I$ow ( -p package_file
|j,Mof 查询未安装包package_file
C N"c G\Me%{b# --querybynumber num
S%@$J~\rx 查询第num个数据库条目。主要用于调试。
IQDWH/c |Xag:hof -qf,--queryformat num
UTPl7po5D 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
i]nE86.;
D1f=f88/} --specfile specfile
&a`-NRU# 查询specfile,就好象它是个包
II91Ia OH~t\fQ1Zf --triggeredby pkg
r!#3>F;B 列出触发安装pkg包的包。
H2]I__t/u NQG"}=KA --whatrequires capability
XP7A.I#q0 列出要求特定能力来行使职责的包。
2B4c:jJ &eg,*K} ' --whatprovides capability
4Qv|Z+$i 列出提供特定能力的包。
`Ao:} --------------------------------------------------------------------------------
>HFJm&lQ 3{ci]h`:y8 G 1$l %B 信息选择选项:
g_=Q=y@, Z9U*SS5s, -c,--configfiles
h@J`:KO 列出包中的配置文件。
)d(cXN-T (]1%s?ud* --changelog
0pR04"`; 显示有关于包的改变信息的日志。
gvC2\k{ -4Xr5j%o -d,--docfiles
lcr=^ 列出包中的文档文件。
)oj`K,# <n><A+D --dump
M(|gfsD 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
AKpux,@xB 以下列顺序输出信息:
s+[=nau('w path size mtime md5sum mode owner group isconfig isdoc rdev symlink
{t7
M O!g>
f --filebypkg
:* 'i\ 列出每个包中的所有文件。
3EyN"Lvp{o P
,i)A -i
oVu>jO:. 显示包的信息,包括名字,版本和描述。
4=9F1[ DbcKKgPn(9 -l,--list
qSQjAo4t@ 列出包中所有文件
.JiQq] #_E8>;)k --last
x!< C0N>?z 根据安装时间列出包,最新的包排第一位。
9xWrz;tzo ,
?%`Ky/ --provides
TX>;2S3q 列出这个包所提供的实际能力。
B0Z@ Cf Cxh9rUe. -R,--requires
V><P` 列出这个包所依赖的任何包。
y?rsfIth` $d"6y -s,--state
DxYu 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
5`+*({ 9J?j2!D --scripts
%=]{~5f> 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
L^=>)\R2$[ xWD wg@ P --------------------------------------------------------------------------------
?*T`a oB +z4NxR
EU+sTe > 卸载
v}!,4,]:& cq 0jM;@d uninstall命令的语法为:
]8mBFr5E9 %:??QD* rpm -e package_name
wy^>i$TC rpm --erase package_name
j'7FTVmJ 6wF?FtT 示例:
8\yH7H #*9*[Xbi [root@localhost ~]# rpm -e lynx
K9*K4'#R [root@localhost ~]# rpm -q lynx
Kg.E~ package lynx is not installed
9Dpmp| --------------------------------------------------------------------------------
Rn}+l[]jC 9Kqr9U--v Fc=8Qt^ 卸载选项为:
ht1
jrCe 9@h>_1RJz --allmatches
}n<dyX:a 删除包的所有版本。应该只指定一个包,否则会导致错误。
"evLI? |6&"r& --nodeps
sOHh&e 在卸载包之前不检查依赖性。
pZH
bj2~ $)'{+1 --noscripts
vOqYt42
不执行任何预卸载和后卸载脚本。
J|ILG DF|qNX --notriggers
)ow 3Bl8w 不执行任何由这个包的删除而出发的脚本。
[X-Q{c4 cJqPcCq(wn --test
-Wmpj 不真正卸载任何包,仅仅查看活动过程。