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 74% complete.
Outdated translations are marked like this.
Other languages:
English • ‎français • ‎português do Brasil • ‎русский • ‎中文(简体)‎ • ‎日本語 • ‎한국어
Resources

Пакет app-portage/portage-utils — это набор очень быстрых утилит, написанных на языке C, которые предлагают быструю, но более ограниченную альтернативу похожим приложениям из app-portage/gentoolkit.

Обратите внимание, что q-апплеты не предназначены для замены gentoolkit. Утилиты будут гораздо более эффективными, чем эквивалентные утилиты из gentoolkit и могут лучше подходить для использования в скриптах, которые должны часто вызывать Portage. Но они не предлагают такую же функциональность. Q-апплеты не работают с eclasses и не предоставляют таких инструментов, как revdep-rebuild или glsa-check.

Установка

USE-флаги

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

nls Add Native Language Support (using gettextGNU locale utilities)
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

Устанавливаем q-апплеты:

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

Использование

Вызов

Полный список приложений пакета app-portage/portage-utils можно просмотреть с помощью команды man q или q --help. Обратитесь к man-странице по каждой описываемой утилите, так как это руководство является только краткой справкой по наиболее полезным функциям и не включает полную информацию по каждому приложению.

Для просмотра доступных апплетов с кратким описанием их назначения используйте 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
   qcache <action> <args> : search the metadata cache
   qcheck <pkgname>       : verify integrity of installed packages
 qdepends <pkgname>       : show dependency info
    qfile <filename>      : list all pkgs owning files
    qgrep <misc args>     : grep in ebuilds
    qlist <pkgname>       : list files owned by pkgname
     qlop <pkgname>       : emerge log analyzer
   qmerge <pkgnames>      : fetch and merge binary package
     qpkg <misc args>     : manipulate Gentoo binpkgs
  qsearch <regex>         : search pkgname/desc
    qsize <pkgname>       : calculate size usage
    qtbz2 <misc args>     : manipulate tbz2 packages
     quse <useflag>       : find pkgs using useflags
    qxpak <misc args>     : manipulate xpak archives
  
Options: -[irmM:vqChV]
  -i, --install        * Install symlinks for applets
  -r, --reinitialize   * Reinitialize ebuild cache
  -m, --metacache      * Reinitialize metadata cache
  -M, --modpath  <arg> * Module path
  -v, --verbose        * Make a lot of noise
  -q, --quiet          * Tighter output; suppress warnings
  -C, --nocolor        * Don't output color
  -h, --help           * Print this help and exit
  -V, --version        * Print version and exit

Поиск пакета, к которому принадлежит какой-либо файл (qfile)

Команда qfile находит пакет, к которому относится файл:

user $qfile /etc/fonts/fonts.conf
media-libs/fontconfig (/etc/fonts/fonts.conf)
user $qfile /usr/share/keymaps/atari/atari-uk-falcon.map.gz
sys-apps/kbd (/usr/share/keymaps/atari/atari-uk-falcon.map.gz)

Проверка целостности пакета (qcheck)

Чтобы проверить контрольные суммы MD5 или время модификации файлов, установленных каким-либо пакетом, используйте приложение qcheck:

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

Здесь будет сообщено обо всех файлах, измененных после установки. Если приложение сообщает о файлах конфигурации, отредактированных вручную после установки, то не о чем беспокоиться.

To check the integrity of all packages installed, enter:

root #qcheck

Перечисление зависимостей пакета (qdepends)

Также существует приложение, позволяющее перечислить все пакеты, которые зависят от какого-то другого пакета. Это выполняется использованием команды qdepend. Используйте опцию -a, чтобы показать всю информацию о переменных DEPEND, RDEPEND и PDEPEND для пакета.

user $qdepends -a pygtk
 * DEPEND
dev-python/pygtk-2.8.2: >=dev-lang/python-2.3 >=x11-libs/gtk+-2.8.0
>=dev-libs/glib-2.8.0 >=x11-libs/pango-1.10.0 >=dev-libs/atk-1.8.0
>=gnome-base/libglade-2.5.0 >=dev-python/pycairo-0.9.0 dev-python/numeric
virtual/opengl dev-python/pyopengl >=x11-libs/gtkglarea-1.99
>=dev-util/pkgconfig-0.9 sys-devel/patch
 * RDEPEND
dev-python/pygtk-2.8.2: >=dev-lang/python-2.3 >=x11-libs/gtk+-2.8.0
>=dev-libs/glib-2.8.0 >=x11-libs/pango-1.10.0 >=dev-libs/atk-1.8.0
>=gnome-base/libglade-2.5.0 >=dev-python/pycairo-0.9.0 dev-python/numeric
virtual/opengl dev-python/pyopengl >=x11-libs/gtkglarea-1.99
 * PDEPEND

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=

Перечисление всех пакетов (установленных или неустановленных), зависящих от некоторого другого пакета (qgrep)

Апплет q можно использовать, чтобы найти ebuild, в которых упомянуто искомое имя ebuild (в примере ниже используется "libechonest") с очень большой скоростью:

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

Перечисление файлов, принадлежащих ebuild-файлу (qlist)

Команда qlist выдает список всех файлов, принадлежащих какому-либо файлу ebuild.

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

Поиск пакетов, использующих некоторый USE-флаг (quse)

Список используемых USE-флагов выполняется с помощью команды quse, которую нужно запустить c root привилегиями. Может потребоваться некоторое время для первоначального создания или обновления кэша файлов ebuild.

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

Определение размеров пакета (qsize)

Чтобы определить размер пакета, используйте приложение qsize:

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

Поиск в дереве Portage (qsearch)

Одним из наиболее мощных инструментов пакета app-portage/portage-utils является qsearch. Этот инструмент позволяет выполнить намного более быстрый поиск в дереве Portage, чем при использовании команды emerge -s.

Ниже приведено несколько примеров его использования:

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

Домашнюю страницу пакета можно определить с использованием опции -H:

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

Рассмотрим еще один пример, поищем 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

Извлечение информации из логов команды emerge (qlop)

Также имеется инструмент для извлечения полезной информации из файла emerge.log. Он называется qlop и может быть полезен для оценки времени компиляции пакета или для его сравнения со временем компиляции на других системах. Также с его помощью можно посмотреть, что компилируется в данный момент и сколько времени, скорее всего, на это понадобится, что удобно при работе в консоли и при отсутствии других средств для проверки.

Чтобы узнать, сколько времени обычно требует компиляция пакета dev-lang/perl:

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

Чтобы увидеть, что устанавливается в настоящий момент, и как долго процесс уже работает:

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

Смотрите также


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.