Gentoo Archives: gentoo-commits

From: "Le Zhang (r0bertz)" <r0bertz@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/doc/zh_cn: gentoolkit.xml
Date: Wed, 27 Feb 2008 17:15:57
Message-Id: E1JUPso-0003jU-09@stork.gentoo.org
1 r0bertz 08/02/27 17:15:53
2
3 Added: gentoolkit.xml
4 Log:
5 added zh_cn gentoolkit.xml
6
7 Revision Changes Path
8 1.1 xml/htdocs/doc/zh_cn/gentoolkit.xml
9
10 file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/zh_cn/gentoolkit.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/zh_cn/gentoolkit.xml?rev=1.1&content-type=text/plain
12
13 Index: gentoolkit.xml
14 ===================================================================
15 <?xml version="1.0" encoding="utf-8"?>
16
17 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/zh_cn/gentoolkit.xml,v 1.1 2008/02/27 17:15:53 r0bertz Exp $ -->
18 <!-- English CVS version: 1.30 -->
19 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
20
21 <guide link="/doc/zh_cn/gentoolkit.xml" lang="zh_cn">
22 <title>Gentoo工具包(GentooKit)</title>
23
24 <author title="作者">
25 <mail link="mbutcher@××××××××××.tv">Matt Butcher</mail>
26 </author>
27 <author title="编辑">
28 <!-- zhen@g.o -->
29 John P. Davis
30 </author>
31 <author title="编辑">
32 <mail link="erwin@g.o">Erwin</mail>
33 </author>
34 <author title="编辑">
35 <mail link="fox2mike@g.o">Shyam Mani</mail>
36 </author>
37 <author title="编辑">
38 <mail link="neysx@g.o">Xavier Neys</mail>
39 </author>
40 <author title="编辑">
41 <mail link="karltk@g.o">Karl Trygve</mail>
42 </author>
43 <author title="编辑">
44 <mail link="yoswink@g.o">José Luis Rivero</mail>
45 </author>
46 <author title="编辑">
47 <mail link="nightmorph@g.o">Joshua Saddler</mail>
48 </author>
49 <author title="译者">
50 <mail link="jjj3112007@×××××.com">Zezhou Jiang</mail>
51 </author>
52
53 <abstract>
54 Gentoolkit是一套使得管理Gentoo系统更加轻松的软件集合。这个文档介绍了一些Gentoolkit里的工具的一些基本使用方法。
55 </abstract>
56
57
58 <!-- Licensed under GFDL -->
59 <version>1.12</version>
60 <date>2007-06-25</date>
61
62 <chapter>
63 <title>介绍</title>
64 <section>
65 <title>什么是Gentoolkit?</title>
66 <body>
67
68 <p>
69 Gentoo是一个独一无二的发行版,并且存在一些别的发行版没有的复杂的东西。Gentoo开发者和贡献者们在发现这些复杂的东西的同时写了一些工具来帮助用户和管理员来使用它们。这些工具中的很大一部分已经被贡献到了Gentoo项目,并且被整合到了一个叫<c>app-portage/gentoolkit</c>的包里。
70 </p>
71
72 <note>
73 到现在为止,存在者两种版本的gentookit:<c>app-portage/gentoolkit</c>和<c>app-portage/gentoolkit-dev</c>。前者包含了管理脚本,而后者包含了一些专门帮助Gentoo开发的脚本。如果你是一个开发者,你可以通过联系Gentoolkit维护者来让你的脚本被收录到<c>gentoolkit-dev</c>里。这个文档只讨论gentoolkit。
74 </note>
75
76 <p>
77 Gentoolkit包含了一整套有用的工具来帮助你管理你的软件包和留意在你的系统上发生的事。大部分的用户———特别是经常升级系统的用户,将会从安装gentoolkit里受益。
78 </p>
79
80 </body>
81 </section>
82 <section>
83 <title>安装</title>
84 <body>
85
86 <p>
87 就像其他的Gentoo软件包一样,安装就只是简单地emerge。
88 </p>
89
90 <pre caption="安装gentoolkit">
91 # <i>emerge gentoolkit</i>
92 </pre>
93
94 <note>
95 许多gentoolkit里的工具会显示一些有关于你的系统的信息或者需要root授权的重要信息。所以,一些程序(或是只是特定的函数)可能只能在获得root授权以后才能被运行。
96 </note>
97
98 </body>
99 </section>
100 <section>
101 <title>查找文档</title>
102 <body>
103
104 <p>
105 一个程序可能有的任何的文档(除了man页)被存储在<path>/usr/share/doc/gentoolkit-[版本]/[程序名]/</path>里面。
106 </p>
107
108 </body>
109 </section>
110 </chapter>
111
112 <chapter>
113 <title>equery</title>
114 <section>
115 <title>介绍</title>
116 <body>
117
118 <p>
119 <c>equery</c>是一个显示大量有关于你系统上的软件包的有用信息和其他许多东西的工具。<c>equery --help</c>能给你完整的选项列表。
120 </p>
121
122 <note>
123 目前为止不是所有的<c>equery --help</c>列出的特性都被实现了。没有被实现的特性都被很清楚地提到了。你也会见到每个命令都有一个缩写,比如说<c>b</c>而不是<c>belongs</c>。
124 </note>
125
126 <note>
127 你要知道最近如果equery通过一个管道发送输出信息,它会改变输出信息的格式。那个通过管道传输的格式被认为更容易被工具格式化,但是你可以通过加入<c>--no-pipe</c>选项来关掉它。如果你写了需要equery的脚本,你需要了解这个。
128 </note>
129
130 </body>
131 </section>
132 <section>
133 <title>查找一个文件来自于哪个软件包</title>
134 <body>
135
136 <p>
137 <c>equery</c>也提供了寻找一个文件来自于哪个软件包的功能,使用<c>belongs</c>命令(或只是<c>b</c>)。
138 </p>
139
140 <pre caption="查找安装了某个给定文件的ebuild">
141 # <i>equery belongs /usr/bin/audacious</i>
142 [ Searching for file(s) /usr/bin/audacious in *... ]
143 media-sound/audacious-1.1.2 (/usr/bin/audacious)
144 </pre>
145
146 <p>
147 通过使用<c>-f</c>选项,你可以搜索符合任意的正规短语的文件所属的软件包。<c>-e</c>选项能够在第一个符合的软件包找到后就立即终止寻找。
148 </p>
149
150 </body>
151 </section>
152 <section>
153 <title>验证软件包的完整性</title>
154 <body>
155
156 <p>
157 有时候检查一个软件包的完整性是很有用的。<c>equery</c>可以通过验证md5 sums和时间戳来检验一个软件包是否被破坏、替换或是移除。
158 </p>
159
160 <pre caption="确认软件包的完整性">
161 # <i>equery check gentoolkit</i>
162 [ Checking app-portage/gentoolkit-0.2.0 ]
163 * 54 out of 54 files good
164 </pre>
165
166 <p>
167 请记住,如果你在安装完成后改变了配置文件,这些可能会被报告为 "not good"。
168 </p>
169
170 </body>
171 </section>
172 <section>
173 <title>列出所有依赖的软件包……</title>
174 <body>
175
176 <p>
177 <c>equery</c>能够列出符合一个软件包的所有直接依赖关系。我们能够简单地使用<c>depends</c>函数来做这件事:
178 </p>
179
180 <pre caption="查找依赖于pygtk的软件包">
181 # <i>equery depends pygtk</i>
182 [ Searching for packages depending on pygtk... ]
183 app-office/dia-0.93
184 dev-python/gnome-python-2.0.0-r1
185 gnome-extra/gdesklets-core-0.26.2
186 media-gfx/gimp-2.0.4
187 x11-libs/vte-0.11.11-r1
188 </pre>
189
190 </body>
191 </section>
192 <section>
193 <title>依赖关系图表</title>
194 <body>
195
196 <p>
197 <c>equery</c>可以向我们给出一个特定软件包的依赖关系图表。这个依赖关系图表向我们展示了指定软件包的所有一系列直接或间接相关软件包的列表
198 </p>
199
200 <pre caption="cdrtools的依赖关系树">
201 # <i>equery depgraph cdrtools</i>
202 Displaying dependencies for app-cdr/cdrtools-2.01_alpha37
203 `-- app-cdr/cdrtools-2.01_alpha37
204 `-- sys-libs/glibc-2.3.4.20040808 (virtual/libc)
205 `-- sys-kernel/linux-headers-2.4.22 (virtual/os-headers)
206 `-- sys-apps/baselayout-1.10.4
207 `-- sys-apps/sysvinit-2.85-r1
208 `-- sys-apps/gawk-3.1.3-r1
209 `-- sys-apps/util-linux-2.12-r4
210 `-- sys-apps/sed-4.0.9
211 `-- sys-libs/ncurses-5.4-r4
212 `-- sys-apps/pam-login-3.14
213 `-- sys-libs/pam-0.77-r1
214 `-- sys-libs/cracklib-2.7-r10
215 `-- sys-apps/miscfiles-1.3-r1
216 `-- app-arch/gzip-1.3.5-r1
217 `-- sys-apps/portage-2.0.50-r10
218 </pre>
219
220 <p>
221 比如说,cdrtools直接依赖于glibc,而linux-headers是cdrtools的间接依赖。请记住输出的信息也包括一些虚拟的软件包的信息。在上面的例子中,事实上<c>cdrtools</c>是被编写成需要virtual/libc的,而不是sys-libs/glibc,但是在例子里提到的系统上sys-libs/glibc提供了virtual/libc。
222 </p>
223
224 </body>
225 </section>
226 <section>
227 <title>列出属于一个ebuild的软件包</title>
228 <body>
229
230 <p>
231 <c>equery</c>能够列出所有属于一个已安装ebuild的文件。如果我不知道Gentoolkit在系统上安装了哪些文件,我将会用<c>equery</c>来把它们列出来。
232 </p>
233
234 <pre caption="列出文件">
235 # <i>equery files gentoolkit</i>
236 [ Searching for packages matching gentoolkit... ]
237 app-portage/gentoolkit-0.2.0
238 * Contents of app-portage/gentoolkit-0.2.0:
239 /usr
240 /usr/bin
241 /usr/bin/equery
242 /usr/bin/etcat
243 /usr/bin/euse
244 /usr/bin/glsa-check
245 /usr/bin/qpkg
246 /usr/bin/revdep-rebuild
247 /usr/lib
248 /usr/lib/gentoolkit
249 /usr/lib/gentoolkit/pym
250 /usr/lib/gentoolkit/pym/gentoolkit
251 /usr/lib/gentoolkit/pym/gentoolkit/__init__.py
252 /usr/lib/gentoolkit/pym/gentoolkit/gentoolkit.py
253 /usr/lib/gentoolkit/pym/gentoolkit/pprinter.py
254 /usr/lib/gentoolkit/pym/glsa.py
255 /usr/sbin
256 /usr/share
257 /usr/share/doc
258 /usr/share/doc/gentoolkit-0.2.0_pre10
259
260 [...]
261 </pre>
262
263 <p>
264 <c>equery</c>的<c>files</c>命令提供了一些用来修改输出信息的选项。你可以在<c>equery</c>的man页中找到它们。
265 </p>
266
267 </body>
268 </section>
269 <section>
270 <title>查找使用某个特定USE标记的软件包</title>
271 <body>
272
273 <p>
274 如果你想要寻找在你的系统上使用某个特定USE标记的软件包,<c>equery</c>包括了一个叫<c>hasuse</c>的函数。
275 </p>
276
277 <pre caption="查找使用firefox这个USE标记的软件包">
278 # <i>equery hasuse firefox</i>
279 [ Searching for USE flag firefox in all categories among: ]
280 * installed packages
281 [I--] [ ] dev-python/gnome-python-extras-2.14.0-r1 (0)
282 [I--] [ ] media-video/totem-2.16.4 (0)
283 </pre>
284
285 </body>
286 </section>
287 <section>
288 <title>列出软件包</title>
289 <body>
290
291 <p>
292 <c>equery</c>拥有一个强大的特性,它能够列出属于我们的系统或在Portage里的软件包,甚至在overlay里的软件包也行。让我们试试看:
293 </p>
294
295 <pre caption="使用equery来列出软件包">
296 # <i>equery list gentoolkit</i>
297 [ Searching for package 'gentoolkit' in all categories among: ]
298 * installed packages
299 [I--] [ ] app-portage/gentoolkit-0.2.0 (0)
300 </pre>
301
302 <p>
303 标准的查询会搜索符合给定名字的已安装的软件包。如果找到了,下面的信息会被显示出来:在第一个括号里的是软件包位置(I代表已安装,P代表Portage,O代表Overlay),在第二个括号里的是可能的mask(~是keyword的禁用,-是主机平台的禁用,M是硬性禁用),然后是分类和完整的名字,最后是软件包储存的位置。
304 </p>
305
306 <p>
307 下面是另一个例子,这次我们要使用本地选项来寻找在我们的portage树和overlay里的软件包。
308 </p>
309
310 <pre caption="使用equery的本地选项">
311 # <i>equery list -p -o vim</i>
312 [ Searching for package 'vim' in all categories among: ]
313 * installed packages
314 [I--] [ ] app-editors/vim-6.3-r4 (0)
315 * Portage tree (/usr/portage)
316 [-P-] [M~] app-editors/vim-7.0_alpha20050126 (0)
317 [-P-] [M~] app-editors/vim-7.0_alpha20050201 (0)
318 [-P-] [ ] app-editors/vim-6.3-r2 (0)
319 [-P-] [M~] app-editors/vim-7.0_alpha20050122 (0)
320 [-P-] [M~] app-editors/vim-core-7.0_alpha20050126 (0)
321 [-P-] [ ] app-editors/vim-core-6.3-r3 (0)
322 [-P-] [M~] app-editors/vim-core-7.0_alpha20050122 (0)
323 [-P-] [M~] app-editors/vim-core-7.0_alpha20050201 (0)
324 [-P-] [ ] app-editors/vim-core-6.3-r4 (0)
325 * overlay tree (/opt/ebuilds)
326 </pre>
327
328 </body>
329 </section>
330 <section>
331 <title>查找软件包大小</title>
332 <body>
333
334 <p>
335 你甚至想知道一个软件包占用多少空间?因为一个软件包可以在许多目录有它的文件,通常使用<c>du -hc</c>可能不能给你正确的数字。别着急,<c>equery</c>来拯救你了!
336 </p>
337
338 <pre caption="软件包大小">
339 # <i>equery size openoffice-bin</i>
340 * app-office/openoffice-bin-1.1.2
341 Total Files : 2908
342 Total Size : 223353.31 KiB
343 </pre>
344
345 <p>
346 正如你所见,<c>equery</c>以KB为单位打印出了全部的已用空间,并且它也列出了那个软件包的所有文件数。
347 </p>
348
349 </body>
350 </section>
351 <section>
352 <title>USE标记的Package-wise列表</title>
353 <body>
354
355 <p>
356 <c>equery</c>可以被用来给我们有关一个特定的软件包使用的USE标记的信息。它也可以告诉我们一个软件包正在使用的USE标记和可以使用的USE标记。
357 </p>
358
359 <pre caption="设置和取消USE标记">
360 # <i>equery uses wireshark</i>
361 [ Colour Code : set unset ]
362 [ Legend : (U) Col 1 - Current USE flags ]
363 [ : (I) Col 2 - Installed With USE flags ]
364
365 U I [ Found these USE variables in : net-analyzer/wireshark-0.99.4 ]
366 - - adns : Adds support for the adns DNS client library
367 + + gtk : Adds support for x11-libs/gtk+ (The GIMP Toolkit)
368 - - ipv6 : Adds support for IP version 6
369 - - kerberos : Adds kerberos support
370 - - portaudio : Adds support for the crossplatform portaudio audio API
371 - - selinux : !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
372 - - snmp : Adds support for the Simple Network Management Protocol if available
373 + + ssl : Adds support for Secure Socket Layer connections
374 - - threads : Adds threads support for various packages. Usually pthreads
375 </pre>
376
377 <p>
378 我安装了wireshark,并且仅仅使用了gtk和ssl两个USE标记,但是那里还有一些其他的wireshark可以使用的USE标记。请参考<uri link="/doc/zh_cn/handbook/">Gentoo手册</uri>里的<uri link="/doc/zh_cn/handbook/handbook-x86.xml?part=2&amp;chap=2">USE标记</uri>这一章来得到更多信息。
379 </p>
380
381 </body>
382 </section>
383 <section>
384 <title>ebuild在哪儿?</title>
385 <body>
386
387 <p>
388 我们也可以使用<c>equery</c>来找出一个特定的软件包所使用的ebuild文件。你可以使用<c>equery which</c>来达到目的,这是一个显示一个ebuild文件完整路径的命令。
389 </p>
390
391 <pre caption="显示ebuild路径">
392 # <i>equery which cdrtools</i>
393 /usr/portage/app-cdr/cdrtools/cdrtools-2.01_alpha37.ebuild
394 </pre>
395
396 </body>
397 </section>
398 </chapter>
399
400 <chapter>
401 <title>euse</title>
402 <section>
403 <title>介绍</title>
404 <body>
405
406 <p>
407 <c>euse</c>是一个用来在多个地方查看、设置和取消USE标记的工具。请参考<uri link="/doc/zh_cn/handbook/handbook-x86.xml?part=2&amp;chap=2">USE标记</uri>来得到更多信息。请查看<c>euse -h</c>来得到完整的帮助和所有的选项。
408 </p>
409
410 </body>
411 </section>
412 <section>
413 <title>查看,设置和取消USE标记</title>
414 <body>
415
416 <p>
417 <c>euse -a</c>命令读取当前激活的USE标记并把它们显示出来。
418 </p>
419
420 <note>
421 <c>euse</c>用5列的输出信息来显示一个USE标记是否被设置或取消和在哪里被设置或取消。那些列分别表示+/-(激活活取消)、是在环境里设置的、是在make.conf里设置的、是在make.Defaults里设置的和是在make.Globals里设置的。输出的信息就像这样[+ECDG]。
422 </note>
423
424 <pre caption="常看所有活跃的USE标记">
425 # <i>euse -a</i>
426 X [+ CD ]
427 aalib [+ ]
428 acpi [+ C ]
429 alsa [+ C ]
430 apache2 [+ C ]
431 apm [+ D ]
432 avi [+ D ]
433 berkdb [+ D ]
434 bitmap-fonts [+ D ]
435 bonobo [+ ]
436 cdr [+ C ]
437 crypt [+ CD ]
438 cscope [+ C ]
439 cups [+ CD ]
440 curl [+ ]
441 emboss [+ D ]
442 encode [+ D ]
443 esd [+ ]
444 fam [+ ]
445 fbcon [+ C ]
446 firefox [+ C ]
447 font-server [+ D ]
448 foomaticdb [+ D ]
449 fortran [+ D ]
450 gd [+ C ]
451 gdbm [+ D ]
452 gif [+ CD ]
453 gimpprint [+ C ]
454 gnome [+ CD ]
455 gphoto2 [+ ]
456 gpm [+ CD ]
457 gstreamer [+ C ]
458 gtk [+ D ]
459 gtkhtml [+ C ]
460 guile [+ ]
461 imagemagick [+ ]
462 imlib [+ CD ]
463 innodb [+ ]
464 ipv6 [+ D ]
465 javascript [+ C ]
466 jpeg [+ CD ]
467 kde [+ D ]
468 ldap [+ ]
469 libg++ [+ CD ]
470 libwww [+ CD ]
471 mad [+ CD ]
472 mbox [+ C ]
473 md5sum [+ C ]
474 mikmod [+ CD ]
475 mmx [+ C ]
476 motif [+ CD ]
477 mp3 [+ ]
478 mpeg [+ CD ]
479 mpeg4 [+ C ]
480 mysql [+ C ]
481 ncurses [+ CD ]
482 nls [+ D ]
483 nvidia [+ C ]
484 odbc [+ ]
485 offensive [+ ]
486 ogg [+ CD ]
487 opengl [+ CD ]
488 oss [+ D ]
489 pam [+ CD ]
490 pdflib [+ CD ]
491 perl [+ CD ]
492 png [+ CD ]
493 python [+ CD ]
494 qt [+ D ]
495 quicktime [+ CD ]
496 readline [+ CD ]
497 ruby [+ ]
498 sdl [+ CD ]
499 slang [+ D ]
500 spell [+ CD ]
501 sse [+ C ]
502 ssl [+ CD ]
503 svga [+ CD ]
504 tcltk [+ C ]
505 tcpd [+ D ]
506 tiff [+ C ]
507 truetype [+ CD ]
508 usb [+ C ]
509 vanilla [+ C ]
510 x86 [+ C ]
511 xml [+ ]
512 xosd [+ C ]
513 xv [+ CD ]
514 xvid [+ C ]
515 zlib [+ CD ]
516 </pre>
517
518 <p>
519 相似地你可以使用<c>euse -a -g</c>命令来只显示活跃的全局USE标记。<c>euse -a -l</c>命令只显示活跃的局部USE标记。<c>-g</c> &amp; <c>-l</c>是<c>euse</c>的子选项,并且需要一个选项在他们之前(像<c>-a</c>)来正确运行。
520 </p>
521
522 <pre caption="查看活跃的局部USE标记">
523 # <i>euse -a -l</i>
524 bitmap-fonts [+ D ]
525 font-server [+ D ]
526 fortran [+ D ]
527 gimpprint [+ C ]
528 md5sum [+ C ]
529 mpeg4 [+ C ]
530 nvidia [+ C ]
531 offensive [+ ]
532 truetype [+ CD ]
533 </pre>
534
535 <p>
536 我们也可以使用<c>euse</c>来设置或取消USE标记。命令是这样的:<c>euse -E flagname</c>(启用一个USE标记)和<c>euse -D flagname</c>(禁用一个USE标记)。
537 </p>
538
539 <warn>
540 请不要单独使用<c>euse -E</c>或<c>euse -D</c>命令(就是没有USE标记的情况)。它会设置/取消所有在<c>/etc/make.conf</c>里的USE标记。虽然一个备份被保存在了<path>/etc/make.conf.euse_backup</path>里,但是在使用<c>euse -E</c>或<c>euse -D</c>的时候请小心。
541 </warn>
542
543 <pre caption="设置和取消USE标记">
544 <comment>(启用一个USE标记)</comment>
545 # <i> euse -E 3dfx</i>
546 /etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup
547
548 <comment>(在那个命令后的/etc/make.conf)</comment>
549 USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \
550 firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \
551 innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
552 mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \
553 ogg odbc offensive opengl pam pdflib perl png python \
554 quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
555 vanilla X xosd xv xvid x86 zlib 3dfx"
556
557 <comment>(禁用USE标记)</comment>
558 # <i> euse -D 3dfx</i>
559 /etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup
560
561 <comment>(在那个命令后的/etc/make.conf)</comment>
562 USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \
563 firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \
564 innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
565 mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \
566 ogg odbc offensive opengl pam pdflib perl png python \
567 quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
568 vanilla X xosd xv xvid x86 zlib -3dfx"
569 </pre>
570
571 <note>
572 <c>euse</c>不是物理地从make.conf里移除USE标记。它只是在USE标记前叫了一个-(减号)来取消它。你可能要手动地清理你的make.conf来避免不想要的变量。
573 </note>
574
575 </body>
576 </section>
577 </chapter>
578
579 <chapter>
580 <title>其他工具</title>
581 <section>
582 <title>revdep-rebuild</title>
583 <body>
584
585 <p>
586 这个工具是Gentoo's Reverse Dependency(Gentoo反向依赖关系)的重建者。它可以通过扫描你已经安装了的ebuild文件来了解软件包是否因为一次它们依赖的软件包的升级而被破坏。它可以为你重新emerge这些软件包。但也可能是给定的软件包在当前的依赖环境下无法再工作了,在这种情况下你应该把这些破损的软件包升级到一个较新的版本。revdep-rebuild会通过标志来emerge,这让你能使用<c>--pretend</c>标志在你进行进一步工作前来查看哪些东西要被重新emerge。
587 </p>
588
589 <pre caption="假装(pretend mode)运行revdep-rebuild">
590 # <i>revdep-rebuild -p</i>
591
592 Checking reverse dependencies...
593 Packages containing binaries and libraries broken by any package update,
594 will be recompiled.
595
596 Collecting system binaries and libraries... done.
597 (/root/.revdep-rebuild.1_files)
598
599 Collecting complete LD_LIBRARY_PATH... done.
600 (/root/.revdep-rebuild.2_ldpath)
601
602 Checking dynamic linking consistency...
603 broken /usr/lib/ao/plugins-2/libarts.so (requires libartsc.so.0)
604 broken /usr/lib/kde3/libkpresenterpart.so (requires libartskde.so.1 libqtmcop.so.1
605 libsoundserver_idl.so.1 libkmedia2_idl.so.1 libartsflow.so.1 libartsflow_idl.so.1 libmcop.so.1)
606 broken /usr/lib/ruby/site_ruby/1.8/i686-linux/fox.so (requires libFOX-1.0.so.0)
607 broken /usr/lib/xine/plugins/1.0.0/xineplug_ao_out_arts.so (requires libartsc.so.0)
608 broken /usr/lib/perl5/vendor_perl/5.8.0/i686-linux/auto/SDL_perl/SDL_perl.so (requires libSDL_gfx.so.0)
609 broken /usr/lib/libloudmouth-1.so.0.0.0 (requires libgnutls.so.10)
610 broken /usr/bin/k3b (requires libartskde.so.1 libqtmcop.so.1 libsoundserver_idl.so.1 libkmedia2_idl.so.1
611 libartsflow.so.1 libartsflow_idl.so.1 libmcop.so.1)
612 broken /usr/bin/lua (requires libhistory.so.4)
613 broken /usr/bin/lyx (requires libAiksaurus-1.0.so.0)
614 broken /usr/bin/luac (requires libhistory.so.4)
615 broken /usr/bin/avidemux2 (requires libartsc.so.0)
616 broken /usr/bin/pptout (requires libxml++-0.1.so.11)
617 broken /usr/bin/xml2ps (requires libxml++-0.1.so.11)
618 done.
619 (/root/.revdep-rebuild.3_rebuild)
620
621 Assigning files to ebuilds... done.
622 (/root/.revdep-rebuild.4_ebuilds)
623
624 Evaluating package order... done.
625 (/root/.revdep-rebuild.5_order)
626
627 All prepared. Starting rebuild...
628 emerge --oneshot --nodeps -p =app-cdr/k3b-0.11.14 =app-office/koffice-1.3.2 =app-office/lyx-1.3.4 \
629 =app-office/passepartout-0.2 =dev-lang/lua-5.0.2 =dev-ruby/fxruby-1.0.29 =media-libs/libao-0.8.5 \
630 =media-libs/xine-lib-1_rc5-r3 =media-video/avidemux-2.0.26 =net-libs/loudmouth-0.16
631
632 These are the packages that I would merge, in order:
633
634 Calculating dependencies ...done!
635 [ebuild R ] app-cdr/k3b-0.11.14
636 [ebuild R ] app-office/koffice-1.3.2
637 [ebuild R ] app-office/lyx-1.3.4
638 [ebuild R ] app-office/passepartout-0.2
639 [ebuild R ] dev-lang/lua-5.0.2
640 [ebuild R ] dev-ruby/fxruby-1.0.29
641 [ebuild R ] media-libs/libao-0.8.5
642 [ebuild R ] media-libs/xine-lib-1_rc5-r3
643 [ebuild R ] media-video/avidemux-2.0.26
644 [ebuild R ] net-libs/loudmouth-0.16
645
646 Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.
647 </pre>
648
649 <p>
650 如果你需要重新编译一些软件包,你可以在没有<c>-p</c>标志的情况下运行<c>revdep-rebuild</c>,然后被列出的软件包就会被重新emerge。
651 </p>
652
653 </body>
654 </section>
655 <section>
656 <title>glsa-check</title>
657 <body>
658
659 <p>
660 <c>glsa-check</c>是一个测试工具来留意多种GLSA(Gentoo Linux Security Advisory——Gentoo Linux安全建议),并且最后被整合到<c>emerge</c>和<c>equery</c>去了。请访问<uri link="/proj/en/portage/glsa-integration.xml">Portage GLSA整合页面</uri>来得到更多信息。
661 </p>
662
663 </body>
664 </section>
665 <section>
666 <title>eread</title>
667 <body>
668
669 <p>
670 <c>eread</c>是一个用来显示<c>大于或等于2.1版本</c>的portage产生的elog文件的简单组件。你可以通过设置<path>/etc/make.conf</path>里的一些变量来设置elog文件的存储。
671 </p>
672
673 <pre caption="在/etc/make.conf中启用elog">
674 PORTAGE_ELOG_CLASSES="log"
675 PORTAGE_ELOG_SYSTEM="save"
676 </pre>
677
678 <note>
679 这只是存储elog信息的其中一条途径。请参考在<uri link="/doc/zh_cn/handbook/handbook-x86.xml?part=3&amp;chap=1#doc_chap4">Portage Handbook</uri>里的适当的页面来得到更多有关portage的elog系统如果工作的信息。
680 </note>
681
682 <p>
683 一旦你配置了eread,只要运行<c>eread</c>就能查看你的log文件了。
684 </p>
685
686 <pre caption="使用eread">
687 $ <i>eread</i>
688
689 This is a list of portage log items. Choose a number to view that file or type q to quit.
690
691 1) app-portage:gentoolkit-0.2.4_pre2:20070320-000256.log
692 2) app-portage:gentoolkit-0.2.4_pre2:20070320-000258.log
693 3) app-portage:gentoolkit-0.2.4_pre2:20070320-000319.log
694 4) app-portage:gentoolkit-0.2.3:20070320-000408.log
695 Choice?
696 </pre>
697
698 <p>
699 选择一个数字,然后文件就会通过在“PAGER”环境变量里特定的页面系统(Paging System)而被显示。如果“PAGER”变量没有被设置,它会使用<c>less</c>。
700 </p>
701
702 <p>
703 在显示了elog项目后,如果你想要删除那个文件你就会被提醒。
704 </p>
705
706 </body>
707 </section>
708 </chapter>
709
710 </guide>
711
712
713
714 --
715 gentoo-commits@l.g.o mailing list