q applets

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Q applets and the translation is 54% 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.

Readers should note that q applets were not created to replace gentoolkit; they simply may be more efficient than the equivalent utilities from gentoolkit and might be better suited to be used in scripts that need to call Portage repeatedly. They do not offer the same functionality. q applets do not consider eclasses and do not provide tools like revdep-rebuild or glsa-check.

Установка

USE-флаги

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

libressl Use dev-libs/libressl instead of dev-libs/openssl when applicable (see also the ssl useflag)
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 -H libechonest | cut -f1 -d":" | uniq
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
app-editors/gvim-6.4: 10 files, 7 non-files, 2327.516 KB
app-editors/vim-6.4: 6 files, 2 non-files, 2058.14 KB
app-editors/vim-core-6.4: 1024 files, 68 non-files, 10950.984 KB
[...]

Поиск в дереве 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://www.is-vn.bg/hamster/jimmy-en.html

Рассмотрим еще один пример, поищем jabber-клиент:

user $qsearch -S "jabber client"
app-emacs/emacs-jabber A Jabber client for Emacs.
net-im/gajim Jabber client written in PyGTK
net-im/gnome-jabber Gnome Jabber Client
net-im/gossip Lightweight Jabber client for GNOME
net-im/imcom Python commandline Jabber Client
net-im/psi QT 3.x Jabber Client, with Licq-like interface
net-im/tkabber Featureful Jabber client for tcl/tk.
x11-themes/psi-themes Iconsets for Psi, a QT 3.x Jabber Client

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

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

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

user $qlop -tH perl
perl: 7 minutes, 52 seconds for 4 merges

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

user $qlop -c
* perl-5.8.8-r23
    started: Mon May 21 12:41:11 2007
    elapsed: 19 seconds

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

  • Gentoolkit — набор средств, облегчающих администрирование системы Gentoo.
  • Qcheck — Утилита командной строки предназначенная для проверки целостности установленных пакетов.

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.