Red Hat包管理器(即RPM:Red Hat Package Manager)是一种打包系统,用于软件的发布和安装。其他Linux发布商,如SuSE等也使用RPM。
Z`jc*jgy i|N%dl+T= 安装与升级是管理RPM包的根本。安装RPM包时,就是在系统中增加新软件。升级RPM包时,就是在相关软件中更新最新的特性。
:$k];
l!S}gbM 一个包就是一个文件,其中包含了安装一个应用所需的多个文件。尽管包中包含了安装时所需的文件,但是应用程序为了能运行可能还需要其他文件的存在或其他未包含包的存在,如特定的库。这样的需求就是包的依赖性(dependency)。如,内核源代码RPM包要有GNU C语言编译器。由于内核源代码具有依赖性,因此要先安装GNU C语言编译器,再安装内核源代码。
|q+3X)Y hIBW$ 任何用户都可以列出或查询包。但是,安装,升级或删除包通常需要超级用户的特权。这是因为包通常安装在系统级目录下,该目录只对root(超级用户)是可写的。有时,也可以指定一个目录。把把安装在你的主目录或者你拥有写权限的目录下。
8d|/^U.w~V --------------------------------------------------------------------------------
DIAHIV< fHFy5j0H || p>O 以下简要介绍RPM包的安装,删除和查询
E4}MU}C#[ E^ub8 RPM包的建立,安装和查询是用rpm命令进行的。RPM包的名字通常以.rpm扩展名结束。rpm有一组模式,每种模式都有自己的选项。
0c{-$K} ]lQLA
IQ rpm命令的格式为:
A^L8" Y8i'=Po%, rpm [options] [packages]
n1Ic[cM} #_(t46 第一个选项指定rpm模式(安装,查询,更新),其他选项影响模式。
C!,|Wi2& )By#({O 对包的选项描述中,有时把包指定为package-name,而有时指定为package-file。包的名字是程序名或应用名,如lynx。包文件是RPM文件的名字,如lynx-2.8.5-18.i386.rpm。
!+R_Z#gB --------------------------------------------------------------------------------
FdwlRu G i>elK<R4 PxAUsY RPM为指定常用的选项提供了配置文件。系统配置文件通常是/etc/rpmrc,而用户可以建立他们自己的$HOME/.rpmrc文件。你可以用--showrc选项为在rpmrc文件中设置的所有选项显示RPM会使用的值。
6gy;Xg ta;q{3fe 以下为rpm --showrc命令显示的节选:
s?j || N6R0$Br 示例:
bM@8[&ta Ca]V%g( 此为部分显示结果
Aq]*$s2\G [root@localhost ~]# rpm --showrc
v%
c-El% ARCHITECTURE AND OS:
vV$6fvS build arch : i386
aG*Mj;J compatible build archs: athlon i686 i586 i486 i386 noarch
+uqP:z build os : Linux
F/
si =% compatible build os's : linux
pw,
<0UhV install arch : athlon
:Vnus
@#r install os : Linux
T[(4z@d`5 compatible archs : athlon i686 i586 i486 i386 noarch
a_V.mu6h6p compatible os's : linux
S\jIs [Dz RPMRC VALUES:
f.e4 C, 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
}LA7ku optflags : %{__global_cflags} -m32 -march=athlon
+$CO Features supported by rpmlib:
(_ TKDx_ rpmlib(VersionedDependencies) = 3.0.3-1
qA;!Pql` PreReq:, Provides:, and Obsoletes: dependencies support versions.
y+aL5$x6 rpmlib(CompressedFileNames) = 3.0.4-1
b<E0|VW file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
9JtPP rpmlib(PayloadIsBzip2) = 3.0.5-1
(~U1X4 package payload can be compressed using bzip2.
M[:},?ah0 --------------------------------------------------------------------------------
[&MhAzF PrQs_tNi ,6Ua+\| rpm命令包括FTP和HTTP客户端,因此可以指定ftp://或
http://URL来通过Internet安装或查询一个包。只要这里给出的命令中指定了package-file,你就可以使用FTP或HTTP URL。
?S2!'L M/x*d4b_ 示例:
i
w(4!,4~ E|9'{3$ [root@localhost ~]# rpm -ivh
ftp://fr.rpmfind.net/linux/fedor ... s/Fedora/RPMS/lynx-*
w8KVs\/ Retrieving
ftp://fr.rpmfind.net/linux/fedor ... x-2.8.5-18.i386.rpm
nW"ml$ Preparing... ########################################### [100%]
sry`EkS 1:lynx ########################################### [100%]
A<*G; --------------------------------------------------------------------------------
w~|z0;hC * .P3fVlZ Jc9BZ`~i 以下列出一些通用选项(可以用于所有模式):
3:B4; ?ISv|QpC --dbpath path
%CaF-m=Pq 用path作为RPM数据库的路径。
X"fSM
# K/A1g.$ --ftpport prot
kf-/rC)> 用port作为FTP端口。
U#gv ~)\k D//uwom --ftpproxy host
gZ 6Hj62D 用host作为所有传输的代理服务器。如果你通过使用代理的防火墙系统连到FTP,就要指定该选项。
L9bIdiB7 r>kDRIHB --help
Kc#42C;t/ 输出一个长的使用信息(如果运行rpm时没有选项,则给出短的使用信息)。
IzWS6!zKU \0bZ1" --justdb
mA" 82" 只更新数据库;不改变任何文件。
) mG Xxmvg.Nl --pipe command
W^T6^q5;H 用管道把rpm输出到commond。
Hphfqdh0` 4+2hj*I --quiet
G
]JWd 仅显示错误信息。
IA(+}V S!{Kn ;@ --rcfile filename
tLc~]G*\`s 用filename作为配置文件,而不用系统配置文件/etc/rpmrc或$HOME/.rpmrc。
WEZ)>[Xj? DcmRb/AP* --root dir
48W-Tf6v| 在dir目录内执行所有操作。
R1/87eB > Du>vlTY --version
_
ATIV 输出rpm版本号。
?5Ub&{ c&>==pI]k -vv
~'3hK4 输出调试信息。
!1{kG%B= SHt#%3EU --------------------------------------------------------------------------------
8pE0ANbq MoP,a9p jPyhn8Vw 安装升级和刷新
#h~v(Z} 'X]my 安装或升级一个RPM包,install命令的语法为:
2I
qvd wJb"X=i* rpm -i [install-options] package_file
{z0PB] U rpm --install [install-options] package_file
P;~P:qKd Ag@R 60# 示例:
S/)J<?<b X!=*<GF) [root@localhost ~]# rpm -i lynx-2.8.5-18.i386.rpm
lV)SOs$ package lynx-2.8.5-18 is already installed
dq
U.2~9 [root@localhost ~]# rpm --install lynx-2.8.5-18.i386.rpm
|vf /M| --------------------------------------------------------------------------------
o ImW Q"QL#<N .!`v2_ 为了安装一个包的新版本,同时删除现有版本,使用upgrade命令:
eF%IX v:w $l{7 rpm -U [install-options] package_file
=^D{ZZw{ rpm --upgrade [install-options] package_file
OK1f Y`$z n?z^"vv$i 示例:
iT}L9\ ;x~[om21; 先安装旧版
4}>1I}!k [root@localhost ~]# rpm -i lynx-2.8.5-11.i386.rpm
HZ.Jc"+M |&xjuBC 再安装新版
y|0I3n]e [root@localhost ~]# rpm -U lynx-2.8.5-18.i386.rpm
D-!#TN`Y y+D"LeCAad 显示出新版本信息
3V2w1CERE [root@localhost ~]# rpm -q lynx
PdNxuy lynx-2.8.5-18
$v*0\O 3NA
G}S 说明:
5q>u]n9] -U的一个特点是如果包在系统上不存在,其作用就与-i选项一样,即安装包。
M!E#T-) |Je+y;P7 与-U的特点不一样,刷新(freshen)一个包,是指在已经安装了旧有版本时rpm才升级包。
M_monj}Z --------------------------------------------------------------------------------
kFi^P~3D[ ;th]/ G !YJ^BI 刷新的语法是:
xB&6f") .wv!; rpm -F [install-options] package_file
JHCV7$RS zcTY"w\b rpm --freshen [install-options] package_file
~RS^Opoa .7EZB 示例:
Y
=BXV7\ afWEt - 从未安装过lynx包,使用-F选项,将无法升级。
.1 =8c\% B,dHhwO*l [root@localhost ~]# rpm -F lynx-2.8.5-18.i386.rpm
uY5Gn.Y [root@localhost ~]# rpm -q lynx
S.kFs{;1x package lynx is not installed
/^>yDGT,0 --------------------------------------------------------------------------------
c6NCy s >|e>= 9v2(cpZ 安装和更新选项为:
\p&a c&] $3C$])k --allfiles
te b~KM 安装或更新所有文件。
~jqh&u$( $EuWQq7OI2 --badreloc
{=K u9\ 与--relocate一起使用,强制重新定位,即使包不是可重定位的。
x#
&ZGFr~ d{LQr}_o$$ --excludedocs
rH<iUiA?O 不安装任何文档文件。
ErDt~FH xp>p#c --excludepath path
95G*i;E 不安装文件名以path开始的任何文件。
h c9?z} |NiWr1&i0 --force
G?OwhX 强制安装。等价于使用--replacepkgs,--replacefiles和--oldpackage。
_Di}={1[. ]&D;'), -h,--hash
Q hHexr6 当包档案被解包时打印50个散列标记。使用--version选项以进行更好的显示。
yfD)|lK D(]])4 --ignorearch
oQvG3(. 即使二进制包用于不同的体系结果也进行安装。
xedbr sN
`NZyG --ignoreos
jSj
(ZU6 即使操作系统不匹配也安装二进制包。
}Pj3O~z 9g*MBe: --ignoresize
"w\Iz] 安装前不检查磁盘的可用空间。
W]v[Xm$q .2jG~_W[ --includedocs
K)!?np{km 安装文档文件。只有在rpmrc文件中指定了excludedocs:1时,才需要这个选项。
#^bkM)pc Kb# }f/ --nodeps
3GS oHsNk 不检查这个包是否依赖于其他包的存在。
8;YN`S!o \q8D7/q --noorder
=lf&mD
_/ 安装之前,不为了满足依赖关系而对包进行重新排序。
>Tm|}\qEb AwKxt'()^ --noscripts
t*? CD.S 不执行任何预安装或后安装脚本。
62Ab4! F<UEipe/N --notriggers
~!,Q<? 不执行任何由包安装触发的脚本。
<p'~$vK g8{?; --oldpackage
g]g2`ab | 允许升级以用旧包替换新包。
ve#cz2Z oJk$ +v6 --percent
Ge|& H]W 当文件被解压时输出完成百分比的信息。
1{-W?n _cZ`7]Z --prefix path
!8|] R 把可重定位包的安装前缀设置为path。
up~l4]b+ vYD>m~Qc^ --replacefiles
{9<2{$Og 即使包替换了来自其他安装包的文件,也安装这些包。
I
[J0r ,T{(t@ --replacepkgs
pPm9v_G 即使某些包已经被安装,也安装他们。
"Q~6cH[# |f^/((:D --test
ua['rOnU 检查安装过程,看整个过程都做了些什么,但并不真正安装包。
dQ8}mH! UC^Bn1 --------------------------------------------------------------------------------
W"rX$D[Le AcN~Q/xU {Y9m;b,X 查询
F*QD\sG: =GQ?P*x|$ query命令的语法为:
#EpDIL N
b(f rpm -q[information-options] [package-options]
(WK$
)f rpm --query[information-options] [package-options]
[UI4YZu} =*q:R9V 查询选项有两个子集:包选择选项决定查询什么包,信息选择选项决定提供什么信息。
p;VqkSQ76 --------------------------------------------------------------------------------
N,w;s-* xa#:oKF3 5hE8b
{V 以下简单示演示一下包查询:
Y962rZ DU7kZ 简单查询:
RGGP6SDc &50Kn[ 最简单的形式是rpm -q packagename查询。可以用这个命令寻找以安装包的版本。
#ZIV>(Q\H N1Y*IkW" 示例:
VwoCRq* kNW&rg [root@localhost ~]# rpm -q lynx
t%Z_*mIfmE lynx-2.8.5-18
lX`)Avqa --------------------------------------------------------------------------------
$&m^WrZaY nm*!#hx *g5df[ 信息查询:
lC6#EU; Kbc-$oneR rpm -qi packagename命令可以得到安装包的汇总信息。
YE5v~2 _Bh-*l?K> 示例:
o(~>a [root@localhost ~]# rpm -qi lynx
:&`Yz
Name : lynx Relocations: (not relocatable)
c3|;'s Version : 2.8.5 Vendor: Red Hat, Inc.
^Y xqJy Release : 18 Build Date: 2004年07月08日 星期四 18时52分16秒
?Z]}G Install Date: 2006年05月30日 星期二 13时27分21秒 Build Host: tweety.build.redhat.com
\1RQ),5 %] Group : 应用程序/互联网 Source RPM: lynx-2.8.5-18.src.rpm
_c%]RE Size : 4837340 License: GPL
UJoWTx Signature : DSA/SHA1, 2004年10月21日 星期四 01时14分03秒, Key ID b44269d04f2a6fd2
c?d+>5"VX Packager : Red Hat, Inc. <
http://bugzilla.redhat.com/bugzilla> 4i[3|hv' URL :
http://lynx.isc.org/ {R[lsdH(X Summary : 一个基于文本的网页浏览器。
0-g,C=L Description :
K+H?,I Lynx 是一个基于文本的 万维网 浏览器。Lynx不显示任何
0At??Zpy 图像,但是它支持框架、表格、以及多数其它 HTML
b]mRn{r? 标签。Lynx 优于图形化浏览器的地方是它的速度――
0i$jtCCL( Links 能够快速启动、退出、及显示网页。
kT UQ8U 标识拥有者
9U58# --------------------------------------------------------------------------------
C^r 3r6 +U^dllL7 ap\2={u^| 找出什么包拥有文件file:
2?ZHWS>U lw? f2_fi 示例:
gsc*![N /w!b2KwV [root@localhost ~]# rpm -qf /etc/lynx-site.cfg
nP?(9;3* lynx-2.8.5-18
>}<:5gZtA --------------------------------------------------------------------------------
7%8,*T XFmnZpqXH W #qM$ 列表包中的文件:
P _Zf(`jJ sb(,w 如果对一个包不够了解,则可以用rpm -ql packagename命令列出包中的文件。这个表中确认某个配置文件或命令是否在这个包中。如果要升级,这个信息有助于了解升级有什么风险。
"
%|CD"@ {Y'DUt5j 示例:
I~"- \,JRNL& 此为部分显示结果
/Os)4yH\ [root@localhost ~]# rpm -ql lynx
kOR%<#:J /etc/lynx-site.cfg
h=4m2m /etc/lynx.cfg
.'"+CKD.N /etc/lynx.cfg.cs
>Z|4/PF /etc/lynx.cfg.ja
G`mC=*Ma; /etc/lynx.cfg.sk
%dL|i2+*8 /usr/bin/lynx
+ 7E6U* /usr/share/doc/lynx-2.8.5
/D 8cJgH- /usr/share/doc/lynx-2.8.5/INSTALLATION
SNff /usr/share/doc/lynx-2.8.5/README
Y!o@"Ct /usr/share/doc/lynx-2.8.5/docs
o LX6w /usr/share/doc/lynx-2.8.5/docs/CHANGES2.3
` M4;aN /usr/share/doc/lynx-2.8.5/docs/CHANGES2.4
MH"c=mL: /usr/share/doc/lynx-2.8.5/docs/CHANGES2.5
I|9e4EX{y /usr/share/doc/lynx-2.8.5/docs/CHANGES2.6
l},px /usr/share/doc/lynx-2.8.5/docs/CHANGES2.7
sj. eJX"z /usr/share/doc/lynx-2.8.5/docs/CHANGES2.8
Um15@p; /usr/share/doc/lynx-2.8.5/docs/CMU.announce
0,m*W?^31 /usr/share/doc/lynx-2.8.5/docs/CRAWL.announce
yQ+#Tlji /usr/share/doc/lynx-2.8.5/docs/FM.announce
m98k/w_ /usr/share/doc/lynx-2.8.5/docs/IBMPC-charsets.announce
EE&~D~yHUL /usr/share/doc/lynx-2.8.5/docs/OS-390.announce
yYdXAenQ /usr/share/doc/lynx-2.8.5/docs/README.TRST
?b8NEVjw /usr/share/doc/lynx-2.8.5/docs/README.chartrans
QE)g==d %DPtK)X1 --------------------------------------------------------------------------------
$j{ynh)^ R) @k| sTv/;* 列出包所提供的实际能力:
7\a(Imq ENJ] --provides选项的作用是列出这个包所提供的实际能力。
wqE ]o=
k P).
@o.xl 示例:
c!Pi) p$ [*GXR4 [root@localhost ~]# rpm -q --provides lynx
kHz3_B9[ config(lynx) = 2.8.5-18
iyH<!>a webclient
rIge6A>I lynx = 2.8.5-18
sd8o&6 --------------------------------------------------------------------------------
51;(vf do=VPqy NZeI qhj 列出这个包所倚赖的任何包:
0yAvAx %7
J -R,--requires选项的作用是列出这个包所依赖的任何包。
b;m6m4i'f{ [mWo&Ph[- 示例:
tMyD^jVC T| 4c\ [root@localhost ~]# rpm -qR lynx
7Zu!s]t /bin/sh
/B1<N} config(lynx) = 2.8.5-18
x:l`e:`y9 indexhtml
CF42KNq libc.so.6
YLobBtXc9 libc.so.6(GLIBC_2.0)
Ubn5tN
MK libc.so.6(GLIBC_2.1)
5QSd$J libc.so.6(GLIBC_2.2)
`i{o8l libc.so.6(GLIBC_2.3)
>r]# 77d libcrypto.so.4
y-sQ"HPN libncursesw.so.5
yuI5#
VUS libssl.so.4
u%}vTCg*p libz.so.1
)[nzmL*w rpmlib(CompressedFileNames) <= 3.0.4-1
sUbZVPDr rpmlib(PayloadFilesHavePrefix) <= 4.0-1
RE"}+D --------------------------------------------------------------------------------
gscsB4< D;d;:WT5 wau81rSd 列出包中的配置文件
'{:(4>& `/+7@~[RU -c,--configfiles选项的作用是列出包中的配置文件
j*xens$) +p<Y)Z(>6 示例:
/;.M$}Z>` Xd|5{ [root@localhost ~]# rpm -qc lynx
3tLh{S?uJ /etc/lynx-site.cfg
mDV 2vg /etc/lynx.cfg
`Rm B{qgB /etc/lynx.cfg.cs
9wWjl}% /etc/lynx.cfg.ja
u:,B"! /etc/lynx.cfg.sk
0|GxOzNd --------------------------------------------------------------------------------
CSsb~/Oxu ,cC4d` F=P|vYL&& 显示有关于包的改变信息的日志:
7d4RtdI orHVL 2
KK --changllog选项的作用是显示有关于包的改变信息的日志。
UNY>Q7 mLq?-&F 示例:
(1jkZ^7 },f7I^s| 此为部分显示结果
>T!n* -Zn [root@localhost ~]# rpm -q --changelog lynx
-OkKLub * 五 7月 09 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-18
s}?98?tYB - Removed perl dependencies (bug #127423).
7Q[P * 三 6月 16 2004 Elliot Lee <
sopwith@redhat.com>
y"9TS,lmK - rebuilt
2RE }l=h5 * 三 5月 26 2004 Tim Waugh <
twaugh@redhat.com> 2.8.5-16
qx!IlO - No longer need lynx-284-ipv6-salen.patch.
&12aI|u^< - No longer need lynx2-8-2-telnet.patch.
l0@$]76cX; * 六 2月 14 2004 Elliot Lee <
sopwith@redhat.com> 2.8.5-15
y|lP.N/ - rebuilt
UoKBcarm * 二 12月 02 2003 Tim Waugh <
twaugh@redhat.com> 2.8.5-14
vNtbb]')m - Updated to dev16, fixing bug #110196.
5Cz:$-+ - No longer need crlf patch.
=6A<> - Use shipped ja translations.
T+.wJW:jh - Use %find_lang.
'*~{1gG ` - Default config file now sets UTF-8 (bug #110986).
:nXBw%0x --------------------------------------------------------------------------------
`b% /.%]$
"= UP&= KY"~Ta` 包选择选项
foJ|Q\Z,T #o^E1cI package_name
zzW^AvR 查询已安装包的package_name。
#Ta@A~.L 4< H-ol -a,--all
+b{h*WWdj 查询所有已安装拨。
P)}:lTe
UHCx}LGe -f file,--file file
U9k}y 找出什么包拥有文件file。
~I^]O \? 6"=e+V@ -g group,--group group
%
vP{C 找出什么包拥有组group。
g@EKJFjl m[8#h(s*t -p package_file
-u9{R \S 查询未安装包package_file
@\q~OyV <]!IC]+ --querybynumber num
8vP d~te 查询第num个数据库条目。主要用于调试。
U>I#f 9B%"7MVn -qf,--queryformat num
ipyO&v 指定显示查询结果时所采用的格式,使用标记来表示不同的数据类型(NAME,FILENAME,DISTRIBUTION)。格式说明是标准printf格式化的一个变体。
.#}SK!"B )1]C%)zn --specfile specfile
Ugs<WVp$ 查询specfile,就好象它是个包
,~kMkBkl~ 43VuH --triggeredby pkg
+V7p?iEY 列出触发安装pkg包的包。
BF@VgozW Cy2X>Tl"<E --whatrequires capability
\o3i9Q9C 列出要求特定能力来行使职责的包。
(<<eHf,@ <T&$1 m{ --whatprovides capability
kO9yei
列出提供特定能力的包。
>l7
o/*4 --------------------------------------------------------------------------------
cCj3,s/p :g\qj? o d6n6 =
[* 信息选择选项:
|0bSxPXn! 4t+88e -c,--configfiles
LS_QoS 列出包中的配置文件。
^wHO!$ MR~BWH?@ 1 --changelog
"?il07+w% 显示有关于包的改变信息的日志。
8uu:e<PLv zzx4;C",u -d,--docfiles
[NFAdE 列出包中的文档文件。
~/.&Z`ls Fd91Y --dump
FUOvH85f 转储包中每个文件的信息。这个选项必须至少与-l,-c或-d之一共同使用。
fklMYu4:n 以下列顺序输出信息:
[n^___7 path size mtime md5sum mode owner group isconfig isdoc rdev symlink
npe*A &=UzF --filebypkg
2n7[Op 列出每个包中的所有文件。
mR{0*< k |Lm;g -i
c8Opc"UE 显示包的信息,包括名字,版本和描述。
{B}0LJIpL Ay_<?F+& -l,--list
Gm%[@7- 列出包中所有文件
QJTC@o Zsuh 8t --last
pp-Ur?PM 根据安装时间列出包,最新的包排第一位。
[Q*kom : Gah e-%J --provides
Kfr?sX 列出这个包所提供的实际能力。
N" 8o0> <)&ykcB -R,--requires
1jF}g`At 列出这个包所依赖的任何包。
I2Us!W>6- [_~U<
-s,--state
DUtpd| 列出包中的每个文件及其状态。可能的状态为normal,not installed或replaced。
#}gc6T~0 ox*Ka] --scripts
|~/{lE=I 列出任何在安装和卸载过程中所使用的包特定的shell脚本。
p\HXE4d' xM*v!J, --------------------------------------------------------------------------------
HC0puLt_ k~gQn:.Cx b6i0_fOO 卸载
E=B9FIx~< COT;KC6
n uninstall命令的语法为:
M-Js"cB[ Pf!K()<uJ rpm -e package_name
w9oiu$7), rpm --erase package_name
qzLRA.#f^ X}Csl~W8in 示例:
(0][hdI~B oT_,k}L IX [root@localhost ~]# rpm -e lynx
_Nj;Ni2rD [root@localhost ~]# rpm -q lynx
"K@os< package lynx is not installed
v
;9s --------------------------------------------------------------------------------
W,<Vr2J[ m&x0,8 C +IXP 卸载选项为:
B;@yOm= RDZq(rKc --allmatches
m ;KP 删除包的所有版本。应该只指定一个包,否则会导致错误。
uaGg8 Ff,M~zn --nodeps
BBx"{~ 在卸载包之前不检查依赖性。
b)V[d8IA Gq{v)iN --noscripts
0s8S`hCn> 不执行任何预卸载和后卸载脚本。
SUx0!_f*R E8nqExQ --notriggers
tQ/w\6{ 不执行任何由这个包的删除而出发的脚本。
mI.*b(Irp @-m&X2J+c --test
-8o8lz 不真正卸载任何包,仅仅查看活动过程。