From Gentoo Wiki
Jump to:navigation Jump to:search

Alternative: Configuring Paludis

Paludis is a cross-distro package manager that works for Gentoo (and derivates) and Exherbo. It is available in gentoo as the package sys-apps/paludis in both stable and unstable branch and can be used instead of portage. Mind that paludis is not developed by gentoo and as such it gets as much support as a regular system package like sys-kernel/vanilla-sources. Before we can start we need the portage tree:

root #emerge-webrsync

And then we can emerge paludis:

root #emerge --ask sys-apps/paludis app-eselect/eselect-package-manager

Now we set it as the default package manager:

root #eselect package-manager set paludis
root #. /etc/profile
You must not try to uninstall portage at any time. Gentoo currently does not work without it, even if you use a different package manager.

Paludis doesn't install default configuration, so we have to start from scratch. First we create the necessary directories.

root #mkdir -p /etc/paludis/repositories /var/cache/paludis/names /var/cache/paludis/metadata

Then we tell paludis where the world file is:

FILE /etc/paludis/general.conf

Now we set the basic toolchain variables (this depends on your architecture! You might want to check /etc/portage/make.conf and copy paste the relevant info):

FILE /etc/paludis/bashrc
CFLAGS="-march=core-avx2 -O2 -pipe -Wall"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"

Now enable a mirror, e.g.:

FILE /etc/paludis/mirrors.conf

Enable the licenses you want. To accept all, except EULAs, do:

FILE /etc/paludis/licenses.conf
*/* * -@EULA

Set the USE flags you want. This is just an example:

FILE /etc/paludis/use.conf
# these are global USE flags
*/* cups -libav -qt5 -qt4 -gnutls a52 aac acpi sound
*/* ABI_X86: 32 64

# per-package
net-p2p/retroshare qt4

And set the keywords you want to accept, e.g. for stable arch:

FILE /etc/paludis/keywords.conf
# global
*/* amd64

# per-package
net-p2p/retroshare ~amd64

Configuring repositories

Now we have to configure repositories. This is done in the repositories/ subdirectory. A typical entry for the main gentoo tree should look like this:

FILE /etc/paludis/repositories/gentoo.conf
location = /usr/portage
sync = rsync://

# Select your profile normally in portage via 'eselect profile' and then
# check where the file /etc/portage/make.profile points to and copy that information.
# E.g., if it is '../../usr/portage/profiles/default/linux/amd64/13.0', then the variable should be this:
profiles = ${location}/profiles/default/linux/amd64/13.0

distdir = /usr/portage/distfiles
format = e
names_cache = /var/cache/paludis/names
write_cache = /var/cache/paludis/metadata

We also have to provide a repository for installed packages (that's how paludis handles them):

FILE /etc/paludis/repositories/installed.conf
location = /var/db/pkg/
format = vdb
names_cache = /var/cache/paludis/names
provides_cache = /var/empty

Now we set up a repository for repositories, so that paludis can track new repositories which are yet unavailable. We create the default repository template:

FILE /etc/paludis/repository.template
format = %{repository_template_format}
location = /var/db/paludis/repositories/%{repository_template_name}
sync = %{repository_template_sync}

And then create the repository.conf:

FILE /etc/paludis/repositories/repository.conf
format = repository
config_filename = /etc/paludis/repositories/%{repository_template_name}.conf
config_template = /etc/paludis/repository.template

If we want to see unavailable layman repositories, we have to create a repository for layman:

FILE /etc/paludis/repositories/layman.conf
format = unavailable
name = layman
location = /var/db/paludis/repositories/layman
sync = tar+
importance = -100

Now we should be able to use paludis to sync:

root #cave sync

If you want to install a package or even a repository, you just do:

root #cave resolve -x net-p2p/retroshare
root #cave resolve -x repository/qt

For further configuration and maintenance, refer to the official documentation.