This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

/etc/portage/sets

From Gentoo Wiki (test)
Jump to:navigation Jump to:search

For each file in /etc/portage/sets, a package set is created, defining a one-to-many relationship between a set name and an arbitrary group of package atoms. User-defined set names correspond to the name of the file. Each file should contain a list of package atoms and nested package sets, one per line. You can see the full list of sets that exist at any time with

user $emerge --list-sets

Example

For the sake of example, say Larry wanted to run live ebuilds for GPU drivers, and desired an easy shorthand for rebuilding them on demand. He could define the following set:

FILE /etc/portage/sets/gpu-stack
x11-libs/libdrm
media-libs/mesa
x11-drivers/xf86-video-ati
x11-drivers/xf86-video-intel

Now, all that is needed trigger a rebuild of all of them at once is:

root #emerge --ask @gpu-stack
These are the packages that would be merged, in order:
Calculating dependencies \
...done!
[ebuild   R   #] x11-libs/libdrm-9999
[ebuild   R   #] x11-drivers/xf86-video-intel-9999
[ebuild   R   #] x11-drivers/xf86-video-ati-9999
[ebuild   R   ~] media-libs/mesa-9999

Would you like to merge these packages? [Yes/No]
Note
Selecting "Yes" here will add the set to the /var/lib/portage/world_sets file. Use --oneshot to avoid this.

To remove a user defined set from world_sets, use the --deselect option to emerge, then clean up orphaned dependencies:

root #emerge --deselect @gpu-stack
root #emerge --ask --depclean
Warning
Do not use the --depclean or --unmerge options to remove the set itself. Doing so may remove critical packages.

See also

External resources

For more detailed information about package sets, read the emerge manpage and search for "set" (/^\s*set).