A set is a collection of package dependency specifications.
The following sets are always available:
system
world
installed-packages
installed-slots
security
insecurity
nothing
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
.
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/
, where
confdir
is the directory in which use.conf
et al. reside.DATADIR/paludis/sets/
. On most
systems, DATADIR
is /usr/share
.LIBDIR/paludis/sets/
. On most
systems, LIBDIR
is /usr/lib
or /usr/lib64
.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:
*
?
?:
?
, 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.