Selected set (Portage)

From Gentoo Wiki
Jump to: navigation, search

The selected set contains the packages the admin has explicitly installed, those specified in the world and world_sets files. The selected set, together with the profile set and the system set, make up the world set. With a couple of exceptions, Portage will register selected set package atoms to the /var/lib/portage/world file.

Managing the selected set

Listing the selected set

eix can be used to list the selected set:

user $eix -c --selected-file

Avoiding an atom in the world file

In order to avoid problems in dependency resolution when updating the system, the /var/lib/portage/world file should contain as few dependencies as possible. So use the --oneshot (-1) option for emerging dependencies.

root #emerge --ask --oneshot <category/atom>

Checking the world file

The emaint command can be used to see if any problems exist in the world file:

user $/usr/sbin/emaint --check world
Emaint: check world        100% [============================================>]

Keeping the world file clean

Dependencies already listed in this file can be found using the qdepends -Q command and be collected in a file say /tmp/deselect:

Important
The following script may have several issues so check the data carefully.[1]
CODE Check world file bash example
#!/bin/bash

while read i ; do \
        if [[ -n "$(qdepends -Q $i)" ]]; then \
                echo '' ; echo 'checking '$i ; 
                if [[ -n "$(emerge -p --quiet --depclean $i)" ]]; then \
                        echo $i' needs to stay in @world'
                else
                        echo $i' can be deselected' 
                        echo $i >> /tmp/deselect
                fi
        fi 
done < /var/lib/portage/world

Entries collected in /tmp/deselect can be cross-checked using the --depclean option:

user $emerge -pv --depclean $(< /tmp/deselect)

The emerge --deselect option will remove these entries without unmerging them.

root #emerge --ask --deselect $(< /tmp/deselect)

In case emerge --depclean -p indicates some needed or wanted package would be unmerged, those can be re-added using the --noreplace option. See the next section for details.

Adding an atom without recompilation

To add a package to the selected set without recompiling the package:

root #emerge --ask --noreplace <category/atom>

It will add the atom to the /var/lib/portage/world file without compiling it again.

See also

External resources

References