Q applets

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Q applets and the translation is 63% complete.
Outdated translations are marked like this.
Resources

Les q applets sont une collection d'outils de requête (query) de Portage petits et rapides écrits en C.

Elles sont conçues pour offrir une alternative plus rapide, mais plus limitée, à leurs homologues de gentoolkit.

Les q applets n'ont pas été créés pour remplacer gentoolkit. Ils ne prennent pas en compte les eclasses et ne fournissent pas d'outils tels que revdep-rebuild ou glsa-check.

Installation

Options de la variable USE

USE flags for app-portage/portage-utils Small and fast Portage helper tools written in C

+qmanifest Build qmanifest applet, this adds additional dependencies for GPG, OpenSSL and BLAKE2B hashing
+qtegrity Build qtegrity applet, this adds additional dependencies for OpenSSL
openmp Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp"
static !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically

Emerge

Pour installer les q applets:

root #emerge --ask app-portage/portage-utils

Utilisation

Invocation

La liste complète des applications qui sont fournies par app-portage/portage-utils peut être obtenue avec les commandes man q ou q --help. Référez vous à la page de manuel de chaque outil pour connaître les fonctionnalités complètes. Ce guide a pour vocation d'être une référence courte des fonctionnalités les plus utiles et n'inclue pas toutes les informations à propos de chaque outil.

Pour voir la liste des outils disponibles avec une courte description de leur fonction, utilisez q --help:

user $q --help
usage: q <applet> <args>  : invoke a portage utility applet

currently defined applets:
         q <applet> <args> : virtual applet
     qatom <pkg>           : split atom strings
    qcheck <pkgname>       : verify integrity of installed packages
  qdepends <pkgname>       : show dependency info
     qfile <filename>      : list all pkgs owning files
     qgrep <expr> [pkg ...]: grep in ebuilds
  qkeyword <action> <args> : list packages based on keywords
     qlist <pkgname>       : list files owned by pkgname
      qlop <pkgname>       : emerge log analyzer
 qmanifest <misc args>     : verify or generate thick Manifest files
    qmerge <pkgnames>      : fetch and merge binary package
      qpkg <misc args>     : create or manipulate Gentoo binpkgs
   qsearch <regex>         : search pkgname/desc
     qsize <pkgname>       : calculate size usage
     qtbz2 <misc args>     : manipulate tbz2 packages
  qtegrity <misc args>     : verify files with IMA
      quse <useflag>       : find pkgs using useflags
    qwhich <pkg ...>       : find path to pkg
     qxpak <misc args>     : manipulate xpak archives

options: -[ioemvqChV]
  -i, --install    * Install symlinks for applets
  -o, --overlays   * Print available overlays (read from repos.conf)
  -e, --envvar     * Print used variables and their found values
  -m, --masks      * Print (package.)masks for the current profile
      --root <arg> * Set the ROOT env var
  -v, --verbose    * Report full package versions, emit more elaborate output
  -q, --quiet      * Tighter output; suppress warnings
  -C, --nocolor    * Don't output color
      --color      * Force color in output
  -h, --help       * Print this help and exit
  -V, --version    * Print version and exit

Trouver à quel paquet appartient un fichier (qfile)

La commande qfile affiche le paquet auquel un fichier appartient:

Exemple un :

user $qfile /etc/fonts/fonts.conf
media-libs/fontconfig (/etc/fonts/fonts.conf)

Exemple deux :

user $qfile /usr/share/keymaps/atari/atari-uk-falcon.map.gz
sys-apps/kbd (/usr/share/keymaps/atari/atari-uk-falcon.map.gz)

Vérifier l'intégrité d'un paquet (qcheck)

Pour vérifier les sommes de contrôle MD5 ou les horaires de modification des fichiers installés par un paquet, utilisez le programme qcheck :

user $qcheck portage-utils
Checking app-portage/portage-utils-0.1.13 ...
  * 36 out of 36 files are good

Tous les fichiers qui ont été changés après l'installation seront reportés ici. Les fichiers de configuration qui ont été édités manuellement après l'installation seront également reportés. La plupart des paquets ne nécessitent pas les permissions root. Cependant, si un paquet a des fichiers qui ne sont accessibles qu'à root, qcheck devrait être lancé en tant que root.

Pour vérifier l'intégrité de tous les paquets installés, entrez :

root #qcheck

Lister les dépendances d'un paquet (qdepends)

Remarque
This shows what might be used and not necessarily is being used on a particular system. It does not always account for the USE variables of packages that are installed or in a list of alternates.

qdepends peut lister les dépendances d'un paquet dans chaque direction. Sans options pour lister les dépendances installées DEPEND (-d), RDEPEND (-r), PDEPEND (-p) ou BDEPEND (-b), toutes les dépendances requises par un paquet sont affichées fusionnées dans une seule liste. Utilisez -v afin d'obtenir une liste de dépendances formatée compatible au shell en sortie, comme trouvé dans les ebuilds.

user $qdepends mutt
mail-client/mutt-1.13.1: >=app-portage/elt-patches-20170815 >=sys-devel/automake-1.15.1:1.15 dev-libs/libressl:0/47= dev-db/lmdb:0/0.9.24= virtual/libintl www-client/w3m !<sys-devel/gettext-0.18.1.1-r3 dev-libs/libxslt dev-libs/libxml2 >=sys-devel/automake-1.16.1:1.16 >=sys-devel/libtool-2.4 >=sys-devel/autoconf-2.69 net-dns/libidn2 virtual/libiconv >=app-crypt/gpgme-0.9.0:1/11= www-client/elinks app-misc/mime-types app-text/docbook-xsl-stylesheets >=dev-libs/cyrus-sasl-2 www-client/lynx net-mail/mailbase >=sys-libs/ncurses-5.2:0/6=

Utilisez -v pour obtenir une liste de dépendances formatée compatible au shell en sortie, comme trouvé dans les ebuilds.

user $qdepends -rv mutt
mail-client/mutt-1.13.1:
RDEPEND="
    app-misc/mime-types
    virtual/libiconv
    dev-db/lmdb:0/0.9.24=
    dev-libs/libressl:0/47=
    virtual/libintl
    >=dev-libs/cyrus-sasl-2
    net-dns/libidn2
    >=app-crypt/gpgme-0.9.0:1/11=
    >=sys-libs/ncurses-5.2:0/6=
"

Pour lister les paquets qui dépendent sur un paquet, utilisez l'option -Q.

user $qdepends -Q mime-types
mail-client/mutt-1.13.1: >=app-portage/elt-patches-20170815 >=sys-devel/automake-1.15.1:1.15 dev-libs/libressl:0/47= dev-db/lmdb:0/0.9.24= virtual/libintl www-client/w3m !<sys-devel/gettext-0.18.1.1-r3 dev-libs/libxslt dev-libs/libxml2 >=sys-devel/automake-1.16.1:1.16 >=sys-devel/libtool-2.4 >=sys-devel/autoconf-2.69 net-dns/libidn2 virtual/libiconv >=app-crypt/gpgme-0.9.0:1/11= app-misc/mime-types www-client/elinks app-text/docbook-xsl-stylesheets >=dev-libs/cyrus-sasl-2 www-client/lynx net-mail/mailbase >=sys-libs/ncurses-5.2:0/6=
dev-lang/python-2.7.16: >=app-portage/elt-patches-20170815 >=sys-libs/readline-4.1:0/8= >=sys-devel/automake-1.15.1:1.15 dev-libs/libressl:0/47= virtual/libintl >=dev-db/sqlite-3.3.8:3/3= virtual/pkgconfig !<sys-devel/gettext-0.18.1.1-r3 virtual/libffi >=sys-devel/automake-1.16.1:1.16 >=dev-libs/expat-2.1 >=sys-libs/zlib-1.1.3:0/1= >=sys-devel/autoconf-2.69 >=app-eselect/eselect-python-20140125-r1 app-misc/mime-types >=sys-devel/autoconf-2.65 !!<sys-apps/portage-2.1.9 app-arch/bzip2:0/1= !sys-devel/gcc[libffi(+)] >=sys-libs/ncurses-5.2:0/6=
dev-lang/python-3.7.2: >=app-portage/elt-patches-20170815 >=sys-libs/readline-4.1:0/8= >=sys-devel/automake-1.15.1:1.15 virtual/libffi:0/7= dev-libs/libressl:0/47= virtual/libintl >=dev-db/sqlite-3.3.8:3/3= app-arch/xz-utils:0/0= virtual/pkgconfig !<sys-devel/gettext-0.18.1.1-r3 >=sys-devel/automake-1.16.1:1.16 !!<sys-apps/sandbox-2.6-r1 >=dev-libs/expat-2.1:0/0= >=sys-libs/zlib-1.1.3:0/1= >=sys-devel/autoconf-2.69 >=app-eselect/eselect-python-20140125-r1 app-misc/mime-types app-arch/bzip2:0/1= !sys-devel/gcc[libffi(+)] >=sys-libs/ncurses-5.2:0/6=
dev-lang/python-3.6.8: >=app-portage/elt-patches-20170815 >=sys-libs/readline-4.1:0/8= >=sys-devel/automake-1.15.1:1.15 virtual/libffi:0/7= dev-libs/libressl:0/47= virtual/libintl >=dev-db/sqlite-3.3.8:3/3= app-arch/xz-utils:0/0= virtual/pkgconfig !<sys-devel/gettext-0.18.1.1-r3 >=sys-devel/automake-1.16.1:1.16 !!<sys-apps/sandbox-2.6-r1 >=dev-libs/expat-2.1:0/0= >=sys-libs/zlib-1.1.3:0/1= >=sys-devel/autoconf-2.69 >=app-eselect/eselect-python-20140125-r1 app-misc/mime-types app-arch/bzip2:0/1= !sys-devel/gcc[libffi(+)] >=sys-libs/ncurses-5.2:0/6=

Recherche d'ebuilds ou d'eclasses pour un schéma (qgrep)

qgrep peut être utilisé pour trouver les ebuilds qui mentionnent le nom d'un ebuild ("libechonest" est utilisé en exemple plus bas) en listant tous les paquets (installés ou non) qui dépendent sur un certain paquet:

user $qgrep -l libechonest
media-libs/libechonest/libechonest-2.0.2.ebuild
media-libs/libechonest/libechonest-2.2.0-r1.ebuild
media-libs/libechonest/libechonest-2.3.0.ebuild
media-libs/libechonest/libechonest-2.3.1.ebuild
media-libs/libechonest/libechonest-2.3.1-r1.ebuild
media-libs/libechonest/libechonest-9999.ebuild
media-sound/clementine/clementine-1.2.3.ebuild
media-sound/clementine/clementine-1.2.3-r1.ebuild
media-sound/clementine/clementine-1.3.1-r1.ebuild
media-sound/tomahawk/tomahawk-0.8.4-r3.ebuild
media-sound/tomahawk/tomahawk-9999.ebuild

L'option -J limitera la recherche aux paquets installés. -N affichera l'atom au lieu du nom de fichier.

user $qgrep -NJ net-print/cups
app-office/libreoffice-6.1.5.2: cups? ( net-print/cups )
dev-qt/qtprintsupport-5.11.3:   cups? ( >=net-print/cups-1.4 )
net-print/hplip-3.18.6: net-print/cups
net-print/hplip-3.18.6: hpijs? ( net-print/cups-filters[foomatic] )
net-print/cups-2.2.7:PDEPEND=">=net-print/cups-filters-1.0.43"
net-print/cups-filters-1.21.6:  >=net-print/cups-1.7.3
net-print/cups-filters-1.21.6:  !<=net-print/cups-1.5.9999
dev-java/icedtea-bin-3.10.0-r1: cups? ( >=net-print/cups-2.0% )
net-wireless/bluez-5.50-r2:     cups? ( net-print/cups:= )
app-text/ghostscript-gpl-9.26:  cups? ( >=net-print/cups-1.3.8 )
x11-libs/gtk+-2.24.32-r1:       cups? ( >=net-print/cups-1.7.1-r2:=[${MULTILIB_USEDEP}] )
x11-libs/gtk+-3.24.4-r1:        cups? ( >=net-print/cups-1.2[${MULTILIB_USEDEP}] )

Lister les fichiers qui appartiennent à un ebuild (qlist)

La commande qlist affiche la liste de tout les fichier qui appartiennent à un ebuild.

user $qlist vim
/usr/bin/gvim
/usr/bin/gvimdiff
/usr/bin/evim
/usr/bin/eview
/usr/bin/gview
/usr/bin/rgvim
[...]

Chercher les paquets qui utilise un USE flag spécifique (quse)

Les options de variable USE se listent avec quese. Dans ca forme la plus simple, cela liste les ebuilds qui utilisent une option de variable USE donnée.

user $quse firefox
app-misc/tracker/tracker-0.12.10-r1.ebuild applet doc eds elibc_glibc exif firefox-bookmarks flac flickr gif
[...]

Pour afficher la description d'une option de variable USE, l'option -D peut être utilisée. Elle peut être combinée avec l'option -p, qui prend un atom en argument, afin de lister les options de variable USE de l'atom donné.

user $quse -Dvp autogen
sys-devel/autogen-5.18.16-r1
  libopts       install the libopts tarball (a few packages want this for developing)
  static-libs   Build static versions of dynamic libraries as well

Trouver la taille d'un paquet (qsize)

Pour afficher la taille d'un paquet, utilisez l'application qsize:

user $qsize vim-core
app-editors/vim-core: 1846 files, 175 non-files, 28.5M 
[...]

Chercher dans les dépôts ebuild (qsearch)

L'un des outils le plus puissant de app-portage/portage-utils est qsearch. Cet outil permet de chercher dans les dépôts ebuild bien plus rapidement qu'avec la commande emerge -s.

Voilà quelques exemples de son utilisation:

user $qsearch terminus
media-fonts/terminus-font: A clean fixed font for the console and X11

L'adresse de la page d'accueil d'un paquet peut être obtenue avec l'option -H:

user $qsearch -H terminus
media-fonts/terminus-font: http://terminus-font.sourceforge.net/

Le prochain exemple montre comment chercher un client jabberJ:

user $qsearch -S "jabber client"
app-emacs/emacs-jabber: A Jabber client for Emacs
net-im/coccinella: Jabber Client With a Built-in Whiteboard and VoIP (jingle)
net-im/gajim: Jabber client written in PyGTK
net-im/tkabber: A jabber client written in Tcl/Tk
net-im/vacuum: Qt Crossplatform Jabber client

Extraire des informations depuis les logs d'emerge (qlop)

qlop permet d'extraire des informations depuis le fichier emerge.log. Cela peut être utile pour estimer le temps de compilation d'un paquet ou pour comparer les temps de compilations avec d'autres systèmes. Il permet aussi de regarder quel paquet est actuellement en train d'être compilé, and combien de temps il va probablement prendre pour finir - ça peut être utile en travaillnt depuis la console en ayant aucun autre moyen d'obtenir cette information.

Pour estimer combien de temps la compilation du paquet dev-lang/perl va prendre:

user $qlop -a perl
dev-lang/perl: 7′12″ average for 3 merges

Pour regarder ce qui est en train d'être compilé, et depuis combien temps le processus tourne:

user $qlop -rt
2019-12-31T03:07:16 >>> net-fs/samba: 6′19″... (82 of 85) ETA: 23s

Installer un paquet binaire (qmerge)

qmerge peut rapidement installer des paquets binaires (binpkgs) :

user $qmerge sys-apps/sed
[R] sys-apps/sed-4.8

Create or manipulate binary package (qpkg)

qpkg is used to create or clean up Gentoo binary packages.

Attention !
qpkg used to be a gentoolkit command for querying packages, there is still much outdated documentation on that command to be found on the Internet. See equery.
Remarque
Not to be confused with quickpkg.

qsearch

List the descriptions of every package in the cache
user $qsearch --all .
Regex search package basenames
user $qsearch --search <regex>
Regex search package descriptions (or homepage when using -H)
user $qsearch --desc <arg>
Only show package name
user $qsearch --name-only <package>
Show homepage info instead of description
user $qsearch --homepage gentoo.org
Show repository the ebuild originates from
user $qsearch --repo gentoo
Print matched atom using given format string
user $qsearch --format <arg>
Set the ROOT env va
user $qsearch --root <arg>
Report full package versions, emit more elaborate output
user $qsearch --verbose syslog-ng
Tighter output; suppress warnings
user $qsearch --quiet <package>
Don't output color
user $qsearch --nocolor package>
Force color in output
Remarque
Colors is default enabled
user $qsearch --color <package>
Print current qsearch version
user $qsearch --version

quse

Print version and exit
user $quse --version
Print this help and exit
user $quse --help
Force color in output
user $quse --color
Don't output color
user $quse --nocolor
Tighter output; suppress warnings
user $quse --quiet <package>
Report full package versions, emit more elaborate output
user $quse --verbose <package>
Set the ROOT env var
user $quse --root <arg>
Print matched atom using given format string
user $quse --format <arg>
Show repository the ebuild originates from
user $quse --repo
Restrict matching to package or category
user $quse --package <arg>
Only search installed packages
user $quse --installed
Describe all USE flags
user $quse --describe .
Use the LICENSE vs IUSE
Remarque
Including a dot (.) will list all licenses available
user $quse --license .
List all ebuilds, don't match anything
user $quse --all
Show exact non regexp matching using strcmp
user $quse --exact useflag

Dépannage

Defining atom fields for applet commands

Certain q applet commands / argument combinations (such as qsearch --format) mention the use of atom formatting. The defintion of this formatting can be found on the qatom man page under the --format (-F) argument:

user $man 1 qatom

Voir aussi


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Łukasz Damentko, , and Marcelo Góes
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.