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/, where- confdiris the directory in which- use.confet al. reside.
- DATADIR/paludis/sets/. On most systems,- DATADIRis- /usr/share.
- LIBEXECDIR/paludis/sets/. On most systems,- LIBEXECDIRis- /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.
