Q applets
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)
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.
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.
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
- Portage — gestionnaire de paquet et le système de distribution officiel de Gentoo.
- Gentoolkit — une suite d'outils, dont Portage, destinée à faciliter l'administration d'un système Gentoo.
- Useful Portage tools — provides a list of Gentoo-specific system management tools, notably for Portage, available in the ebuild repository.
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.