Eix

eix is a set of utilities for searching and diffing the local Portage tree and overlays using a binary cache.

It is made to be more efficient and flexible than the emerge --search command. eix comes with colorized output which helps users easily find the needed package information.

Installation
Install :

Updating the cache manually
After the installation has finished, it is important to update the cache to index all packages on the system. Running following command will update the local eix cache:

Updating the cache with each sync
After each update of the portage tree the cache needs to be updated. Additionally, one may want to see a diff of the changes since the last sync:

The following 2 methods are used to automatically update the cache with each sync.

Method 1: Using portages postsync hook
After each sync all executable scripts in the directory /etc/portage/postsync.d/ are called:

If overlays are used, eix-update can become quite slow, as many of them do not provide pregenerated caches. To speed up the process of eix-update, one can hook portage to regenerate the cache for each repository after each sync. An example for this is given in the file /etc/portage/repo.postsync.d/example. We can copy this example to /etc/portage/repo.postsync.d/egencache</tt> and make it executable.

Method 2: Using eix-sync</tt>
Alternatively, one can use eix-sync</tt> tool from eix</tt> itself:

The above command is a shorthand way to running these commands sequentially:

If overlays are used, it is recommended to configure eix</tt> to synchronize them too:

To speed up eix-update</tt> in case of large overlays have a look at this page.

Adding remote overlays to the cache
To search all available overlays (and not only the checked out overlays), add them to the cache with the command:

Using tmpfs cache
This breaks eix</tt> because is missing when  is mounted:

The simple solution is to move the eix</tt> cache file away from the default location:

One side effect is needing to run eix-update</tt> after reboot which will take a few seconds.

Simple search
To find package names containing kernel keyword:

Searching for installed packages
Search for installed packages using the  option:

Searching in package descriptions
To search in package descriptions use the  option. It is possible to print out results in a compact list using :

Searching in package categories
Search for certain category using the  option and print out the results in a compact list :

Searching for installed obsolete packages
Search for obsolete packages on the system using the eix-test-obsolete</tt> command:

Format strings
This is probably the most powerful aspect of eix</tt>, but the documentation is hard to understand. eix</tt> has a mini-language for specifying more precise queries and output formats than are possible using only the basic options. The format string is specified as the option argument to the  option. There are basically two major concepts: properties and variables.


 * Properties: Each package has a set of associated properties that can either be printed or used as part of a predicate in a conditional block.
 * Variables: A variable can be any environment variable set in the environment of eix, or any of the variables printed from the output of eix --dump</tt>.

Conditional blocks
Conditional blocks take can 3 forms, each with an optional RHS, each of which can be optionally negated:

Tmux users should disable status line updates
When using tmux</tt> with automatic window renaming enabled (that is  has been ran in the tmux</tt> configuration file), status line updates should be disabled. Otherwise, every time eix-update</tt> is ran the title of the window will be renamed to something like "<tt>eix-update: Finished*</tt>".

To disable status line updates, run the following command: