This project is dead for a long time. It will probably neither build nor work correctly. Use at your own risk.

exi is a reimplementation of the "emerge" layer of Portage, the package manager of Gentoo Linux. exi is written in Haskell. It is in development and not officially released at the moment. Version 0.1 supports the generation of dependency graphs and merging of packages with nearly all the features that emerge provides. Version 0.2 also supports depclean and unmerging of packages considering reverse dependencies.

exi does not aim at replacing Portage! The goal of exi is to support merging and unmerging of packages so that it can be used as a drop-in replacement of "emerge". Furthermore, the dependency resolution of exi works slightly different than that of Portage, hopefully leading to ultimately better results. We want to experiment with several extensions and variations of the dependency resolution algorithm, including various forms of reverse dependencies. At the moment, providing a stable version of exi is not (yet) a priority.

Warning: exi can break your system! Installation should be safe, but running it affects system-internal files that can theoretically stop Portage from working correctly. At the moment, exi reads and writes the Portage cache directly, and it reads, but not writes, the installed packages database (it writes the database indirectly by calling the "ebuild" command).

exi is licensed under the GPL-2.

Development repository
exi is developed in a darcs repository. If you want to get the latest version, say
darcs get --partial http://kosmikus.org/repos/exi/

Valid XHTML 1.0! Valid CSS!

Andres Löh, 2011-12-01