Paludis on Exherbo

cave resolve repository/x11 -x

Paludis on Exherbo (Developer configuration)
Paludis on Gentoo

Installation

{{File|/etc/portage/package.use|sys-apps/paludis {{EnableFlag|visibility}} {{EnableFlag|xml}}}}

Configuration (Portage compatible - Gentoo offical tree)

With this configuration you are able to still use portage, although paludis will be sloooow.

{{Root|mkdir -p /etc/paludis/repositories}}
{{File|/etc/paludis/keywords.conf|
<pre>
*/* amd64 ~amd64
</pre>
}}
{{File|/etc/paludis/licenses.conf|
<pre>
*/* *
</pre>
}}
{{File|/etc/paludis/use.conf|
<pre>
*/* BUILD_OPTIONS: -recomended_tests -optional_tests -split strip
*/* -gtk -arts -gnome -ldap -kerberos -acl -esd kde alsa xcb
*/* LINGUAS: de
*/* INPUT_DEVICES: -* evdev
*/* VIDEO_CARDS: -* nvidia
sys-apps/paludis visibility xml
dev-util/git -perl
</pre>
}}
{{File|/etc/paludis/bashrc|
<pre>
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
MAKEOPTS="-j5"
</pre>
}}
{{File|/etc/paludis/general.conf|
<pre>
world = /var/lib/portage/world
</pre>
}}
{{File|/etc/paludis/repositories/installed.conf|
<pre>
location = /var/db/pkg/
format = vdb
names_cache = /var/empty
provides_cache = /var/empty
</pre>
}}
{{File|/etc/paludis/repositories/gentoo.conf|
<pre>
location = /usr/portage
sync = rsync://rsync.europe.gentoo.org/gentoo-portage/
profiles = ${location}/profiles/default/linux/amd64/10.0/desktop
format = e
names_cache = /var/empty
distdir = /usr/portage/distfiles
</pre>
}}
{{Root|cat /etc/portage/package.use >> /etc/paludis/use.conf}}
{{Root|cp /etc/portage/package.unmask /etc/paludis/package_unmask.conf}}
{Root|cp /etc/portage/package.mask /etc/paludis/package_mask.conf}}
{{Root|cave sync}}
{{Root|cave resolve --continue-on-failure if-satisfied installed-packages --execute}}

Configuration (Portage incompatible - Gentoo offical tree)

Now that we have played around a little with Paludis we really don't need Portage compatibility anymore, so lets adjust our configuration to speed up Paludis.

{{Root|mkdir -p /var/cache/paludis/distfiles}}
{{Root|mkdir -p /var/cache/paludis/metadata}}
{{Root|mkdir -p /var/cache/paludis/names}}
{{Root|mkdir -p /var/cache/paludis/provides}}
{{Root|chown -R paludisbuild:paludisbuild /var/cache/paludis}}
{{Root|chown -R paludisbuild:paludisbuild /var/tmp/paludis}}
{{Root|chmod g+w /var/cache/paludis/distfiles}}
{{Root|chmod g+w /var/tmp/paludis}}
{{File|//etc/paludis/repository_defaults.conf|
<pre>
provides_cache = ${root}/var/cache/paludis/provides
names_cache = ${root}/var/cache/paludis/names
write_cache = ${root}/var/cache/paludis/metadata
distdir = ${root}/var/cache/paludis/distfiles
</pre>
}}
{{File|/etc/paludis/repositories/gentoo.conf|
<pre>
location = /usr/portage
sync = rsync://rsync.europe.gentoo.org/gentoo-portage/
profiles = ${location}/profiles/default/linux/amd64/10.0/desktop
format = e
</pre>
}}
{{Root|cave sync}}
{{Root|cave resolve --continue-on-failure if-satisfied installed-packages --execute}}

Configuration (Portage incompatible - Automatic repository/overlay configuration)

/etc/paludis/repositories/layman.conf| <pre> format = unavailable name = layman location = /var/db/paludis/repositories/layman sync = tar+http://git.exherbo.org/layman_repositories.tar.bz2 importance = -100 </pre>

/etc/paludis/repositories/repository.conf| <pre> format = repository config_filename = /etc/paludis/repositories/%{repository_template_name}.conf config_template = /etc/paludis/repository.template </pre>

/etc/paludis/repository.template| <pre> format = %{repository_template_format} location = /var/db/paludis/repositories/%{repository_template_name} sync = %{repository_template_sync} master_repository = gentoo </pre>

cave sync

cave show -t package repository/*

cave resolve repository/<repository_name> -x

Portage vs. Paludis cave commands

As of Paludis 0.58.0: The ‘paludis’ client is now deprecated in favour of ‘cave’.

Sync all repositories

Portage short: - Portage long: emerge --sync

Paludis cave short: - Paludis cave long: cave sync

Sync specific repository/overlay

Portage short: - Portage long: -

Paludis cave short: - Paludis cave long: cave sync <repository>

World update

Portage short: <nowiki>emerge -uDN --with-bdeps=y @world</nowiki> Portage long: <nowiki>emerge --update --deep --newuse --with-bdeps=y @world</nowiki>

Paludis cave short: cave resolve -x installed-packages -c Paludis cave long: cave resolve --execute installed-packages --complete

World update (unsafe) (continue on failure, allow package downgrades and removals)

Be sure to run ‘cave fix-linkage‘ afterwards.

Portage short: <nowiki>emerge -uDN --with-bdeps=y --keep-going=y @world</nowiki> Portage long: <nowiki>emerge --update --deep --newuse --with-bdeps=y --keep-going=y @world</nowiki>

Paludis cave short: cave resolve -x -U '*/*' -d '*/*' -P '*/*' -Cs installed-packages Paludis cave long: cave resolve --execute --permit-uninstall '*/*' --permit-downgrade '*/*' --purge '*/*' --continue-on-failure if-satisfied installed-packages

Install package

Portage short: emerge <package> Portage long: -

Paludis cave short: cave resolve -x <package> Paludis cave long: cave resolve --execute <package>

Install package without adding it to the world file

Portage short: emerge -1 <package> Portage long: emerge --oneshot <package>

Paludis cave short: cave resolve -x1 <package> Paludis cave long: cave resolve --execute --preserve-world <package>

Update scm packages (daily)

Portage short: - Portage long: -

Paludis cave short: cave resolve -x1 -Rd -Cs installed-packages Paludis cave long: cave resolve --execute --preserve-world --reinstall-scm daily --continue-on-failure if-satisfied installed-packages

Which package ownes <file>

Portage short: - Portage long: equery belongs <file>

Paludis cave short: - Paludis cave long: cave print-owners <file>

Search for broken packages and rebuild them

Portage short: revdep-rebuild Portage long: -

Paludis cave short: cave fix-linkage -x Paludis cave long: cave fix-linkage --execute

Remove unnecessary/leftover packages

Portage short: emerge -c Portage long: emerge --depclean

Paludis cave short: cave purge -x Paludis cave long: cave purge --execute

Reinstall every package which has files in a specific directory (e.g. for Perl updates)

cave resolve -1x $(cave print-owners -f '%c/%p:%s ' /usr/lib64/perl5/vendor_perl)

Reinstall every installed package

cave resolve installed-packages --everything -x1