Paludis

Paludis is Article description::a multi-format package manager and an alternative to Portage.

Paludis is the official package manager of Exherbo Linux and was written by former Gentoo developer Ciaran McCreesh.

Installation
Refer to the Paludis guide for instructions on how to install Paludis and set up the basic configuration.

Configuration
This section gives an overview on where to configure various things in Paludis.


 * Toolchain and environmental package behavior:
 * Keywords (allowing packages from unstable branch): or
 * USE flags (enabling package features): or
 * Licenses: or
 * Package (un)masks: or  and  or  respectively
 * Hooks: various subdirectories of
 * Output and log behavior:

Usage
This section tries to give a concise usage overview and may serve as a quick lookup reference. However, it does not and will not replace the official documentation.

Basics and installing a package
The most basic form is:

This will try to solve the dependencies and print out the results. It will not actually perform the resolution (as in: install the target package). To actually carry out the resolution we would have to pass the  option. You should only do that if you know what you are doing, because paludis is truly non-interactive and will not ask in between. The more common workflow is to save the resolution information in a so called resume file, review the changes that would be performed (like installing and uninstalling packages) and then execute them:

It may make sense to create aliases for these commands in your favorite shell.

To perform dependency resolution and instantly carry out the results (if possible), you would do:

It is also possible to pass both  and.

The resume state also allows us to resume compilations/installations we have aborted or which have failed.

Not only the subcommand behaves this way. Refer to the man page of a particular subcommand to get more detailed information.

All further commands in this section will omit the  and the   options (if applicable) and will leave it up to the user which one to choose (or none).

Uninstall a package
Either this way:

or the following way, which lets you combine it with installation of packages:

If you want to uninstall all unneeded packages, do

Install a repository
If you have configured unavailable layman repositories as per the the Paludis guide, then you should be able to install repositories just like regular packages.

If the repository name could be ambiguous with a package name, then you can tell cave explicitly that this is a repository:

Post-configure a package
Some ebuilds have a pkg_config phase which allows post-install configuration for packages.

A lot of ebuilds might output something like this:

* In order to update your hddtemp database, run: * emerge --config =app-admin/hddtemp-0.3_beta15-r7

Since we don't use Portage, we have to do this instead for the above case:

Tell the resolver how much work it should perform
There are three main options that change the default behavior:

If none of the above options are passed, then the default behavior is roughly in between and. These options are in fact just shorthands for more fine-grained options. Check the man page of for additional information on this subject.

Keep output logs
Add the following file:

Make Paludis quiet
Add the following file:

Speed up cave-search
can make use of a search index, similar to what does. First, we have to generate the index:

And then we can use it:

Subslots
Although subslot handling in Paludis technically meets the spec, it misbehaves from a user perspective. Paludis will not pull in installed packages with mismatched subslots into the depgraph which are not part of the resolution, nor does it allow the user to easily do that. There exist various hacks and scripts to work around that. Another way is to pass if installed dependant packages of foo use an older subslot than the one that is about to be installed. However, that will also reinstall packages that are not affected. Also see the upstream bug report.

Clang
Paludis frequently fails to build with Clang. Your best bet is to use the stable gentoo releases which have a better chance of containing a patch. The live ebuild will most likely fail to build.

Gentoo rsync mirrors
Some rsync gentoo mirrors are out of date and don't run rsync-3.1 yet. These cause trouble. You can either overwrite the default rsync syncer with your own syncer or pick a gentoo mirror that works properly.

External resources

 * http://paludis.exherbo.org/faq/howdoi.html - FAQ: How do I ...?
 * http://exherbo.org/ - Exherbo Linux.
 * http://zaufi.github.io/my-paludis-hooks-and-addons.html