The manage-slot-in-world utility, usually located at /usr/bin/manage-slot-in-world, is a helper application used by the update-buildspace application to preserve packages installed into a SLOT which should not be automatically cleaned. An example of such a package would be a newer version of gcc which would require manual configuration changes, and possibly a rebuild of the entire world, before the old version can be safely removed. If the old version of the package was not specifically mentioned in the world file the depclean phase would remove it potentially resulting in a non-functional build-space.
The manage-slot-in-world utility has three main modes of operation. The first, activated by supplying the -a or --add-installed option, is used to add the currently installed SLOT versions of the specified package(s) to the world file. In the example below the dev-lang/python package is being checked and SLOT versions 2.6 and 3.1 are already present in the world file. In all the examples we have also supplied the -p and -v, or --pretend and --verbose, options to ensure that no action is taken and that some output is generated even for actions which do not need to be taken such as when a package is already present in the world file.
dev-lang/python:2.6 already in world
dev-lang/python:3.1 already in world
The second mode of operation, activated by supplying the -r or --remove-unavailable option, is used to remove any SLOT versions of the specified package(s) which are no longer available in the portage tree from the world file.
dev-lang/python:2.6 still available
dev-lang/python:3.1 still available
The final mode of operation, activated by supplying the -R or --remove-all option, is used to remove all SLOT versions of the specified package(s) from the world file.
dev-lang/python:2.6 would be removed from world
dev-lang/python:3.1 would be removed from world
Multiple modes of operation and multiple package atoms may be included in one command. The example below adds currently installed SLOT versions of the dev-lang/python and sys-devel/gcc packages to the world file and removes any entries corresponding to versions no longer available.
dev-lang/python:2.6 already in world
dev-lang/python:3.1 already in world
sys-devel/gcc:4.4 already in world
dev-lang/python:2.6 still available
dev-lang/python:3.1 still available
sys-devel/gcc:4.4 still available