/[gentoo]/xml/htdocs/doc/en/gentoolkit.xml
Gentoo

Diff of /xml/htdocs/doc/en/gentoolkit.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.26 Revision 1.33
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoolkit.xml,v 1.26 2007/03/05 21:07:33 nightmorph Exp $ --> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoolkit.xml,v 1.33 2010/10/03 18:47:51 nightmorph Exp $ -->
3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
4 4
5<guide link="/doc/en/gentoolkit.xml"> 5<guide>
6<title>Gentoolkit</title> 6<title>Gentoolkit</title>
7 7
8<author title="Author"> 8<author title="Author">
9 <mail link="mbutcher@aleph-null.tv">Matt Butcher</mail> 9 <mail link="mbutcher@aleph-null.tv">Matt Butcher</mail>
10</author> 10</author>
35This document covers the basics of some of the tools present in Gentoolkit. 35This document covers the basics of some of the tools present in Gentoolkit.
36</abstract> 36</abstract>
37 37
38<!-- Licensed under GFDL --> 38<!-- Licensed under GFDL -->
39 39
40<version>1.11</version> 40<version>2</version>
41<date>2007-02-20</date> 41<date>2010-10-03</date>
42 42
43<chapter> 43<chapter>
44<title>Introduction</title> 44<title>Introduction</title>
45<section> 45<section>
46<title>What is Gentoolkit?</title> 46<title>What is Gentoolkit?</title>
57 57
58<note> 58<note>
59As of now, there are two versions of gentoolkit: <c>app-portage/gentoolkit</c> 59As of now, there are two versions of gentoolkit: <c>app-portage/gentoolkit</c>
60and <c>app-portage/gentoolkit-dev</c>. While the former contains administration 60and <c>app-portage/gentoolkit-dev</c>. While the former contains administration
61scripts, the latter contains scripts specific to help development on Gentoo. 61scripts, the latter contains scripts specific to help development on Gentoo.
62If you are a developer, you can have your scripts included into 62If you are a developer, you can have your scripts included into
63<c>gentoolkit-dev</c> by contacting the Gentoolkit maintainer. This document 63<c>gentoolkit-dev</c> by contacting the Gentoolkit maintainer. This document
64discusses gentoolkit only. 64discusses gentoolkit only.
65</note> 65</note>
66 66
67<p> 67<p>
68Gentoolkit contains a whole bunch of useful tools to help manage your packages 68Gentoolkit contains a whole bunch of useful tools to help manage your packages
69and keep track of what is going on in your system. Most users --&nbsp;particularly 69and keep track of what is going on in your system. Most users
70those who update systems often&nbsp;-- will benefit from having gentoolkit 70--&nbsp;particularly those who update systems often&nbsp;-- will benefit from
71installed. 71having gentoolkit installed.
72</p> 72</p>
73 73
74</body> 74</body>
75</section> 75</section>
76<section> 76<section>
136<section> 136<section>
137<title>Finding the Package That a File Came From</title> 137<title>Finding the Package That a File Came From</title>
138<body> 138<body>
139 139
140<p> 140<p>
141<c>equery</c> also provides the functionality of finding the package that a 141<c>equery</c> also provides the functionality of finding the package that a
142file came from, using <c>belongs</c> command (or just <c>b</c>). 142file came from, using <c>belongs</c> command (or just <c>b</c>).
143</p> 143</p>
144 144
145<pre caption="Finding the ebuild that installed a given file"> 145<pre caption="Finding the ebuild that installed a given file">
146# <i>equery belongs /usr/bin/audacious</i> 146# <i>equery belongs /usr/bin/audacious</i>
147[ Searching for file(s) /usr/bin/audacious in *... ] 147[ Searching for file(s) /usr/bin/audacious in *... ]
148media-sound/audacious-1.1.2 (/usr/bin/audacious) 148media-sound/audacious-1.1.2 (/usr/bin/audacious)
149</pre> 149</pre>
150 150
151<p> 151<p>
152By using the <c>-f</c> option, you may search for packages with files 152By using the <c>-f</c> option, you may search for packages with files
153matching any regular expression. The <c>-e</c> option is useful for 153matching any regular expression. The <c>-e</c> option is useful for
154terminating your search immediately when a match is found. 154terminating your search immediately when a match is found.
155</p> 155</p>
156 156
157</body> 157</body>
158</section> 158</section>
159<section> 159<section>
160<title>Verifying Package Integrity</title> 160<title>Verifying Package Integrity</title>
161<body> 161<body>
162 162
163<p> 163<p>
164Sometimes it is useful to check a package's integrity. <c>equery</c> can 164Sometimes it is useful to check a package's integrity. <c>equery</c> can
165verify md5 sums as well as timestamps to indicate when a package might 165verify md5 sums as well as timestamps to indicate when a package might
166have been corrupted, replaced, or removed. 166have been corrupted, replaced, or removed.
167</p> 167</p>
168 168
169<pre caption="OK package integrity"> 169<pre caption="OK package integrity">
170# <i>equery check gentoolkit</i> 170# <i>equery check gentoolkit</i>
183<title>List of all packages depending on ...</title> 183<title>List of all packages depending on ...</title>
184<body> 184<body>
185 185
186<p> 186<p>
187<c>equery</c> is able to list all direct dependencies matching a package. 187<c>equery</c> is able to list all direct dependencies matching a package.
188The function we should use to do this is <c>depends</c> and it's as easy as: 188The function we should use to do this is <c>depends</c> and it's as easy as:
189</p> 189</p>
190 190
191<pre caption="Looking for packages depending on pygtk"> 191<pre caption="Looking for packages depending on pygtk">
192# <i>equery depends pygtk</i> 192# <i>equery depends pygtk</i>
193[ Searching for packages depending on pygtk... ] 193[ Searching for packages depending on pygtk... ]
203<section> 203<section>
204<title>Dependency Graphs</title> 204<title>Dependency Graphs</title>
205<body> 205<body>
206 206
207<p> 207<p>
208<c>equery</c> is capable of giving us a dependency graph for a specified 208<c>equery</c> is capable of giving us a dependency graph for a specified
209package. The dependency graph gives a listing of all the packages that have 209package. The dependency graph gives a listing of all the packages that have
210direct and indirect dependencies on the package in question. 210direct and indirect dependencies on the package in question.
211</p> 211</p>
212 212
213<pre caption="Dependency Graph for cdrtools"> 213<pre caption="Dependency Graph for cdrtools">
214# <i>equery depgraph cdrtools</i> 214# <i>equery depgraph cdrtools</i>
229 `-- app-arch/gzip-1.3.5-r1 229 `-- app-arch/gzip-1.3.5-r1
230 `-- sys-apps/portage-2.0.50-r10 230 `-- sys-apps/portage-2.0.50-r10
231</pre> 231</pre>
232 232
233<p> 233<p>
234For example, while glibc is a direct dependency for cdrtools,linux-headers 234For example, while glibc is a direct dependency for cdrtools,linux-headers
235are an indirect dependency. Note that the output also includes information 235are an indirect dependency. Note that the output also includes information
236about virtual packages. In the example above, <c>cdrtools</c> is actually 236about virtual packages. In the example above, <c>cdrtools</c> is actually
237written to require virtual/libc, not sys-libs/glibc, but on the given 237written to require virtual/libc, not sys-libs/glibc, but on the given
238system in the example sys-libs/glibc provides virtual/libc. 238system in the example sys-libs/glibc provides virtual/libc.
239</p> 239</p>
240 240
241</body> 241</body>
242</section> 242</section>
243<section> 243<section>
244<title>Listing Files Belonging to an Ebuild</title> 244<title>Listing Files Belonging to an Ebuild</title>
245<body> 245<body>
246 246
247<p> 247<p>
248<c>equery</c> can list the files that belong to an installed ebuild. If I 248<c>equery</c> can list the files that belong to an installed ebuild. If I
249don't know the files that Gentoolkit has installed on the system, I will 249don't know the files that Gentoolkit has installed on the system, I will
250use <c>equery</c> to show them. 250use <c>equery</c> to show them.
251</p> 251</p>
252 252
253<pre caption="Listing files"> 253<pre caption="Listing files">
278 278
279[...] 279[...]
280</pre> 280</pre>
281 281
282<p> 282<p>
283The command <c>files</c> of <c>equery</c> provide some options to modify 283The command <c>files</c> of <c>equery</c> provide some options to modify
284the output. You can look them all up in the <c>equery</c> man page. 284the output. You can look them all up in the <c>equery</c> man page.
285</p> 285</p>
286 286
287</body> 287</body>
288</section> 288</section>
289<section> 289<section>
290<title>Looking for packages that use a specific USE flag</title> 290<title>Looking for packages that use a specific USE flag</title>
291<body> 291<body>
292 292
293<p> 293<p>
294If you want to find which packages on your system that make use of a specific 294If you want to find which packages on your system that make use of a specific
295USE flag, <c>equery</c> has the function <c>hasuse</c>: 295USE flag, <c>equery</c> has the function <c>hasuse</c>:
296</p> 296</p>
297 297
298<pre caption="Searching packages which use the firefox USE flag"> 298<pre caption="Searching packages which use the firefox USE flag">
299# <i>equery hasuse firefox</i> 299# <i>equery hasuse firefox</i>
308<section> 308<section>
309<title>Listing Packages</title> 309<title>Listing Packages</title>
310<body> 310<body>
311 311
312<p> 312<p>
313<c>equery</c> has a power feature to list packages belonging to our system, 313<c>equery</c> has a power feature to list packages belonging to our system,
314portage or even an overlay. Let's try this: 314portage or even an overlay. Let's try this:
315</p> 315</p>
316 316
317<pre caption="Listing packages with equery"> 317<pre caption="Listing packages with equery">
318# <i>equery list gentoolkit</i> 318# <i>equery list gentoolkit</i>
320 * installed packages 320 * installed packages
321[I--] [ ] app-portage/gentoolkit-0.2.0 (0) 321[I--] [ ] app-portage/gentoolkit-0.2.0 (0)
322</pre> 322</pre>
323 323
324<p> 324<p>
325The standard query will search our installed packages for the name given. 325The standard query will search our installed packages for the name given.
326If found, the following info will be displayed: the package location between 326If found, the following info will be displayed: the package location between
327the first square brackets (I for Installed packages, P for Portage, O for 327the first square brackets (I for Installed packages, P for Portage, O for
328Overlay), the possibles masks between the second (~ by keyword, - by arch or 328Overlay), the possible masks between the second (~ by keyword, - by arch or
329M hard masked), then the category and complete name and last of all, the slot 329M hard masked), then the category and complete name and last of all, the slot
330in which the package is stored. 330in which the package is stored.
331</p> 331</p>
332 332
333<p> 333<p>
334Another example, this time we are going to use the local options in order 334Another example, this time we are going to use the local options in order
372 Total Files : 2908 372 Total Files : 2908
373 Total Size : 223353.31 KiB 373 Total Size : 223353.31 KiB
374</pre> 374</pre>
375 375
376<p> 376<p>
377As you can see, <c>equery</c> prints the total space used in kilobytes and 377As you can see, <c>equery</c> prints the total space used in kilobytes and
378also lists the total number of files the package has. 378also lists the total number of files the package has.
379</p> 379</p>
380 380
381</body> 381</body>
382</section> 382</section>
383<section> 383<section>
384<title>Package-wise list of USE Flags</title> 384<title>Package-wise list of USE Flags</title>
385<body> 385<body>
386 386
387<p> 387<p>
388<c>equery</c> can be used to give us information about what USE flags 388<c>equery</c> can be used to give us information about what USE flags
389are being used by a specific package. It also tells us what our current USE 389are being used by a specific package. It also tells us what our current USE
390flags are for a package and also what USE flags are available for the package. 390flags are for a package and also what USE flags are available for the package.
391</p> 391</p>
392 392
393<pre caption="Set and Unset USE Flags"> 393<pre caption="Set and Unset USE Flags">
394# <i>equery uses wireshark</i> 394# <i>equery uses wireshark</i>
422<title>Where's the ebuild?</title> 422<title>Where's the ebuild?</title>
423<body> 423<body>
424 424
425<p> 425<p>
426We can also find out which ebuild is being used for a specific package using 426We can also find out which ebuild is being used for a specific package using
427<c>equery</c>. This is done my using the <c>equery which</c> command which 427<c>equery</c>. This is done by using the <c>equery which</c> command which
428displays the full path to the ebuild. 428displays the full path to the ebuild.
429</p> 429</p>
430 430
431<pre caption="Displaying the ebuild path"> 431<pre caption="Displaying the ebuild path">
432# <i>equery which cdrtools</i> 432# <i>equery which cdrtools</i>
444<body> 444<body>
445 445
446<p> 446<p>
447<c>euse</c> is a tool to see, set and unset USE flags at various places. For 447<c>euse</c> is a tool to see, set and unset USE flags at various places. For
448more information on USE flags, please refer to the <uri 448more information on USE flags, please refer to the <uri
449link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=2">USE Flags</uri>. 449link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=2">USE Flags</uri>.
450Please see <c>euse -h</c> for complete help and all options. 450Please see <c>euse -h</c> for complete help and all options.
451</p> 451</p>
452 452
453</body> 453</body>
454</section> 454</section>
455<section> 455<section>
456<title>Viewing, Setting and Unsetting USE Flags</title> 456<title>Viewing, Setting and Unsetting USE Flags</title>
457<body> 457<body>
458 458
459<p> 459<p>
460The <c>euse -a</c> command reads the current active USE flags and displays 460The <c>euse -a</c> command reads the current active USE flags and displays
461them. 461them.
462</p> 462</p>
463 463
464<note> 464<note>
465There are 5 &quot;columns&quot; that <c>euse</c> now uses to show whether a 465There are 5 &quot;columns&quot; that <c>euse</c> now uses to show whether a
466flag is set/unset and where all the flag has been set. The columns are as 466flag is set/unset and where all the flag has been set. The columns are as
467follows -- +/-, set in the Environment, set in make.Conf, set in make.Defaults, 467follows -- +/-, set in the Environment, set in make.Conf, set in make.Defaults,
468and set in make.Globals. The output looks like [+ECDG]. 468and set in make.Globals. The output looks like [+ECDG].
469</note> 469</note>
470 470
471<pre caption="Viewing all active USE flags"> 471<pre caption="Viewing all active USE flags">
472# <i>euse -a</i> 472# <i>euse -a</i>
473X [+ CD ] 473X [+ CD ]
561xvid [+ C ] 561xvid [+ C ]
562zlib [+ CD ] 562zlib [+ CD ]
563</pre> 563</pre>
564 564
565<p> 565<p>
566Similarly you can use the <c>euse -a -g</c> command to only view active global 566Similarly you can use the <c>euse -a -g</c> command to only view active global
567USE flags. The <c>euse -a -l</c> command does the same for active local USE 567USE flags. The <c>euse -a -l</c> command does the same for active local USE
568flags.<c>-g</c> &amp; <c>-l</c> are suboptions to <c>euse</c> and need an 568flags.<c>-g</c> &amp; <c>-l</c> are suboptions to <c>euse</c> and need an
569option before them (like <c>-a</c>) to function correctly. 569option before them (like <c>-a</c>) to function correctly.
570</p> 570</p>
571 571
572<pre caption="Viewing active local USE flags"> 572<pre caption="Viewing active local USE flags">
573# <i>euse -a -l</i> 573# <i>euse -a -l</i>
581offensive [+ ] 581offensive [+ ]
582truetype [+ CD ] 582truetype [+ CD ]
583</pre> 583</pre>
584 584
585<p> 585<p>
586We can also use <c>euse</c> to set or unset use flags. The commands used for 586We can also use <c>euse</c> to set or unset use flags. The commands used for
587this are <c>euse -E flagname</c> (enable a flag) and <c>euse -D flagname</c> 587this are <c>euse -E flagname</c> (enable a flag) and <c>euse -D flagname</c>
588(disable a flag). 588(disable a flag).
589</p> 589</p>
590 590
591<warn> 591<warn>
592Do not use the <c>euse -E</c> or <c>euse -D</c> commands by themselves (without 592Do not use the <c>euse -E</c> or <c>euse -D</c> commands by themselves (without
593a flag). It will set/unset ALL USE flags in <c>/etc/make.conf</c>. Although a 593a flag). It will set/unset ALL USE flags in <c>/etc/make.conf</c>. Although a
594backup is kept at <path>/etc/make.conf.euse_backup</path>, please be careful 594backup is kept at <path>/etc/make.conf.euse_backup</path>, please be careful
595while using <c>euse -E</c> or <c>euse -D</c>. 595while using <c>euse -E</c> or <c>euse -D</c>.
596</warn> 596</warn>
597 597
598<pre caption="Setting and Unsetting USE flags"> 598<pre caption="Setting and Unsetting USE flags">
599<comment>(Enabling a USE Flag)</comment> 599<comment>(Enabling a USE Flag)</comment>
689 (/root/.revdep-rebuild.5_order) 689 (/root/.revdep-rebuild.5_order)
690 690
691All prepared. Starting rebuild... 691All prepared. Starting rebuild...
692emerge --oneshot --nodeps -p =app-cdr/k3b-0.11.14 =app-office/koffice-1.3.2 =app-office/lyx-1.3.4 \ 692emerge --oneshot --nodeps -p =app-cdr/k3b-0.11.14 =app-office/koffice-1.3.2 =app-office/lyx-1.3.4 \
693 =app-office/passepartout-0.2 =dev-lang/lua-5.0.2 =dev-ruby/fxruby-1.0.29 =media-libs/libao-0.8.5 \ 693 =app-office/passepartout-0.2 =dev-lang/lua-5.0.2 =dev-ruby/fxruby-1.0.29 =media-libs/libao-0.8.5 \
694 =media-libs/xine-lib-1_rc5-r3 =media-video/avidemux-2.0.26 =net-libs/loudmouth-0.16 694 =media-libs/xine-lib-1_rc5-r3 =media-video/avidemux-2.0.26 =net-libs/loudmouth-0.16
695 695
696These are the packages that I would merge, in order: 696These are the packages that I would merge, in order:
697 697
698Calculating dependencies ...done! 698Calculating dependencies ...done!
699[ebuild R ] app-cdr/k3b-0.11.14 699[ebuild R ] app-cdr/k3b-0.11.14
700[ebuild R ] app-office/koffice-1.3.2 700[ebuild R ] app-office/koffice-1.3.2
701[ebuild R ] app-office/lyx-1.3.4 701[ebuild R ] app-office/lyx-1.3.4
702[ebuild R ] app-office/passepartout-0.2 702[ebuild R ] app-office/passepartout-0.2
703[ebuild R ] dev-lang/lua-5.0.2 703[ebuild R ] dev-lang/lua-5.0.2
704[ebuild R ] dev-ruby/fxruby-1.0.29 704[ebuild R ] dev-ruby/fxruby-1.0.29
705[ebuild R ] media-libs/libao-0.8.5 705[ebuild R ] media-libs/libao-0.8.5
706[ebuild R ] media-libs/xine-lib-1_rc5-r3 706[ebuild R ] media-libs/xine-lib-1_rc5-r3
707[ebuild R ] media-video/avidemux-2.0.26 707[ebuild R ] media-video/avidemux-2.0.26
708[ebuild R ] net-libs/loudmouth-0.16 708[ebuild R ] net-libs/loudmouth-0.16
709 709
710Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild. 710Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.
711</pre> 711</pre>
712 712
713<p> 713<p>
715the <c>-p</c> flag and the listed packages will be emerged again. 715the <c>-p</c> flag and the listed packages will be emerged again.
716</p> 716</p>
717 717
718</body> 718</body>
719</section> 719</section>
720
721<section> 720<section>
722<title>glsa-check</title> 721<title>glsa-check</title>
723<body> 722<body>
724 723
725<p> 724<p>
726<c>glsa-check</c> is mainly a test tool that keeps track of the various GLSA's 725<c>glsa-check</c> is mainly a test tool that keeps track of the various GLSAs
727(Gentoo Linux Security Advisory) and will eventually be integrated into 726(Gentoo Linux Security Advisory) and will eventually be integrated into
728<c>emerge</c> and <c>equery</c>. For more information, please visit the <uri 727<c>emerge</c> and <c>equery</c>.
729link="/proj/en/portage/glsa-integration.xml">Portage GLSA Integration 728</p>
730Page</uri>. 729
730</body>
731</section>
732<section>
733<title>eread</title>
734<body>
735
736<p>
737<c>eread</c> is a simple utility to display elog files produced by
738>=<c>portage-2.1</c>. You can set the saving of elog files by setting a couple
739of variables in <path>/etc/make.conf</path>:
740</p>
741
742<pre caption="Enabling elog in /etc/make.conf">
743PORTAGE_ELOG_CLASSES="log"
744PORTAGE_ELOG_SYSTEM="save"
745</pre>
746
747<note>
748This is just one way of saving elog messages. For more information on how
749Portage's elog system works, please refer to the appropriate page in the <uri
750link="/doc/en/handbook/handbook-x86.xml?part=3&amp;chap=1#doc_chap4">Portage
751Handbook</uri>.
752</note>
753
754<p>
755Once you've set up elog to your satisfaction, just run <c>eread</c> to view your
756log files.
757</p>
758
759<pre caption="Using eread">
760$ <i>eread</i>
761
762This is a list of portage log items. Choose a number to view that file or type
763q to quit.
764
7651) app-portage:gentoolkit-0.2.4_pre2:20070320-000256.log
7662) app-portage:gentoolkit-0.2.4_pre2:20070320-000258.log
7673) app-portage:gentoolkit-0.2.4_pre2:20070320-000319.log
7684) app-portage:gentoolkit-0.2.3:20070320-000408.log
769Choice?
770</pre>
771
772<p>
773Select a number and the file will be displayed using the paging program
774specified in the PAGER environment variable. If PAGER is not set, it will use
775<c>less</c>.
776</p>
777
778<p>
779After displaying the elog item, you will be prompted if you want to delete the
780file.
781</p>
782
783</body>
784</section>
785<section>
786<title>eclean</title>
787<body>
788
789<p>
790<c>eclean</c> is a tool to remove old source files and old binary packages from
791your system.
792</p>
793
794<p>
795When you build and install packages, the source files are downloaded and
796preserved in DISTDIR, usually <path>/usr/portage/distfiles</path>. This can
797accumulate several gigs of material over time if you don't clean it
798periodically. You can run <c>eclean-dist</c> to clean only source files from
799DISTDIR.
800</p>
801
802<p>
803You can create archives of installed packages by using <c>quickpg</c> or
804FEATURES="buildpkg". These archived packages are kept in PKGDIR, usually
805<path>/usr/portage/packages</path>. When you no longer need to keep them around,
806or if they're too old, you can run <c>eclean-pkg</c> to remove them from PKGDIR.
807It's a good way to ensure that any binary packages you have are only the latest
808versions.
809</p>
810
811<p>
812For more information on <c>eclean</c> and tips on maintaining a cruft-free
813system, please read <c>man eclean</c>.
731</p> 814</p>
732 815
733</body> 816</body>
734</section> 817</section>
735</chapter> 818</chapter>
736
737</guide> 819</guide>

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.33

  ViewVC Help
Powered by ViewVC 1.1.20