1 .TH "PORTAGE" "5" "Jan 2004" "Portage 2.0.51" "Portage"
3 portage \- the heart of Gentoo
5 The current portage code uses many different configuration files, most of which
6 are unknown to users and normal developers. Here we will try to collect all
7 the odds and ends so as to help users more effectively utilize portage. This
8 is a reference only for files which do not already have a man page.
10 All files in the make.profile directory may be tweaked via parent profiles
11 when using cascading profiles. For more info, please see
12 http://www.gentoo.org/proj/en/releng/docs/cascading-profiles.xml
14 If you are looking for information on how to emerge something, please see
24 .BR /etc/make.profile/
48 .BR /etc/portage/profile/
49 site-specific overrides of \fB/etc/make.profile/\fR
51 .BR /usr/portage/profiles/
67 In the following sections, some terminology may be foreign to you or used
68 with meaning specific to Portage. Please see the referenced manpages for
69 more detailed explanations.
73 A string which matches a package. It is of the form category/package.
74 It may also contain optional logical operators and versions.
80 Each architecture has a unique KEYWORD.
86 A DEPEND atom that is part of the "virtual" category. They are used
87 when different packages can satisfy a dependency and only one of them is
93 .SH "SPECIFIC FILE DESCRIPTIONS"
99 The global default settings for Portage. This comes from the portage package
100 itself. Settings in \fBmake.conf\fR override values here. The format
101 is described extensivly in \fBmake.conf\fR(5).
104 The global custom settings for Portage. See \fBmake.conf\fR(5).
107 .BR /etc/make.profile/
108 This is usually just a symlink to the correct profile in
109 \fB/usr/portage/profiles/\fR. Since it is part of the portage tree, it
110 may easily be updated/regenerated by running `emerge \-\-sync`. It defines
111 what a profile is (usually arch specific stuff). If you need a custom
112 profile, then you should make your own \fB/etc/make.profile/\fR
113 directory and populate it. However, if you just wish to override some
114 settings, do NOT edit these files because they WILL be lost with the
115 next `emerge \-\-sync`. See the section below on \fB/etc/portage/\fR for
120 The existence of this file marks a profile as deprecated, meaning it is
121 not supported by Gentoo anymore. The first line must be the profile to which
122 users are encouraged to upgrade, optionally followed by some instructions
123 explaining how they can upgrade.
127 default-linux/x86/2005.0
128 # emerge -n '>=sys-apps/portage-2.0.51'
129 # rm -f /etc/make.profile
130 # ln -s /usr/portage/profiles/default-linux/alpha/2005.0 /etc/make.profile
134 The profile default settings for Portage. The general format is described
135 in \fBmake.conf\fR(5). The \fImake.defaults\fR for your profile defines a
136 few specific variables too:
142 Architecture type (x86/ppc/hppa/etc...).
144 .B USERLAND = \fI"GNU"\fR
145 Support BSD/cygwin/etc...
147 .B PORTAGE_LIBC = \fI"glibc"\fR
148 Support uClibc/BSD libc/etc...
151 Distinguish machines classes that have the same \fBARCH\fR. All sparc
152 machines have ARCH=sparc but set this to either 'sparc32' or 'sparc64'.
155 Special USE flags which may be needed when bootstrapping from stage1 to stage2.
158 Special USE flags used by catalyst for building a stage3 and GRP sets.
163 This file serves two purposes. The first is to mask out specific
164 packages/versions on a per\-profile basis. The second is to provide the
165 list of packages that compose the special \fIsystem\fR class.
169 \- comments begin with #
170 \- one DEPEND atom per line of what to mask OUT
171 \- packages to be added to the system class begin with a *
174 In a cascading profile setup, you can remove packages in children
175 profiles which were added by parent profiles by prefixing the atom with
181 # only allow versions of glibc less than 2.3
182 <sys\-libs/glibc\-2.3
183 # add any version of bash to the system class
185 # only allow versions of readline earlier than 4.2
186 # and add it to the system class
187 *<sys\-libs/readline\-4.2
191 A list of packages (one per line) that make up a stage1 tarball. Really only
192 useful for stage builders.
195 A list of packages (one per line) that portage should assume have been
196 provided. Useful for porting to non-Linux systems. Portage will not
197 attempt to update a package that is listed here unless another package
198 explicitly requires a version that is newer than what has been listed.
199 Basically, it's a list that replaces the \fBemerge \-\-inject\fR syntax.
201 For example, if you manage your own copy of a 2.6 kernel, then you can
202 tell portage that 'sys-kernel/development-sources-2.6.7' is already taken
203 care of and it should get off your back about it.
207 \- comments begin with #
208 \- one DEPEND atom per line
209 \- relational operators are not allowed
210 \- must include a version
215 # you take care of the kernel
216 sys-kernel/development-sources-2.6.7
218 # you installed your own special copy of QT
223 This contains a path to the parent profile. It may be either relative or
224 absolute. The paths will be relative to the location of the profile. Most
225 commonly this file contains '..' to indicate the directory above. Utilized
226 only in cascading profiles.
229 Here we DO NOT define the default USE flags, but the so\-called auto\-USE
230 flags. This rather unknown portage feature activates a USE flag if a
231 specific package is installed and the flag was not explicitly
232 deactivated. This file contains the associations between USE flags and
233 packages that trigger the auto\-USE feature.
235 In other words, if we never put "sdl" or "\-sdl" into our USE, but we
236 have media\-libs/libsdl emerged, then portage automagically sticks "sdl"
241 \- comments begin with #
242 \- one USE flag per line with a list of DEPEND atom bases
247 # media\-libs/libsdl will activate "sdl"
248 sdl media\-libs/libsdl
249 # activate tcltk only if we have both
250 # dev\-lang/tcl and dev\-lang/tk
251 tcltk dev\-lang/tcl dev\-lang/tk
255 Some USE flags don't make sense on some archs (for example altivec on
256 non\-ppc or mmx on non\-x86), or haven't yet been tested. Here we list
260 In a cascading profile setup, you can remove USE flags in children
261 profiles which were added by parent profiles by prefixing the flag with
266 \- comments begin with #
267 \- one USE flag per line
271 This controls what packages will provide a virtual by default. For example,
272 if a package needs to send e\-mail, it will need virtual/mta. In the absence
273 of a package that provides virtual/mta (like qmail, sendmail, postfix, etc...),
274 portage will look here to see what package to use. In this case, Gentoo uses
275 net\-mail/ssmtp as the default (as defined in the virtuals file) because it's
276 the package that does the very bare minimum to send e\-mail.
280 \- comments begin with #
281 \- one virtual and DEPEND atom base pair per line
286 # use net\-mail/ssmtp as the default mta
287 virtual/mta net\-mail/ssmtp
288 # use app\-dicts/aspell\-en as the default dictionary
289 virtual/aspell\-dict app\-dicts/aspell\-en
297 If needed, this file can be used to set up a special environment for ebuilds,
298 different from the standard root environment. The syntax is the same as for
299 any other bash script.
302 A list of DEPEND atoms to mask. Useful if specific versions of packages do
303 not work well for you. For example, you swear by the Nvidia drivers, but only
304 versions earlier than 1.0.4496. No problem!
308 \- comments begin with #
309 \- one DEPEND atom per line
314 # mask out versions 1.0.4496 of the nvidia
316 >=media\-video/nvidia\-kernel\-1.0.4496
317 >=media\-video/nvidia\-glx\-1.0.4496
321 Just like package.mask above, except here you list packages you want to
322 unmask. Useful for overriding the global package.mask file (see
323 below). Note that this does not override packages that are masked via
327 Per\-package KEYWORDS. Useful for mixing unstable packages in with a normally
328 stable machine or vice versa. This will allow you to augment ACCEPT_KEYWORDS
329 for a single package.
332 \fINote:\fR There are two special KEYWORDS to help out here:
333 \fB*\fR Match any stable KEYWORD
334 \fB~*\fR Match any unstable KEYWORD
337 \- comments begin with #
338 \- one DEPEND atom per line followed by additional KEYWORDS
339 \- blank lines imply unstable host arch
342 # always use unstable libgd
343 media\-libs/libgd ~x86
344 # only use stable mplayer
345 media\-video/mplayer \-~x86
346 # always use unstable netcat
351 If you encounter the \fB-*\fR KEYWORD, this indicates that the package is known
352 to be broken on all systems which are not otherwise listed in KEYWORDS. For
353 example, a binary only package which is built for x86 will look like:
355 games-fps/quake3-demo-1.11.ebuild:KEYWORDS="-* x86"
357 If you wish to accept this package anyways, then add \fB-*\fR to your
358 package.keywords like this:
360 games-fps/quake3-demo -*
363 Per\-package USE flags. Useful for tracking local USE flags or for
364 enabling USE flags for certain packages only. Perhaps you develop GTK
365 and thus you want documentation for it, but you don't want
366 documentation for QT. Easy as pie my friend!
370 \- comments begin with #
371 \- one DEPEND atom per line with space-delimited USE flags
376 # turn on docs for GTK 2.x
377 =x11\-libs/gtk+\-2* doc
378 # disable mysql support for QT
383 Whenever portage encounters a mirror:// style URL it will look up the actual
384 hosts here. If the mirror set is not found here, it will check the global
385 mirrors file at /usr/portage/profiles/thirdpartymirrors. You may also set a
386 special mirror type called "local". This list of mirrors will be checked
387 before GENTOO_MIRRORS and will be used even if the package has
392 \- comments begin with #
393 \- mirror type followed by a list of hosts
398 # local private mirrors used only by my company
399 local ftp://192.168.0.3/mirrors/gentoo http://192.168.0.4/distfiles
401 # people in japan would want to use the japanese mirror first
402 sourceforge http://keihanna.dl.sourceforge.net/sourceforge
404 # people in tawain would want to use the local gnu mirror first
405 gnu ftp://ftp.nctu.edu.tw/UNIX/gnu/
409 A simple list of valid categories that may be used in /usr/portage,
410 PORTDIR_OVERLAY, and PKGDIR (see \fBmake.conf\fR(5)). This allows for custom
411 categories to be created.
415 \- one category per line
424 .BR /usr/portage/profiles/
425 Global Gentoo settings that are controlled by the developers. To override
426 these settings, you can use the files in \fB/etc/portage/\fR.
430 A list of all valid KEYWORDS. This does not include modifiers.
434 \- one KEYWORD per line
445 A simple list of valid categories that may be used in /usr/portage,
446 PORTDIR_OVERLAY, and PKGDIR (see \fBmake.conf\fR(5)).
450 \- one category per line
462 A list of all the packages which will be displayed when you run `emerge info`.
465 A list of all the variables which will be displayed when you run `emerge info`.
468 This contains a list of DEPEND atoms for packages that should not be installed
469 in any profile. Useful for adding the latest KDE betas and making sure no
470 one accidentally upgrades to them. Also useful for quickly masking specific
471 versions due to security issues. ALWAYS include a comment explaining WHY the
472 package has been masked and WHO is doing the masking.
476 \- comments begin with #
477 \- one DEPEND atom per line
482 # masked for security reasons
483 <sys\-libs/zlib\-1.1.4
484 # <caleb@gentoo.org> (10 Sep 2003)
486 =kde\-base/kde\-3.2.0_beta1
487 =kde\-base/kdeaccessibility\-3.2.0_beta1
491 List all the current stable and development profiles. If a profile is listed
492 here, then it will be checked by repoman. At the moment, only 1 profile is
493 allowed per stable/dev/KEYWORD; the last one found is the last one used.
497 \- comments begin with #
498 \- one profile list per line in format: arch dir status
499 \- arch must be listed in arch.list
500 \- dir is relative to profiles.desc
501 \- status must be 'stable' or 'dev'
506 alpha default-linux/alpha/2004.3 stable
507 m68k default-linux/m68k dev
508 x86 default-linux/x86/2004.3 stable
511 .BR thirdpartymirrors
512 Controls the mapping of mirror:// style URLs to actual lists of
513 mirrors. Keeps us from overloading a single server.
517 \- comments begin with #
518 \- mirror type followed by a list of hosts
523 sourceforge http://aleron.dl.sourceforge.net/sourceforge http://unc.dl.sourceforge.net/sourceforge
525 gentoo http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/distfiles
527 kernel http://www.kernel.org/pub http://www.us.kernel.org/pub
531 All global USE flags must be listed here with a description of what they do.
535 \- comments begin with #
536 \- use flag \- some description
541 3dfx \- Adds support for 3dfx video cards
542 acl \- Adds support for Access Control Lists
543 doc \- Adds extra documentation
547 All local USE flags must be listed here along with the package and a
552 \- comments begin with #
553 \- package:use flag \- description
556 app\-editors/nano:justify \- Toggles the justify option
557 dev\-libs/DirectFB:fusion \- Adds Multi Application support
558 games\-emulation/xmess:net \- Adds network support
562 .BR /var/lib/portage/
566 Every time you emerge a package, the package that you requested is
567 recorded here. Then when you run `emerge world \-up`, the list of
568 packages is read from this file. Note that this does not mean that the
569 packages that were installed as dependencies are listed here. For
570 example, if you run `emerge mod_php` and you do not have apache
571 already, then "dev\-php/mod_php" is recorded in the world file but
572 "net\-www/apache" is not. For more information, review \fBemerge\fR(1).
576 \- one DEPEND atom base per line
581 games\-misc/fortune\-mod\-gentoo\-dev
588 Marius Mauch <genone@gentoo.org>
589 Mike Frysinger <vapier@gentoo.org>
590 Drake Wyrm <wyrm@haell.com>
593 Please report bugs via http://bugs.gentoo.org/