Portage Advanced Usage

From Elvanör's Technical Wiki
Revision as of 08:32, 24 July 2009 by Elvanor (talk | contribs)
Jump to navigation Jump to search

This article lists some neat things you can do with Portage/emerge.

File locations

/etc/portage directory

This directory contains important configuration files for Portage.

  • package.keywords lets you add keywords for individual packages.
  • package.use lets you add local USE flags for certain packages. To add/remove certain languages, you can use expanded USE flags:
USE="linguas_en -linguas_fr"
  • Note that on these two files, each line must contain only the package name and the options. Don't add any comment (comments must use a whole line) after the package name and options.

Portage world file

It is located in /var/lib/portage/world.

Portage cache

It is located in /var/cache/edb.

emerge options

  • --newuse will recompile packages that had their USE flags changed.
  • --depclean will attempt to remove packages that are no longer needed as dependencies.
  • --fetchonly will only fetch the distribution files.
  • -t will display a tree view. It can be very useful to know which package pulls in another one.
  • To emerge a particular version of a package: emerge =mypackage-0.6.3-r2

Features

  • Collision protection cannot apparently be disabled, even with -collision-protect and -protect-owned. The only way to partly disable it is to use the environment variable COLLISION_IGNORE with a list of directories (those are not recursively ignored).

Gentoolkit

  • equery files ebuild_name will list all the files installed by the specified ebuild.
  • qfile /path/to/file will display which package provides that particular file. It can sometimes be useful (it searches in all packages in repository, not only in installed ones).

Profiles

  • Profiles contain default configuration values and settings.
  • For a server machine, don't use the server profile. It is not yet production-ready. Use the generic profile, eg default/linux/x86/2008.0 (for a desktop box, use default/linux/x86/2008.0/desktop).

Useful Links