Eix

Updated 14 March 2019

Eix is a search, diff and binary cache update in your local tree. Перевод подробного описания eix на русский язык можно найти здесь.

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

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

Output syntax

Default output

By default, calling eix without options will result in listing all packages, as shown below:

eix

[I] app-misc/mc
     Available versions:      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}
     Installed versions:  4.8.20-r1{tbz2}(12:45:03 16.01.2018)(X edit gpm nls samba slang xdg -mclib -sftp -spell -test)
     Homepage:     https://www.midnight-commander.org
     Description:              GNU Midnight Commander is a text based file manager
...

Here you can see all available versions of the package, the installed version, available USE flags as well as USE flags the package was installed with, the developers' site address, a package description.

Compact output

If you only need to check if the package is available, together with its name, version and description, use the -c, or --compact option:

eix -c

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


Package name listing only

If you browse through numerous packages, you might also want to list their names only. To do so, use the -#, or --only-names option:

eix -#

app-misc/mc
...

Verbose output

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

eix -v firefox

* www-client/firefox                                                                                    
     Available versions:      52.4.0^d 52.6.0^d 58.0.1^d{                   tbz2}                                                                                                                                        
     IUSE (all versions):     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"
     Installed versions:  Version:  58.0.1^d{tbz2}
                            Date:    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}
     Homepage:     http://www.mozilla.com/firefox
     Find open bugs:   https://bugs.gentoo.org/buglist.cgi?quicksearch=www-client%2Ffirefox
     Description:              Firefox Web Browser
     License:              MPL-2.0 GPL-2 LGPL-2.1
...

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

eix -l

[I] www-client/firefox
     Available versions:      
            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"]
     Installed versions:  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")
     Homepage:     http://www.mozilla.com/firefox
     Description:              Firefox Web Browser
...

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

eix -lv

Search options

Search by package name

By default, eix makes search by package name. Так, поиск по слову 'browser' выдаст 19 результатов:

eix browser

* www-client/qutebrowser
     Available versions:      ~1.0.4^t 1.1.1^t **9999^t {test PYTHON_TARGETS="python3_5 python3_6"}
     Homepage:     https://www.qutebrowser.org/ https://github.com/qutebrowser/qutebrowser
     Description:              A keyboard-driven, vim-like browser based on PyQt5 and QtWebEngine
...

Search by package description

If you need to search by package description, use option -S, --description. Search for 'browser' will return 106 matches:

eix -S browser

* www-client/opera
     Available versions:      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"}
     Homepage:     http://www.opera.com/
     Description:              A fast and secure web browser

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

Search by USE flag

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

eix -U qt5

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

eix -IU qt5

Compact output is available for this option:

eix -#IU qt5

Eix can search both by a USE flag, but also among installed packages for which a specified USE flag was enabled. To do so, use option --installed-with-use. You can, for instance, get a compact list of the installed packages with the enabled 'qt5' USE flag:

eix -# --installed-with-use qt5

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

eix -# --installed-without-use qt5

Search scope

Search among installed packages

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

eix -I

Search within a package category

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

eix -C kde-apps

Search within a slot

Slots allow to have multiple versions of a package in your system: for instance, KDE4 and KDE5 ones. To limit your search to a slot, use option --slot:

eix --slot

When combined to a category option, this command will list all packages with the specified slot belonging to the specified category:

eix -C kde-apps --slot 5

Search in the added overlays

С параметром -O, --overlay eix отобразит все пакеты подключённых в системе оверлеев. Such packages or package versions are marked with a numbered footnote. At the end of the list a legend is added:

eix -O

* x11-themes/elementary-icon-theme [1]
     Available versions:      2.7.1-r4^bs ~9999^bs
     Homepage:     https://launchpad.net/elementaryicons
     Description:              Elementary icon theme is designed to be smooth, sexy, clear, and efficient

* x11-themes/calculate-xcursors [1]
     Available versions:      13-r1 14-r1
     Homepage:     http://www.calculate-linux.org/packages/x11-themes/calculate-xcursors
     Description:              Calculate X.Org mouse cursor
...

This output shows that in the 'calculate' overlay, x11-themes/elementary-icon-theme is the only package to have all the ebuilds, while xfce-extra/xfce4-power-manager only has an ebuild for version 1.2.0. Также видно, что ebuild-ы находятся только в оверлее 'calculate'.

To search by overlay name, use option --in-overlay:

eix --in-overlay calculate

Search for unstable versions

The system can be installed as stable or unstable versions of packages, some of which are unmasked in the 'calculate' overlay. To view the list of unstable packages, use option --installed-unstable:

eix --installed-unstable