Paludis Logo Introduction Main page
Bugs, Requests, Support Release Notes
Overview ChangeLog


A set is a collection of package dependency specifications.

Built-in Sets

The following sets are always available:

Defined by repositories, system consists of core packages that make up a basic system.
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).
The names of all installed packages.
The names plus slots of all installed packages.
The set of upgrades which must be performed to resolve security holes.
The set of insecure packages (mostly for internal use).
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


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:

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.