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 19% complete.
Outdated translations are marked like this.

O pacote app-portage/portage-utils é uma coleção de utilitários muito rápidos escritos em C, que são destinados a oferecer uma alternativa mais rápida, mas mais limitada que seu homólogo app-portage/gentoolkit. Por favor note que as q applets não destinam a substituir o gentoolkit. Os utilitários podem ser muito mais eficientes do que os equivalentes do gentoolkit e podem ser mais adequados para serem usados em scripts que precisam chamar o Portage repetidamente, mas elas "não" oferecem a mesma funcionalidade. q applets não consideram eclasses e não fornecem ferramentas como revdep-rebuild ou glsa-check.

These are meant to offer a faster but more limited alternative to their gentoolkit counterparts.

q applets were not created to replace gentoolkit. q applets do not consider eclasses and do not provide tools like revdep-rebuild or glsa-check.

Instalação

USE flags

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

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

Emerge

Instalar q applets:

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

Uso

Invocação

A lista completa das aplicações que são fornecidos pelo app-portage/portage-utils podem ser listados digitando man q ou q --help. Por favor, leia a página de manual para cada utilitário descrito, como este guia serve apenas para ser uma breve referência para as funções mais úteis e não inclui todas as informações sobre cada aplicação.

Para ver os applets disponíveis com uma breve descrição de suas funções, use q --help:

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

<div lang="en" dir="ltr" class="mw-content-ltr">
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
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
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

Como encontrar um pacote ao qual um arquivo pertence (qfile)

O comando qfile encontra um pacote ao qual o arquivo pertence:

Example one:

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

Example two:

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

Verificando a integridade dos pacotes (qcheck)

Para verificar as somas MD5 ou tempo de modificação dos arquivos instalados por algum pacote, use a aplicação qcheck:

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

É claro, todos os arquivos que foram modificados após a instalação serão reportados aqui. Se a aplicação reportar arquivos de configuração que foram editados manualmente após a instalação, então não há nada para se preocupar.

To check the integrity of all installed packages, enter:

root #qcheck

Listando pacotes que dependem de algum pacote (qdepends)

Nota
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.

Claro que há também uma aplicação que permite listar todos os pacotes que dependem de algum pacote. Isto é feito usando qdepends. Use a opção -a para mostrar todas as informações de DEPEND, RDEPEND e PDEPEND para um pacote.

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=

Use -v to get a shell-compatible and formatted dependency output list, like found in 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=
"

To list all of the installed packages that depend on a package use the -Q option.

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=

Listando todos os pacotes (instalados ou não) que dependem de algum pacote (qgrep)

As q applets podem ser usadas para encontrar ebuilds que mencionam o nome de um ebuild ("libechonest" é usado no exemplo abaixo) com grande velocidade:

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

The -J option will limit the search to installed packages. -N will print the atom instead of the filename.

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}] )

Listando arquivos que pertencem à um ebuild (qlist)

O comando qlist apresenta uma lista de todos os arquivos que pertencem à um ebuild.

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

Procurando por pacotes que usam alguma USE flag (quse)

Listar o uso de USE flags é feito com quse, que deve ser executado com permissões de root.

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

To display the description of a USE-flag, the -D option can be used. This can be combined with the -p option, which takes an atom name as argument, to list all USE-flags for the given atom.

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

Encontrando o tamanho dos pacotes (qsize)

Para mostrar o tamanho de um pacote, use a aplicação qsize:

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

Pesquisando na árvore do Portage (qsearch)

Uma das ferramentas mais poderosas do app-portage/portage-utils é o qsearch. Esta ferramenta permite pesquisar a árvore do Portage muito mais rápido do que usar o comando emerge -s.

Aqui estão alguns exemplos de seu uso:

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

A página inicial dos pacotes pode ser consultada usando a opção -H:

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

Em outro exemplo, vamos olhar para o cliente jabber:

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

Extraindo informações de log do emerge (qlop)

Há também uma ferramenta que possibilita extrair informações úteis do arquivo emerge.log. É chamada de qlop e pode ser útil quando o tempo de compilação do pacote precisa ser estimado ou para comparar o tempo de construção com outros sistemas. Permite também verificar o que está compilando no momento e quanto tempo isso vai levar - o que é útil quando se trabalha no console e não tem nenhum outro meio para verificar.

Para ver quanto tempo uma construção do dev-lang/perl geralmente leva:

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

Para ver o que está instalando no momento e há quanto tempo o processo já está em execução:

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

Install binary package (qmerge)

qmerge can quickly install binary packages (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.

Aviso
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.
Nota
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
Nota
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
Nota
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

Troubleshooting

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

Veja também


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.