From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Qse5d-0005yZ-1E for garchives@archives.gentoo.org; Sun, 14 Aug 2011 17:03:11 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 94D5221C2A1; Sun, 14 Aug 2011 17:02:55 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 2921621C2A1 for ; Sun, 14 Aug 2011 17:02:55 +0000 (UTC) Received: from flycatcher.gentoo.org (flycatcher.gentoo.org [81.93.255.6]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4F8E11B404F for ; Sun, 14 Aug 2011 17:02:54 +0000 (UTC) Received: by flycatcher.gentoo.org (Postfix, from userid 617) id 08C0020051; Sun, 14 Aug 2011 17:02:53 +0000 (UTC) From: "Sven Vermeulen (swift)" To: gentoo-doc-cvs@lists.gentoo.org Subject: [gentoo-doc-cvs] gentoo commit in xml/htdocs/doc/en: gentoolkit.xml X-VCS-Repository: gentoo X-VCS-Files: gentoolkit.xml X-VCS-Directories: xml/htdocs/doc/en X-VCS-Committer: swift X-VCS-Committer-Name: Sven Vermeulen Content-Type: text/plain; charset=utf8 Message-Id: <20110814170253.08C0020051@flycatcher.gentoo.org> Date: Sun, 14 Aug 2011 17:02:53 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-doc-cvs@lists.gentoo.org Reply-to: docs-team@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: f87ae7c3841d64ac9fe7c62acf318bac swift 11/08/14 17:02:53 Modified: gentoolkit.xml Log: Bug #269071 - Many updates on gentoolkit.xml documentation, thanks to f= uzzyray Revision Changes Path 1.34 xml/htdocs/doc/en/gentoolkit.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/gent= oolkit.xml?rev=3D1.34&view=3Dmarkup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/gent= oolkit.xml?rev=3D1.34&content-type=3Dtext/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/gent= oolkit.xml?r1=3D1.33&r2=3D1.34 Index: gentoolkit.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoolkit.xml,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- gentoolkit.xml 3 Oct 2010 18:47:51 -0000 1.33 +++ gentoolkit.xml 14 Aug 2011 17:02:52 -0000 1.34 @@ -1,5 +1,5 @@ - + =20 @@ -29,6 +29,9 @@ Joshua Saddler + + Douglas Anderson + =20 Gentoolkit is a suite of tools to ease the administration of a Gentoo sy= stem. @@ -37,8 +40,8 @@ =20 =20 -2 -2010-10-03 +3 +2011-06-24 =20 Introduction @@ -88,7 +91,7 @@ Many of the tools in gentoolkit reveal important information about your = system or require root privilege. For that reason, some of the programs may onl= y be -executed (or only function properly) if run by a user with root permissi= on. +executed (or only function properly) if run by a user with root privileg= es. =20 @@ -113,305 +116,465 @@ =20

-equery is a tool that displays a great deal of useful information= about -the packages on your system and much more. equery --help gives yo= u the -full set of options. +equery is a tool that displays useful information about the packa= ges on +your system. equery is based on a system of modules.=20 +Every module has a shorthand name. For example, equery l gcc is t= he same +as equery list gcc. equery --help explains global options +and lists all available modules and their shorthand names.=20 +equery --help module will display the help screen for a specific +module. Lastly, man equery provides a detailed explanation of all +available modules and options, and provides useful examples.

=20 - -Not all features listed by equery --help have been implemented ye= t. -Those that have not been, are mentioned clearly. You will also see that -every command has a short option, e.g. b instead of belongs. - +

+Below is a list of features that work over the majority of modules. +

+ +
+(Many modules require a package argument. equery accepts all em=
erge-like input):
+$ equery --quiet list gcc                  # package
+sys-devel/gcc-4.3.2-r3
+$ equery --quiet list sys-devel/gcc        # category/pa=
ckage
+sys-devel/gcc-4.3.2-r3
+$ equery --quiet list '>=3Dsys-devel/gcc-4'  # atom synt=
ax
+sys-devel/gcc-4.3.2-r3
+
+(Like emerge, equery doesn't understand partial package names):=

+$ equery check zilla
+!!! No package found matching zilla
+
+(Unlike emerge, equery can accept shell-like globbing in the ca=
tegory and/or package name):
+$ equery check '*zilla*'
+ * Checking www-client/mozilla-firefox-3.0.14 ...
+    90 out of 90 files passed
+$ equery check www-c*/*
+ * Checking www-client/links-2.2 ...
+   30 out of 30 files passed
+ * Checking www-client/mozilla-firefox-3.0.14 ...
+   90 out of 90 files passed
+
+(Most equery modules take multiple input):
+$ equery hasuse sse sse2
+ * Searching for USE flag sse ...=20
+[IP-] [  ] media-libs/flac-1.2.1-r3 (0)
+[IP-] [  ] media-libs/speex-1.2_beta3_p2 (0)
+
+ * Searching for USE flag sse2 ...=20
+[IP-] [  ] dev-libs/openssl-0.9.8k (0)
+[IP-] [  ] x11-libs/pixman-0.16.0 (0)
+
+(A few modules also allow full regular expressions):
+$ equery -q list --portage-tree --full-regex '[kr]?flickr.*'
+dev-dotnet/flickrnet-bin-2.2
+dev-ruby/flickr-1.0.2-r1
+dev-ruby/flickr-1.0.2-r2
+dev-ruby/rflickr-20060201
+media-gfx/kflickr-0.6
+[...]
+
=20 -Be aware that equery currently changes the format of the output if it is= sent -through a pipe. The piped format is intended to be easier to parse by to= ols, but -you can also turn it off by adding the --no-pipe option. If you w= rite -scripts that employ equery, you should be aware of this. +Globbing support replaced a number of older options in equery. +For example, to act on all packages in a certain set, use '*'.=20 +To act on all packages in a category, use 'category-name/*'. =20 + +Don't forget to quote input when using special shell characters=20 +like asterisks or greater than/less than signs. + + +

+The next few sections in this document give a quick introduction to the +different equery modules. +

+
-Finding the Package That a File Came From +Finding the Package That a File Came From with belongs (b)</title= > <body> =20 +<pre caption=3D"Finding the Package that Installed a Given File"> +$ <i>equery belongs -e /usr/bin/glxgears</i> + * Searching for /usr/bin/glxgears ...=20 + x11-apps/mesa-progs-7.5.1 (/usr/bin/glxgears) +</pre> + <p> -<c>equery</c> also provides the functionality of finding the package tha= t a -file came from, using <c>belongs</c> command (or just <c>b</c>). +<c>belongs</c> can search for files matching a regular expression with t= he +<c>-f</c> option. The <c>-e</c> option stops searching after it finds a = match. +Since no file on your system should be owned by two packages, this is a = safe +optimization. </p> =20 -<pre caption=3D"Finding the ebuild that installed a given file"> -# <i>equery belongs /usr/bin/audacious</i> -[ Searching for file(s) /usr/bin/audacious in *... ] -media-sound/audacious-1.1.2 (/usr/bin/audacious) -</pre> +</body> +</section> +<section> +<title>Viewing ChangeLog Entries with changes (c) + =20

-By using the -f option, you may search for packages with files -matching any regular expression. The -e option is useful for -terminating your search immediately when a match is found. +changes lets you view ChangeLog entries for a package version or = range +of versions. Imagine after an emerge --sync, you=20 +notice Portage is going to be upgraded and want to check what has change= d:

=20 +
+(Show the latest installable version's entry):
+$ equery changes portage
+*portage-2.1.6.13 (03 May 2009)
+
+  03 May 2009; Zac Medico <zmedico@gentoo.org> +portage-2.1.6.13.e=
build:
+  2.1.6.13 bump. This fixes bug #268398 (document econf automatic die)
+  and bug #267104 (handle insufficient space interaction with userfetch)=
.
+  Bug #268228 tracks all bugs fixed since 2.1.6.11.
+
+
-Verifying Package Integrity +Verifying Package Integrity with check (k) =20

Sometimes it is useful to check a package's integrity. equery can -verify md5 sums as well as timestamps to indicate when a package might +verify MD5 sums as well as timestamps to indicate when a package might have been corrupted, replaced, or removed.

=20 -
-# equery check gentoolkit
-[ Checking app-portage/gentoolkit-0.2.0 ]
- * 54 out of 54 files good
+
+$ equery check gentoolkit
+ * Checking app-portage/gentoolkit-0.3.0_rc7 ...
+   71 out of 71 files passed
 
=20 -

-Please note that if you change configuration files after installation, -these may be reported as "not good". -

-
-List of all packages depending on ... +Listing All Packages Depending on Package X with depends (d)</tit= le> <body> =20 <p> -<c>equery</c> is able to list all direct dependencies matching a package= . -The function we should use to do this is <c>depends</c> and it's as easy= as: +Ever wonder why a certain package has been installed on your system? +<c>equery</c> can tell which packages list it as a dependency with +<c>depends</c>. Include indirect dependencies with the <c>-D</c> +option. </p> =20 -<pre caption=3D"Looking for packages depending on pygtk"> -# <i>equery depends pygtk</i> -[ Searching for packages depending on pygtk... ] -app-office/dia-0.93 -dev-python/gnome-python-2.0.0-r1 -gnome-extra/gdesklets-core-0.26.2 -media-gfx/gimp-2.0.4 -x11-libs/vte-0.11.11-r1 +<pre caption=3D"Looking for Packages Depending on pygtk"> +$ <i>equery depends pygtk</i> + * Searching for pygtk ... +app-admin/pessulus-2.24.0 (>=3Ddev-python/pygtk-2.6.0) +app-editors/gedit-2.24.3 (python ? >=3Ddev-python/pygtk-2.12) +dev-libs/libgweather-2.24.3 (python ? >=3Ddev-python/pygtk-2) +dev-python/gnome-python-base-2.22.3 (>=3Ddev-python/pygtk-2.10.3) +dev-python/gnome-python-desktop-base-2.24.1 (>=3Ddev-python/pygtk-2.10.3= ) +[...] </pre> =20 </body> </section> <section> -<title>Dependency Graphs +Getting Dependency Graphs with depgraph (g) =20

-equery is capable of giving us a dependency graph for a specified -package. The dependency graph gives a listing of all the packages that h= ave -direct and indirect dependencies on the package in question. -

- -
-# equery depgraph cdrtools
-Displaying dependencies for app-cdr/cdrtools-2.01_alpha37
-`-- app-cdr/cdrtools-2.01_alpha37
- `-- sys-libs/glibc-2.3.4.20040808 (virtual/libc)
-  `-- sys-kernel/linux-headers-2.4.22 (virtual/os-headers)
-   `-- sys-apps/baselayout-1.10.4
-    `-- sys-apps/sysvinit-2.85-r1
-     `-- sys-apps/gawk-3.1.3-r1
-      `-- sys-apps/util-linux-2.12-r4
-          `-- sys-apps/sed-4.0.9
-        `-- sys-libs/ncurses-5.4-r4
-            `-- sys-apps/pam-login-3.14
-            `-- sys-libs/pam-0.77-r1
-                 `-- sys-libs/cracklib-2.7-r10
-               `-- sys-apps/miscfiles-1.3-r1
-              `-- app-arch/gzip-1.3.5-r1
-              `-- sys-apps/portage-2.0.50-r10
+depgraph is the opposite of depends. You pass it a package=
, and
+it will find the packages it depends on (not that depend on it).
+When it finds a dependency, it will recursively search for all of
+that package's dependencies. Control how deep the tree gets with
+the --depth option.=20
+

+ +
+$ equery depgraph mozilla-firefox
+ * Searching for mozilla-firefox ...
+ * dependency graph for www-client/mozilla-firefox-2.0.0.19:
+`-- www-client/mozilla-firefox-2.0.0.19
+ `-- virtual/jre-1.6.0 (virtual/jre) [java]
+  `-- virtual/jdk-1.6.0 (virtual/jdk-1.6.0*)
+  `-- dev-java/icedtea6-bin (unable to resolve: package masked or remove=
d)
+   `-- dev-java/sun-jdk-1.6.0.15
+    `-- dev-java/java-sdk-docs-1.6.0.10 [doc]
+     `-- app-arch/unzip-6.0-r1
+      `-- app-arch/bzip2-1.0.5-r1 [bzip2]
+    `-- sys-libs/glibc-2.9_p20081201-r2
+     `-- sys-devel/gettext-0.17 [nls]
+      `-- virtual/libiconv-0 (virtual/libiconv)
+[...]
 
=20

-For example, while glibc is a direct dependency for cdrtools,linux-heade= rs -are an indirect dependency. Note that the output also includes informati= on -about virtual packages. In the example above, cdrtools is actuall= y -written to require virtual/libc, not sys-libs/glibc, but on the given -system in the example sys-libs/glibc provides virtual/libc. +Notice how jre is a direct dependency and jdk is an indire= ct +dependency if the java USE flag is set.

=20
-Listing Files Belonging to an Ebuild +Listing Files Installed by a Package with files (f) =20

-equery can list the files that belong to an installed ebuild. If = I -don't know the files that Gentoolkit has installed on the system, I will -use equery to show them. -

- -
-# equery files gentoolkit
-[ Searching for packages matching gentoolkit... ]
-app-portage/gentoolkit-0.2.0
-* Contents of app-portage/gentoolkit-0.2.0:
-/usr
-/usr/bin
-/usr/bin/equery
-/usr/bin/etcat
-/usr/bin/euse
-/usr/bin/glsa-check
-/usr/bin/qpkg
-/usr/bin/revdep-rebuild
-/usr/lib
-/usr/lib/gentoolkit
-/usr/lib/gentoolkit/pym
-/usr/lib/gentoolkit/pym/gentoolkit
-/usr/lib/gentoolkit/pym/gentoolkit/__init__.py
-/usr/lib/gentoolkit/pym/gentoolkit/gentoolkit.py
-/usr/lib/gentoolkit/pym/gentoolkit/pprinter.py
-/usr/lib/gentoolkit/pym/glsa.py
-/usr/sbin
-/usr/share
-/usr/share/doc
-/usr/share/doc/gentoolkit-0.2.0_pre10
-
+equery can list all the files installed by an ebuild with the
+files command. Try --tree to get an easy to read directory
+layout. Use --filter to only find a certain type of file. For exa=
mple,
+to find where executables were installed, use --filter=3Dcmd, and=
 to
+quickly find the configuration file location, try --filter=3Dconf=
.
+

+ +
+$ equery files --tree gentoolkit
+ * Searching for gentoolkit ...
+ * Contents of app-portage/gentoolkit-0.3.0_rc7:
+ /etc
+   > /eclean
+      + distfiles.exclude
+      + packages.exclude
+   > /env.d
+      + 99gentoolkit-env
+   > /revdep-rebuild
+      + 99revdep-rebuild
+ /usr
+   > /bin
+      + eclean
+      + eclean-dist -> eclean
+      + eclean-pkg -> eclean
+      + epkginfo
+      + equery
+      + eread
+      + euse
+      + glsa-check
+      + revdep-rebuild
+   > /lib
+      > /python2.6
+         > /site-packages
+            > /gentoolkit
+            + gentoolkit-0.3.0_rc7-py2.6.egg-info
+               + __init__.py
+               > /equery
+                  + __init__.py
+                  + belongs.py
+                  + changes.py
+                  + check.py
+                  + depends.py
+                  + depgraph.py
+                  + files.py
 [...]
 
=20 -

-The command files of equery provide some options to modify -the output. You can look them all up in the equery man page. -

-
-Looking for packages that use a specific USE flag +Looking for Packages that Have a Specific USE Flag with hasuse (h= ) =20

-If you want to find which packages on your system that make use of a spe= cific -USE flag, equery has the function hasuse: +You can use hasuse to find out which packages have a given USE fl= ag. +hasuse won't tell you if the flag is enabled, only if the ebuild = lists +it as an option. See the EXAMPLES section of hasuse in the=20 +equery man page for more tip on getting that information.

=20 -
-# equery hasuse firefox
-[ Searching for USE flag firefox in all categories among: ]
- * installed packages
-[I--] [  ] dev-python/gnome-python-extras-2.14.0-r1 (0)
-[I--] [  ] media-video/totem-2.16.4 (0)
+
+$ equery hasuse qt3 qt4
+ * Searching for USE flag qt3 ...=20
+[IP-] [  ] app-crypt/pinentry-0.7.5 (0)
+[IP-] [  ] net-dns/avahi-0.6.24-r2 (0)
+[IP-] [  ] net-wireless/wpa_supplicant-0.6.9 (0)
+
+ * Searching for USE flag qt4 ...=20
+[IP-] [  ] net-dns/avahi-0.6.24-r2 (0)
+[IP-] [  ] net-wireless/wpa_supplicant-0.6.9 (0)
 
=20
-Listing Packages +Listing Packages with list (l) =20

-equery has a power feature to list packages belonging to our syst= em, -portage or even an overlay. Let's try this: +list is a simple, yet powerful module to list packages that are i= nstalled, +in the Portage tree or in an overlay.

=20 -
-# equery list gentoolkit
-[ Searching for package 'gentoolkit' in all categories among: ]
- * installed packages
-[I--] [  ] app-portage/gentoolkit-0.2.0 (0)
+
+$ equery list '*'
+ * Searching for * ...
+[IP-] [  ] app-admin/eselect-1.2.3 (0)
+[IP-] [  ] app-admin/eselect-ctags-1.10 (0)
+[IP-] [  ] app-admin/eselect-esd-20060719 (0)
+[IP-] [  ] app-admin/eselect-fontconfig-1.0 (0)
+[IP-] [  ] app-admin/eselect-opengl-1.0.8-r1 (0)
+[IP-] [  ] app-admin/eselect-python-20090824 (0)
+[IP-] [  ] app-admin/eselect-ruby-20081227 (0)
+[IP-] [  ] app-admin/eselect-vi-1.1.5 (0)
+[IP-] [  ] app-admin/perl-cleaner-1.05 (0)
+[IP-] [  ] app-admin/pessulus-2.24.0 (0)
+[IP-] [  ] app-admin/python-updater-0.7 (0)
+[IP-] [  ] app-admin/sudo-1.7.2_p1 (0)
+[...]
 
=20

-The standard query will search our installed packages for the name given= . -If found, the following info will be displayed: the package location bet= ween -the first square brackets (I for Installed packages, P for Portage, O fo= r -Overlay), the possible masks between the second (~ by keyword, - by arc= h or -M hard masked), then the category and complete name and last of all, the= slot -in which the package is stored. +The standard query will search installed packages for the given package = name. +Passing in '*' displays all packages in the set. In the leftmost field, = we=20 +see that all the above packages are Installed and from the Portage +tree. They're not masked (the second field is blank), and they're all in= stalled +in the default slot (0).

=20

-Another example, this time we are going to use the local options in orde= r -to look for packages in our portage tree and overlay. +This time we are going to use local options to look for packages in the +Portage tree and overlays.

=20 -
-# equery list -p -o vim
-[ Searching for package 'vim' in all categories among: ]
- * installed packages
-[I--] [  ] app-editors/vim-6.3-r4 (0)
- * Portage tree (/usr/portage)
-[-P-] [M~] app-editors/vim-7.0_alpha20050126 (0)
-[-P-] [M~] app-editors/vim-7.0_alpha20050201 (0)
-[-P-] [  ] app-editors/vim-6.3-r2 (0)
-[-P-] [M~] app-editors/vim-7.0_alpha20050122 (0)
-[-P-] [M~] app-editors/vim-core-7.0_alpha20050126 (0)
-[-P-] [  ] app-editors/vim-core-6.3-r3 (0)
-[-P-] [M~] app-editors/vim-core-7.0_alpha20050122 (0)
-[-P-] [M~] app-editors/vim-core-7.0_alpha20050201 (0)
-[-P-] [  ] app-editors/vim-core-6.3-r4 (0)
- * overlay tree (/opt/ebuilds)
+
+$ equery list -po vim
+ * Searching for vim ...
+[-P-] [  ] app-editors/vim-7.0.235 (0)
+[-P-] [ ~] app-editors/vim-7.0.243 (0)
+[-P-] [  ] app-editors/vim-7.1.123 (0)
+[-P-] [ ~] app-editors/vim-7.1.330 (0)
+[-P-] [  ] app-editors/vim-7.2 (0)
+[-P-] [ ~] app-editors/vim-7.2.108 (0)
+[IP-] [  ] app-editors/vim-7.2.182 (0)
+[-P-] [ ~] app-editors/vim-7.2.238 (0)
+[-P-] [ ~] app-editors/vim-7.2.264 (0)
 
=20 +

+In this example you can see version 7.2.182 is installed and there are n= o +versions available from an overlay. You can see which versions are keywo= rd=20 +masked by the ~ in the second field. +

+
-Finding Package Sizes +Viewing Package Metadata with meta (m) =20

-Ever been curious to find out how much space a specific package is occup= ying? -Since a package could have its files over a number of directories, the u= sual -du -hc might not give you the correct figure. Not to worry, here = comes -equery to the rescue! +Each package in the Portage tree provides at least some metadata about +its maintainer, herd, etc. Read about Gentoo +Metadata. The amount of useful information depends on how much pac= kage +maintainers decide to provide. With no options, meta returns some= basic +useful information.

=20 -
-# equery size openoffice-bin
-* app-office/openoffice-bin-1.1.2
-     Total Files : 2908
-     Total Size  : 223353.31 KiB
+
+$ equery meta gnucash
+ * app-office/gnucash [gentoo]
+ Herd:        gnome-office (gnome-office@gentoo.org)
+ Maintainer:  tove@gentoo.org (Torsten Veller)
+ Upstream:    None specified
+ Location:    /usr/portage/app-office/gnucash
+ Keywords:    2.2.9-r1:0: alpha amd64 ppc sparc x86
+ Keywords:    2.2.9-r2:0:=20
+ Keywords:    2.3.8:0:=20
+ Keywords:    2.3.10:0: ~alpha ~amd64 ~ppc ~sparc ~x86
 
=20

-As you can see, equery prints the total space used in kilobytes a= nd -also lists the total number of files the package has. +When the maintainer provides extra information, it can be very useful:

=20 +
+$ equery meta --description emacs
+ * app-editors/emacs
+  GNU Emacs is an extensible, customizable text editor - and more. At it=
s core
+  is an interpreter for Emacs Lisp, a dialect of the Lisp programming la=
nguage
+  with extensions to support text editing. The features of GNU Emacs inc=
lude:
+   * Content-sensitive editing modes, including syntax coloring, for a w=
ide
+     variety of file types including plain text, source code, and HTML.
+   * Complete built-in documentation, including a tutorial for new users=
.
+   * Support for many languages and their scripts, including all the Eur=
opean
+     "Latin" scripts, Russian, Greek, Japanese, Chinese, Korean, Thai,
+     Vietnamese, Lao, Ethiopian, and some Indian scripts.
+   * Highly customizable, using Emacs Lisp code or a graphical customiza=
tion
+     interface.
+   * A large number of extensions that add other functionality, includin=
g a
+     project planner, mail and news reader, debugger interface, calendar=
, and
+     more. Many of these extensions are distributed with GNU Emacs; othe=
rs are
+     available separately.
+
+
-Package-wise list of USE Flags +Finding Package Sizes with size (s) =20

-equery can be used to give us information about what USE flags -are being used by a specific package. It also tells us what our current = USE -flags are for a package and also what USE flags are available for the pa= ckage. +Have you ever been curious to find out how much space a specific package= is +occupying? Since a package could have its files over a number of directo= ries, +the usual du -hc might not give you the correct figure. Not to wo= rry, +here comes equery to the rescue!

=20 -
-# equery uses wireshark
-[ Colour Code : set unset ]
-[ Legend    : (U) Col 1 - Current USE flags        ]
-[           : (I) Col 2 - Installed With USE flags ]
+
+$ equery size openoffice-bin
+ * app-office/openoffice-bin-3.1.1
+         Total files : 4624
+         Total size  : 361.38 MiB
+
=20 - U I [ Found these USE variables in : net-analyzer/wireshark-0.99.4 ] - - - adns : Adds support for the adns DNS client library - + + gtk : Adds support for x11-libs/gtk+ (The GIMP Toolkit) - - - ipv6 : Adds support for IP version 6 - - - kerberos : Adds kerberos support - - - portaudio : Adds support for the crossplatform portaudio audio API - - - selinux : !!internal use only!! Security Enhanced Linux support, = this must be set by the selinux profile or breakage will occur - - - snmp : Adds support for the Simple Network Management Protocol= if available - + + ssl : Adds support for Secure Socket Layer connections - - - threads : Adds threads support for various packages. Usually pthr= eads +

+As you can see, size prints the total space used in human-readabl= e +units and lists the total number of files the package has. To get the +total size in bytes, use --bytes. +

+ + +
+
+Listing Per-Package USE Flags with uses (u) + + +

+equery's uses module can provide information about what US= E +flags are available for a specific package, and which of those flags is +currently enabled. +

+ +
+$ equery uses gst-plugins-meta
+ * Searching for gst-plugins-meta ...
+[ Legend : U - flag is set in make.conf       ]
+[        : I - package is installed with flag ]
+[ Colors : set, unset                         ]
+ * Found these USE flags for media-plugins/gst-plugins-meta-0.10-r2:
+ U I
+ + + X      : Adds support for X11
+ - - a52    : Enables support for decoding ATSC A/52 streams used in DVD
+ + + alsa   : Adds support for media-libs/alsa-lib (Advanced Linux Sound
+              Architecture)
+ - - dvb    : Adds support for DVB (Digital Video Broadcasting)
+ + + dvd    : Adds support for DVDs
+ + + esd    : Adds support for media-sound/esound (Enlightened Sound Dae=
mon)
+ + + ffmpeg : Enable ffmpeg-based audio/video codec support
+ + + flac   : Adds support for FLAC: Free Lossless Audio Codec
+ - - mad    : Adds support for mad (high-quality mp3 decoder library and=
 cli
+              frontend)
+ + + mpeg   : Adds libmpeg3 support to various packages
+ - - mythtv : Support for retrieval from media-tv/mythtv backend
+ + + ogg    : Adds support for the Ogg container format (commonly used b=
y
+              Vorbis, Theora and flac)
+ - - oss    : Adds support for OSS (Open Sound System)
+ + + theora : Adds support for the Theora Video Compression Codec
+ + + vorbis : Adds support for the OggVorbis audio codec
+ - - xv     : Adds in optional support for the Xvideo extension (an X AP=
I for
+              video playback)
 
=20

-I have installed wireshark with only the gtk and ssl flags set, but ther= e are -several other USE flags for wireshark still available. For more informat= ion on -USE flags, please refer to the gstreamer's plugin +meta-package, but you can see that there are other USE flags available. +For more information on USE flags, please refer to the USE Fla= gs chapter of the Gentoo Handbook.

@@ -419,20 +582,40 @@
-Where's the ebuild? +Finding the Ebuild Path with which (w) =20

-We can also find out which ebuild is being used for a specific package u= sing -equery. This is done by using the equery which command whi= ch -displays the full path to the ebuild. +which is a simple script to help you quickly find the file path t= o an +ebuild. If you pass an unversioned package name, which will retur= n the +path to the newest installable ebuild version, in other words, the ebuil= d +Portage would use if you typed emerge package. Pass in a versione= d +package to get the path to that ebuild.

=20 -
-# equery which cdrtools
-/usr/portage/app-cdr/cdrtools/cdrtools-2.01_alpha37.ebuild
+
+$ equery which gnome
+/usr/portage/gnome-base/gnome/gnome-2.26.3.ebuild
 
=20 +

+Lastly, if none of the above features of equery have answered you= r=20 +question, try using which to manually search an ebuild with progr= ams +like cat, less or grep: +

+ +
+$ grep HOMEPAGE $(equery which gentoolkit)
+HOMEPAGE=3D"http://www.gentoo.org/proj/en/portage/tools/index.xml"
+
+ + +Be aware that equery currently changes the format of the output if it is= sent +through a pipe. The piped format is intended to be easier to parse by to= ols, but +you can also turn it off by adding the --no-pipe option. If you w= rite +scripts that employ equery, you should be aware of this. + +
@@ -643,7 +826,7 @@ This tool is Gentoo's Reverse Dependency rebuilder. It will scan your i= nstalled ebuilds to find packages that have become broken as a result of an upgra= de of a package they depend on. It can emerge those packages for you but it can = also -happen that a given package does not work anymore with the currently ins= talled +happen that a given package does not work any more with the currently in= stalled dependencies, in which case you should upgrade the broken package to a m= ore recent version. revdep-rebuild will pass flags to emerge which lets you = use the --pretend flag to see what is going to be emerged again before yo= u go any @@ -653,61 +836,53 @@
 # revdep-rebuild -p
=20
-Checking reverse dependencies...
-Packages containing binaries and libraries broken by any package update,
-will be recompiled.
-
-Collecting system binaries and libraries... done.
-  (/root/.revdep-rebuild.1_files)
-
-Collecting complete LD_LIBRARY_PATH... done.
-  (/root/.revdep-rebuild.2_ldpath)
-
-Checking dynamic linking consistency...
-  broken /usr/lib/ao/plugins-2/libarts.so (requires libartsc.so.0)
-  broken /usr/lib/kde3/libkpresenterpart.so (requires libartskde.so.1 li=
bqtmcop.so.1
-         libsoundserver_idl.so.1 libkmedia2_idl.so.1 libartsflow.so.1 li=
bartsflow_idl.so.1 libmcop.so.1)
-  broken /usr/lib/ruby/site_ruby/1.8/i686-linux/fox.so (requires libFOX-=
1.0.so.0)
-  broken /usr/lib/xine/plugins/1.0.0/xineplug_ao_out_arts.so (requires l=
ibartsc.so.0)
-  broken /usr/lib/perl5/vendor_perl/5.8.0/i686-linux/auto/SDL_perl/SDL_p=
erl.so (requires libSDL_gfx.so.0)
-  broken /usr/lib/libloudmouth-1.so.0.0.0 (requires libgnutls.so.10)
-  broken /usr/bin/k3b (requires libartskde.so.1 libqtmcop.so.1 libsounds=
erver_idl.so.1 libkmedia2_idl.so.1
-         libartsflow.so.1 libartsflow_idl.so.1 libmcop.so.1)
-  broken /usr/bin/lua (requires libhistory.so.4)
-  broken /usr/bin/lyx (requires libAiksaurus-1.0.so.0)
-  broken /usr/bin/luac (requires libhistory.so.4)
-  broken /usr/bin/avidemux2 (requires libartsc.so.0)
-  broken /usr/bin/pptout (requires libxml++-0.1.so.11)
-  broken /usr/bin/xml2ps (requires libxml++-0.1.so.11)
- done.
-  (/root/.revdep-rebuild.3_rebuild)
-
-Assigning files to ebuilds... done.
-  (/root/.revdep-rebuild.4_ebuilds)
-
-Evaluating package order... done.
-  (/root/.revdep-rebuild.5_order)
-
-All prepared. Starting rebuild...
-emerge --oneshot --nodeps -p =3Dapp-cdr/k3b-0.11.14 =3Dapp-office/koffic=
e-1.3.2 =3Dapp-office/lyx-1.3.4 \
-       =3Dapp-office/passepartout-0.2 =3Ddev-lang/lua-5.0.2 =3Ddev-ruby/=
fxruby-1.0.29 =3Dmedia-libs/libao-0.8.5 \
-       =3Dmedia-libs/xine-lib-1_rc5-r3 =3Dmedia-video/avidemux-2.0.26 =3D=
net-libs/loudmouth-0.16
-
-These are the packages that I would merge, in order:
-
-Calculating dependencies ...done!
-[ebuild   R   ] app-cdr/k3b-0.11.14
-[ebuild   R   ] app-office/koffice-1.3.2
-[ebuild   R   ] app-office/lyx-1.3.4
-[ebuild   R   ] app-office/passepartout-0.2
-[ebuild   R   ] dev-lang/lua-5.0.2
-[ebuild   R   ] dev-ruby/fxruby-1.0.29
-[ebuild   R   ] media-libs/libao-0.8.5
-[ebuild   R   ] media-libs/xine-lib-1_rc5-r3
-[ebuild   R   ] media-video/avidemux-2.0.26
-[ebuild   R   ] net-libs/loudmouth-0.16
+ * Configuring search environment for revdep-rebuild
=20
-Now you can remove -p (or --pretend) from arguments and re-run revdep-re=
build.
+ * Checking reverse dependencies
+ * Packages containing binaries and libraries broken by a package update
+ * will be emerged.
+
+ * Collecting system binaries and libraries
+ * Generated new 1_files.rr
+ * Collecting complete LD_LIBRARY_PATH
+ * Generated new 2_ldpath.rr
+ * Checking dynamic linking consistency
+[ 48% ]  *   broken /usr/lib/gstreamer-0.10/libgsttaglib.la (requires /u=
sr/lib/libtag.la)
+[ 64% ]  *   broken /usr/lib/libgdkglext-x11-1.0.la (requires /usr/lib/l=
ibGLU.la)
+[ 67% ]  *   broken /usr/lib/libgtkglext-x11-1.0.la (requires /usr/lib/l=
ibGLU.la)
+[ 85% ]  *   broken /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gdkgl/_=
gdkgl.la (requires /usr/lib/libGLU.la)
+ *   broken /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gtkgl/_gtkgl.la=
 (requires /usr/lib/libGLU.la)
+[ 97% ]  *   broken /usr/qt/3/lib/libqt-mt.la (requires -lpng)
+[ 100% ]
+ * Generated new 3_broken.rr
+ * Assigning files to packages
+ *   /usr/lib/gstreamer-0.10/libgsttaglib.la -> media-plugins/gst-plugin=
s-taglib
+ *   /usr/lib/libgdkglext-x11-1.0.la -> x11-libs/gtkglext
+ *   /usr/lib/libgtkglext-x11-1.0.la -> x11-libs/gtkglext
+ *   /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gdkgl/_gdkgl.la -> dev=
-python/pygtkglext
+ *   /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gtkgl/_gtkgl.la -> dev=
-python/pygtkglext
+ *   /usr/qt/3/lib/libqt-mt.la -> x11-libs/qt
+ * Generated new 4_raw.rr and 4_owners.rr
+ * Cleaning list of packages to rebuild
+ * Generated new 4_pkgs.rr
+ * Assigning packages to ebuilds
+ * Generated new 4_ebuilds.rr
+ * Evaluating package order
+ * Generated new 5_order.rr
+ * All prepared. Starting rebuild
+emerge --oneshot --pretend  dev-python/pygtkglext:0
+media-plugins/gst-plugins-taglib:0.10
+x11-libs/gtkglext:0
+x11-libs/qt:3
+
+These are the packages that would be merged, in order:
+
+Calculating dependencies... done!
+[ebuild   R   ] media-plugins/gst-plugins-taglib-0.10.17
+[ebuild   R   ] x11-libs/gtkglext-1.2.0
+[ebuild   R   ] x11-libs/qt-3.3.8b-r2
+[ebuild   R   ] dev-python/pygtkglext-1.1.0
+ * Now you can remove -p (or --pretend) from arguments and re-run revdep=
-rebuild.
 
=20

@@ -722,7 +897,7 @@ =20

-glsa-check is mainly a test tool that keeps track of the various = GLSAs +glsa-check is mainly a test tool that keeps track of the various = GLSA's (Gentoo Linux Security Advisory) and will eventually be integrated into emerge and equery.