Sets
A set is a collection of package dependency specifications.
Built-in Sets
The following sets are always available:
system
- Defined by repositories, system consists of core packages that make up a basic system.
world
- Consists of the system set, plus all packages that have been installed as targets (as opposed to merely pulled in as dependencies of a target).
installed-packages
- The names of all installed packages.
installed-slots
- The names plus slots of all installed packages.
security
- The set of upgrades which must be performed to resolve security holes.
insecurity
- The set of insecure packages (mostly for internal use).
nothing
- An empty set.
Some sets, such as system
, are made by combining sets from multiple repositories. For these sets, the
parts of the set defined by each individual repository can be accessed using setname::reponame
.
User Defined Sets
This document applies only to clients using PaludisEnvironment
. Any standard client that supports a
--environment
command line option uses PaludisEnvironment
unless overridden, either by
explicitly selecting another environment (e.g. --environment portage
) or, on distributions also
supporting Portage, by lack of a Paludis configuration and presence of a Portage configuration.
When using the Paludis environment, the user can create their own sets. A set named foo
is defined in
the file foo.conf
, which is a standard configuration file, or in the file foo.bash
,
which is a dynamic standard configuration file. Sets may be specified in any of the following directories:
confdir/sets/
, whereconfdir
is the directory in whichuse.conf
et al. reside.DATADIR/paludis/sets/
. On most systems,DATADIR
is/usr/share
.LIBEXECDIR/paludis/sets/
. On most systems,LIBEXECDIR
is/usr/libexec
.
Overriding built-in sets in this manner is not recommended. Strange things will happen.
Each line in a user set file consists of an operator, followed by whitespace, followed by a package dependency specification or, for some operators, a set name. Permitted operators are:
*
- Indicates that the specification or set name is part of the set.
?
- Indicates that the specification is part of the set if and only if a package whose name is equal to the name part of the specification is installed. May not be used with a set name.
?:
- Like
?
, but considers the slot part of the specification (if any) in addition to the name part.
If the set foo
exists and is not a builtin set, the special set foo*
is automatically
generated by Paludis. The foo*
set is like the foo
set, except that it behaves as if every
operator is a *
. In addition, any set names inside that set are treated as if they were
setname*
, so that the operator behaviour override is recursive.