Eix

Обновлено 14 марта 2019

Eix - набор утилит для поиска, определения различий и обновления бинарного кэша из вашего локального дерева. Перевод подробного описания eix на русский язык можно найти здесь.

Пакет app-portage/eix присутствует во всех дистрибутивах Calculate Linux, заметно отличаясь в лучшую сторону по скорости работы от пакетного менеджера. Eix использует свою базу портежей (Portage), подключенных оверлеев и выполненных настроек в системе, которая обновляется при каждом вызове cl-update. Таким образом, вы можете выполнить обновление базы eix-update только при внесении своих правок, чтобы проверить результат при помощи этой же утилиты. Помимо прочего, eix может также выполнить синхронизацию портежей. В Calculate Linux, при этом, всё равно будет происходить вызов cl-update --sync-only.

Ниже приведена лиш небольшая часть распространённых примеров работы с eix.

Формат вывода

Вывод по умолчанию

По умолчанию вызов eix без параметров приведёт к отображению всех пакетов, примерно следующим образом:

eix

[I] app-misc/mc
     Доступные версии:      4.8.15 4.8.18-r1 ~4.8.19 4.8.20-r1{tbz2} ~4.8.20-r2 **9999 {X +edit gpm mclib nls samba sftp +slang spell test unicode +xdg}
     Установленные версии:  4.8.20-r1{tbz2}(12:45:03 16.01.2018)(X edit gpm nls samba slang xdg -mclib -sftp -spell -test)
     Домашняя страница:     https://www.midnight-commander.org
     Описание:              GNU Midnight Commander is a text based file manager
...

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

Компактный вывод

Чтобы отобразить только состояние наличия пакета в системе, его имя, версию и описание, используйте опцию -c, --compact:

eix -c

[I] app-misc/mc (4.8.20-r1{tbz2}@16.01.2018): GNU Midnight Commander is a text based file manager
...

Вывод только имён пакетов

Для просмотра множества пакетов часто бывает удобно сделать вывод только имён пакетов. В этом случае используйте параметр -#, --only-names:

eix -#

app-misc/mc
...

Расширенный вывод

Более детальный вывод информации о пакете, например, о лицензии, отображается при использовании опции -v, --verbose:

eix -v firefox

* www-client/firefox                                                                                    
     Доступные версии:      52.4.0^d 52.6.0^d 58.0.1^d{                   tbz2}                                                                                                                                        
     IUSE (все версии):     bindist custom-cflags custom-optimization dbus debug eme-free +gmp-autoupdate g                    tk2 hardened hwaccel jack +jemalloc neon pgo pulseaudio rust +screenshot selinux startup-notification system-cairo system                  -harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite test wifi L10N="ach af an ar as ast az bg bn              -BD bn-IN br bs ca cak cs cy da de dsb el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy ga gd gl gn gu he h          i hr hsb hu hy id is it ja ka kab kk km kn ko lij lt lv mai mk ml mr ms nb nl nn or pa pl pt-BR pt-PT rm ro ru si sk sl s    on sq sr sv ta te th tr uk uz vi xh zh-CN zh-TW"
     Установленные версии:  Версия:  58.0.1^d{tbz2}
                            Дата:    14:12:21 27.02.2018
                            USE:     dbus gmp-autoupdate hwaccel screenshot system-icu system-jpeg system-libevent system-libvpx system-sqlite -bindist -custom-cflags -custom-optimization -debug -eme-free -hardened -jack -neon -pulseaudio -selinux -startup-notification -system-harfbuzz -test -wifi L10N="bg bs cs da de es-AR es-ES es-MX et fi fr hr hu it kk lt lv nl pl pt-BR pt-PT ro ru sk sl sq sr sv uk -ach -af -an -ar -as -ast -az -bn-BD -bn-IN -br -ca -cak -cy -dsb -el -en-GB -en-ZA -eo -es-CL -eu -fa -ff -fy -ga -gd -gl -gn -gu -he -hi -hsb -hy -id -is -ja -ka -kab -km -kn -ko -lij -mai -mk -ml -mr -ms -nb -nn -or -pa -rm -si -son -ta -te -th -tr -uz -vi -xh -zh-CN -zh-TW"
                            DEPEND:  >=dev-libs/nss-3.34.1 >=dev-libs/nspr-4.17 >=sys-devel/llvm-4.0.1 >=sys-devel/clang-4.0.1 >=dev-lang/yasm-1.1 virtual/opengl >=sys-apps/sed-4 virtual/pkgconfig >=dev-lang/python-2.7.5-r2:2.7[ncurses,sqlite,ssl,threads] app-arch/zip app-arch/unzip >=sys-devel/binutils-2.16.1 sys-apps/findutils || ( ( >=dev-lang/rust-1.21.0 >=dev-util/cargo-0.22.0 ) >=dev-lang/rust-1.21.0[extended] ( >=dev-lang/rust-bin-1.21.0 >=dev-util/cargo-0.22.0 ) ) >=app-text/hunspell-1.5.4:0/1.6= dev-libs/atk dev-libs/expat >=x11-libs/cairo-1.10[X] >=x11-libs/gtk+-2.18:2 x11-libs/gdk-pixbuf >=x11-libs/pango-1.22.0 >=media-libs/libpng-1.6.34:0/16=[apng] >=media-libs/mesa-10.2:* media-libs/fontconfig >=media-libs/freetype-2.4.10 media-libs/alsa-lib virtual/freedesktop-icon-theme >=sys-apps/dbus-0.60 >=dev-libs/dbus-glib-0.72 >=x11-libs/pixman-0.19.2 >=dev-libs/glib-2.26:2 >=sys-libs/zlib-1.2.3 >=virtual/libffi-3.0.10 virtual/ffmpeg x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libXrender x11-libs/libXt >=dev-libs/icu-59.1:0/60.2= >=media-libs/libjpeg-turbo-1.2.1 >=dev-libs/libevent-2.0:0/2.1-6= >=dev-db/sqlite-3.20.1:3[secure-delete,-debug] >=media-libs/libvpx-1.5.0:0/3=[postproc] >=x11-libs/gtk+-3.4.0:3 >=app-portage/elt-patches-20170422 !<sys-devel/gettext-0.18.1.1-r3 || ( >=sys-devel/automake-1.16:1.16 >=sys-devel/automake-1.15.1:1.15 ) ~sys-devel/autoconf-2.13 >=sys-devel/libtool-2.4 app-arch/unzip
                            RDEPEND: >=dev-libs/nss-3.34.1 >=dev-libs/nspr-4.17 >=app-text/hunspell-1.5.4:0/1.6= dev-libs/atk dev-libs/expat >=x11-libs/cairo-1.10[X] >=x11-libs/gtk+-2.18:2 x11-libs/gdk-pixbuf >=x11-libs/pango-1.22.0 >=media-libs/libpng-1.6.34:0/16=[apng] >=media-libs/mesa-10.2:* media-libs/fontconfig >=media-libs/freetype-2.4.10 media-libs/alsa-lib virtual/freedesktop-icon-theme >=sys-apps/dbus-0.60 >=dev-libs/dbus-glib-0.72 >=x11-libs/pixman-0.19.2 >=dev-libs/glib-2.26:2 >=sys-libs/zlib-1.2.3 >=virtual/libffi-3.0.10 virtual/ffmpeg x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libXrender x11-libs/libXt >=dev-libs/icu-59.1:0/60.2= >=media-libs/libjpeg-turbo-1.2.1 >=dev-libs/libevent-2.0:0/2.1-6= >=dev-db/sqlite-3.20.1:3[secure-delete,-debug] >=media-libs/libvpx-1.5.0:0/3=[postproc] >=x11-libs/gtk+-3.4.0:3
                            EAPI:    6
                            58.0.1^d{tbz2}
     Домашняя страница:     http://www.mozilla.com/firefox
     Найти открытые баги:   https://bugs.gentoo.org/buglist.cgi?quicksearch=www-client%2Ffirefox
     Описание:              Firefox Web Browser
     Лицензия:              MPL-2.0 GPL-2 LGPL-2.1
...

При необходимости отобразить информацию о каждой версии пакета построчно. Для этого предназначена опция -l, --versionlines:

eix -l

[I] www-client/firefox
     Доступные версии:      
            52.4.0    ^d [bindist custom-cflags custom-optimization dbus debug eme-free +gmp-autoupdate gtk2 hardened hwaccel jack +jemalloc neon pgo pulseaudio rust selinux startup-notification system-cairo system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite test wifi L10N="ach af an ar as ast az bg bn-BD bn-IN br bs ca cak cs cy da de dsb el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy ga gd gl gn gu he hi hr hsb hu hy id is it ja ka kab kk km kn ko lij lt lv mai mk ml mr ms nb nl nn or pa pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv ta te th tr uk uz vi xh zh-CN zh-TW"]
            52.6.0    ^d [bindist custom-cflags custom-optimization dbus debug eme-free +gmp-autoupdate gtk2 hardened hwaccel jack +jemalloc neon pgo pulseaudio rust selinux startup-notification system-cairo system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite test wifi L10N="ach af an ar as ast az bg bn-BD bn-IN br bs ca cak cs cy da de dsb el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy ga gd gl gn gu he hi hr hsb hu hy id is it ja ka kab kk km kn ko lij lt lv mai mk ml mr ms nb nl nn or pa pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv ta te th tr uk uz vi xh zh-CN zh-TW"]
            58.0.1    ^d{tbz2} [bindist custom-cflags custom-optimization dbus debug eme-free +gmp-autoupdate hardened hwaccel jack neon pulseaudio +screenshot selinux startup-notification system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite test wifi L10N="ach af an ar as ast az bg bn-BD bn-IN br bs ca cak cs cy da de dsb el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy ga gd gl gn gu he hi hr hsb hu hy id is it ja ka kab kk km kn ko lij lt lv mai mk ml mr ms nb nl nn or pa pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv ta te th tr uk uz vi xh zh-CN zh-TW"]
     Установленные версии:  58.0.1^d{tbz2}(14:12:21 27.02.2018)(dbus gmp-autoupdate hwaccel screenshot system-icu system-jpeg system-libevent system-libvpx system-sqlite -bindist -custom-cflags -custom-optimization -debug -eme-free -hardened -jack -neon -pulseaudio -selinux -startup-notification -system-harfbuzz -test -wifi L10N="bg bs cs da de es-AR es-ES es-MX et fi fr hr hu it kk lt lv nl pl pt-BR pt-PT ro ru sk sl sq sr sv uk -ach -af -an -ar -as -ast -az -bn-BD -bn-IN -br -ca -cak -cy -dsb -el -en-GB -en-ZA -eo -es-CL -eu -fa -ff -fy -ga -gd -gl -gn -gu -he -hi -hsb -hy -id -is -ja -ka -kab -km -kn -ko -lij -mai -mk -ml -mr -ms -nb -nn -or -pa -rm -si -son -ta -te -th -tr -uz -vi -xh -zh-CN -zh-TW")
     Домашняя страница:     http://www.mozilla.com/firefox
     Описание:              Firefox Web Browser
...

Опции -l, --versionlines и -v, --verbose отлично сочетаются:

eix -lv

Параметры поиска

Поиск по имени пакета

По умолчанию eix вполняет поиск по имени пакета. Так, поиск по слову 'browser' выдаст 19 результатов:

eix browser

* www-client/qutebrowser
     Доступные версии:      ~1.0.4^t 1.1.1^t **9999^t {test PYTHON_TARGETS="python3_5 python3_6"}
     Домашняя страница:     https://www.qutebrowser.org/ https://github.com/qutebrowser/qutebrowser
     Описание:              A keyboard-driven, vim-like browser based on PyQt5 and QtWebEngine
...

Поиск по описанию пакета

Если необходимо выполнить поиск по описанию пакета, то используйте параметр -S, --description. Поиск по слову 'browser' в этот раз выдаст уже 106 совпадений:

eix -S browser

* www-client/opera
     Доступные версии:      12.16_p1860-r1 45.0.2552.898[1] 51.0.2830.34 51.0.2830.40 {gtk multilib ELIBC="FreeBSD" L10N="af ar az (+)be (+)bg (+)bn +ca cnr (+)cs (+)da (+)de (+)el (+)en-GB +es (+)es-419 es-ES et fa (+)fi +fil (+)fr (+)fr-CA fy gd (+)he (+)hi (+)hr (+)hu (+)id (+)it (+)ja ka kk (+)ko (+)lt (+)lv mk (+)ms (+)nb (+)nl nn pa (+)pl pt (+)pt-BR +pt-PT (+)ro (+)ru (+)sk (+)sr (+)sv (+)sw (+)ta (+)te (+)th tl (+)tr (+)uk ur uz (+)vi (+)zh-CN (+)zh-TW zu"}
     Домашняя страница:     http://www.opera.com/
     Описание:              A fast and secure web browser

[1] "calculate" /var/lib/layman/calculate
...

Поиск по наличию USE-флага

Большинство пакетов Calculate Linux имеют USE-флаги, которые определяют их функционал. Поиск по наличию флага у пакета осуществляется при помощи параметра -U, --use:

eix -U qt5

Может быть полезно ограничить вывод только установленными пакетам, имеющими определённый флаг:

eix -IU qt5

Для удобства список можно сократить, получив компактный вывод из имен установленных пакетов с определённым флагом:

eix -#IU qt5

Eix может выполнять поиск не просто по наличию флага, но и по наличию установленного пакета с включённым USE-флагом. Для этого используйте опцию --installed-with-use. Например, можно получить компактный вывод из имён установленных пакетов с включённым флагом 'qt5':

eix -# --installed-with-use qt5

Опция --installed-without-use, наоборот, используется для отображения установленных пакетов с отключённым флагом. Вот, папример, как получить компактный вывод из имён установленных пакетов с отключенным флагом 'qt5':

eix -# --installed-without-use qt5

Область поиска

Поиск среди установленных пакетов

Чтобы вывести только установленные пакеты, используйте параметр -I, --installed:

eix -I

Поиск в определённой категории пакета

Чтобы отобразить список пакетов определённой категории, используйте параметр -C, --category:

eix -C kde-apps

Поиск пакетов определённого слота

Слоты позволяют держать в системе несколько версий одного пакета. Например KDE4 и KDE5. Для ограничения результата поиска определённым слотом используйте параметр --slot:

eix --slot

В комбинации с параметром указания категории отобразится список пакетов категории, имеющих заданный слот:

eix -C kde-apps --slot 5

Поиск в подключённых оверлеях

С параметром -O, --overlay eix отобразит все пакеты подключённых в системе оверлеев. Такие пакеты или версии пакета помечаются нумерованной сноской, а в конце списка добавляется легенда:

eix -O

* x11-themes/elementary-icon-theme [1]
     Доступные версии:      2.7.1-r4^bs ~9999^bs
     Домашняя страница:     https://launchpad.net/elementaryicons
     Описание:              Elementary icon theme is designed to be smooth, sexy, clear, and efficient

* x11-themes/calculate-xcursors [1]
     Доступные версии:      13-r1 14-r1
     Домашняя страница:     http://www.calculate-linux.org/packages/x11-themes/calculate-xcursors
     Описание:              Calculate X.Org mouse cursor
...

По выводу видно, что в оверлее 'calculate' полностью все ebuild-ы находятся только для пакета x11-themes/elementary-icon-theme, а для пакета xfce-extra/xfce4-power-manager ebuild только для версии 1.2.0. Также видно, что ebuild-ы находятся только в оверлее 'calculate'.

Чтобы осуществить поиск по имени оверлея, укажите параметр --in-overlay:

eix --in-overlay calculate

Поиск установленных нестабильных версий пакетов

В системе могут быть установлены как стабильные, так и нестабильные версии пакетов, при этом часть пакетов размаскирована в оверлее 'calculate'. Для вывода списка пакетов, установленных нестабильными версиями, воспользуйтесь опцией --installed-unstable:

eix --installed-unstable