FAQ: Things Paludis Does Differently
- No
--treeEquivalent - No
FEATURESEquivalent - No
--emptytreeEquivalent or No--newuseEquivalent - ELOG Equivalent
- No Automatic Directory Creation
- Revdep-rebuild Equivalent
- Alternatives to Layman
- No
package.providedfile
No --tree Equivalent
Paludis does not have something identical to emerge --tree. It
does, however, have --show-reasons, which we find to be
considerably more informative, useful and correct.
No FEATURES Equivalent
Paludis doesn't use the FEATURES variable. We find this to be
a rather ugly way of handling things. We do have equivalents to most values:
- ccache
- See Use
ccache. - collision-protect
- There are various third party hooks that implement this. We might start shipping one as a demo hook at some point. Note that collision-protect is conceptually broken and you shouldn't be using it.
- distcc
- See Use
distcc. - keepwork, keeptemp, noclean
- The
builtin_tidyupphase does cleaning up. You can turn this phase off usingSKIP_FUNCTIONS="tidyup". - nodoc, noinfo, noman
- You could write a hook that removes the relevant directories from
$D. - nostrip
- Set the flags
-split -stripin the BUILD_OPTIONS group in use.conf, for the packages you want it to apply to. - sandbox
- Always on.
- splitdebug
- Set the flags
split stripin the BUILD_OPTIONS group in use.conf, for the packages you want it to apply to. - test
- Controlled by
BUILD_OPTIONS: optional_testsin use.conf.
No --emptytree Equivalent or No --newuse Equivalent
The option --dl-reinstall handles both these cases.
ELOG Equivalent
Paludis ships with a demo hook showing how to get a summary of messages after
all packages have been installed. It can be found in
SHAREDIR/paludis/hooks/demos/elog.bash. See the hooks documentation for more information about
hooks.
This hook is not enabled by default because it is highly annoying. If you use repositories that don't use elog to spam pointless messages about revdep-rebuild, the demo hook may be of use.
No Automatic Directory Creation
Portage usually automatically creates directories for things. Paludis will usually refuse to create directories, except as a subdirectory of an existing Paludis-owned directory. This is for security reasons -- Paludis does not know what permissions are correct for you for the directory, and unlike Portage it does not grant back-door root access to all users in a particular group.
As of Paludis 0.46.0, when Paludis does create cache subdirectories, it will copy the mode of the main cache directory rather than going by your umask.
Incidentally, if you want to let multiple users do Paludis cache writes and
the like, you should look into what chmod +s does to directories.
Note, however, that malicious users who can write cache files can probably gain
local root access.
Revdep-rebuild Equivalent
Use the reconcilio client.
Alternatives to Layman
Portage does not natively support multiple repositories, so the layman tool is used to hack around this.
Since Paludis does support multiple repositories, there is no need for a fancy tool to manage and sync overlays.
Adding a repository to Paludis simply requires an appropriate configuration file to be created, and then a normal
sync to be carried out. It is possible to create repository configuration files by hand; however, an automated method is
available which simplifies things considerably. To enable the automated method, simply ensure that the unavailable and repository repositories have been configured, and then a
repository can automatically by configured simply by installing repository/somerepo.
Note that previously, a script named playman was used for this purpose; the automatic method is now
considered preferable.
No package.provided file
Portage supports pretending that a package is installed for the purposes of dependency resolution via a file called
package.provided. Paludis provides a cleaner approach, in the form of importare. Importare allows you to more cleanly
reinstall, uninstall, and upgrade unpackaged packages, using the same sort of merge/unmerge process that paludis uses
for ebuilds.
To use importare, you will first have to configure an
installed_unpackaged format repository.
To get a more direct equivalent of package.provided, you can "install" an empty directory with importare.
