Remove outdated mention of --update in the --deep docs.
[portage.git] / man / emerge.1
1 .TH "EMERGE" "1" "Dec 2005" "Portage 2.1" "Portage"
2 .SH "NAME"
3 emerge \- Command\-line interface to the Portage system
4 .SH "SYNOPSIS"
5 .TP
6 .BR emerge
7 [\fIoptions\fR] [\fIaction\fR] [\fIebuild\fR | \fItbz2file\fR | \fIset\fR | \fIdependency\fR] ...
8 .TP
9 .BR emerge
10 \fB\-\-sync\fR | \fB\-\-info\fR | \fB\-\-version\fR
11 .TP
12 .BR emerge
13 \fB\-\-search\fR \fIsomestring\fR
14 .TP
15 .BR emerge
16 \fB\-\-help\fR [\fBsystem\fR | \fBconfig\fR | \fBsync\fR]
17 .SH "DESCRIPTION"
18 \fBemerge\fR is the definitive command\-line interface to the Portage
19 system.  It is primarily used for installing packages, and \fBemerge\fR
20 can automatically handle any dependencies that the desired package has.
21 \fBemerge\fR can also update the \fBportage tree\fR, making new and
22 updated packages available.  \fBemerge\fR gracefully handles updating
23 installed packages to newer releases as well.  It handles both source
24 and binary packages, and it can be used to create binary packages for
25 distribution.
26 .SH "EBUILDS, TBZ2S, SETS AND DEPENDENCIES"
27 \fBemerge\fR primarily installs packages.  You can specify
28 packages to install in one of four main ways: an \fIebuild\fR,
29 a \fItbz2file\fR, a \fIset\fR, or a \fIdependency\fR.
30 .LP
31 .TP
32 .BR ebuild
33 An \fIebuild\fR must be, at a minimum, a valid Portage
34 package directory name without a version or category, such as
35 \fBportage\fR or \fBpython\fR.
36 Both categories and version numbers may be used in addition, such
37 as \fBsys\-apps/portage\fR or \fB=python\-2.2.1\-r2\fR.
38 \fBemerge\fR
39 ignores a trailing slash so that filename completion can be used.
40 The \fIebuild\fR may also be an actual filename, such as
41 \fB/usr/portage/app\-admin/python/python\-2.2.1\-r2.ebuild\fR.
42 WARNING: The implementation of \fBemerge /path/to/ebuild\fR is broken and so 
43 this syntax shouldn't be used.
44 .TP
45 .BR tbz2file
46 A \fItbz2file\fR must be a valid .tbz2 created with \fBebuild
47 <package>\-<version>.ebuild package\fR or \fBemerge \-\-buildpkg 
48 [category/]<package>\fR or \fBquickpkg /var/db/pkg/<category>/<package>\fR.
49 .TP
50 .BR set
51 A \fIset\fR is a convenient shorthand for a large group of
52 packages.  Two sets are currently supported: \fBsystem\fR
53 and \fBworld\fR.  \fBsystem\fR refers to a set of packages
54 deemed necessary for your system to run properly.  \fBworld\fR
55 contains all the packages in \fBsystem\fR, plus any
56 other packages listed in \fB/var/lib/portage/world\fR.  [See
57 \fBFILES\fR below for more information.]  Note that a \fIset\fR
58 is generally used in conjunction with \fB\-\-update\fR.
59 .TP
60 .BR dependency
61 A \fIdependency\fR describes bounds on a package that you wish to install.  
62 \fISee portage(5) for the details on these 'atoms'.\fR  For example, 
63 \fB>=dev\-lang/python\-2.2.1\-r2\fR matches the latest available version of 
64 Python greater than or equal to 2.2.1\-r2.  Similarly, 
65 \fB<dev\-lang/python\-2.0\fR matches the latest available version of Python 
66 before 2.0.  Note that in many shells you will need to escape characters such 
67 as '<' and '='; use single\- or double\-quotes around the \fIdependency\fR 
68 to get around escaping problems.
69 .SH "ACTIONS"
70 .TP
71 .BR "No action"
72 If no action is specified, the action is to merge in the specified
73 packages, satisfying any dependencies that they may have.  The
74 arguments can be \fIebuilds\fR, \fItbz2s\fR, \fIsets\fR, or
75 \fIdependencies\fR.  \fBNote that you need to use the \-\-usepkg 
76 option if you want to install a tbz2\fR.  The packages are added
77 to the \fBworld\fR file at the end, so that they are considered for
78 later updating.  
79 .TP
80 .BR "\-\-clean " (\fB\-c\fR)
81 Cleans the system by removing packages that will not affect the
82 functionality of the system.  The arguments can be \fIebuilds\fR,
83 \fIsets\fR, or \fIdependencies\fR.  For example, \fBemerge
84 clean binutils\fR cleans out old versions of binutils;
85 \fBemerge \-\-clean net\-www/mozilla\-0.9.9\-r2\fR cleans out that
86 specific version of Mozilla.  This is generally safe to use.
87 \fBNote that\fR \-\-clean \fBdoes not remove unslotted packages.\fR
88 .TP
89 .BR "\-\-config "
90 Run package specific actions needed to be executed after the emerge process 
91 has completed.  This usually entails configuration file setup or other similar 
92 setups that the user may wish to run.
93 .TP
94 .BR \-\-depclean
95 Determines all packages installed on the system that have no 
96 explicit reason for being there.  \fBemerge\fR generates a list 
97 of packages which it expects to be installed by checking the 
98 \fBsystem\fR package list and the \fBworld\fR file.  It then 
99 compares that list to the list of packages which are actually 
100 installed; the differences are listed as unnecessary packages 
101 and then unmerged after a short timeout.  \fBWARNING: Removing some 
102 packages may cause packages which link to the removed package 
103 to stop working and complain about missing libraries.\fR 
104 Re\-emerge the complaining package to fix this issue.  Also see
105 \fB\-\-with\-bdeps\fR for behavior with respect to build time dependencies that
106 are not strictly required.
107 .TP
108 .BR "\-\-help " (\fB\-h\fR)
109 Displays help information for emerge.  Adding one of the additional
110 arguments listed above will give you more specific help information
111 on that subject.  The internal \fBemerge\fR help documentation is
112 updated more frequently than this man page; check it out if you
113 are having problems that this man page does not help resolve.
114 .TP
115 .BR \-\-info
116 Produces a list of information to include in bug reports which aids the 
117 developers when fixing the reported problem.  \fBPlease include this 
118 information when submitting a bug report.\fR  Expanded output can be obtained 
119 with the \fI\-\-verbose\fR option.
120 .TP
121 .BR \-\-metadata
122 Causes portage to process all the metacache files as is normally done on the 
123 tail end of an rsync update using \fBemerge \-\-sync\fR.  The processing 
124 creates the cache database that portage uses for pre\-parsed lookups of 
125 package data.
126 .TP
127 .BR "\-\-prune " (\fB\-P\fR)
128 \fBWARNING: This action can remove important packages!\fR  Tries to remove 
129 all but the last version installed.  Since the command currently does not 
130 handle multiple versions of the same package properly, beware!  This does not 
131 check dependencies, so it may also remove packages necessary for the proper 
132 operation of your system.  \fBUse\fR \-\-clean \fBinstead unless you really 
133 know what you're doing\fR.  Its arguments can be \fIebuilds\fR, 
134 \fIsets\fR, or \fIdependencies\fR \-\- see \fB\-\-clean\fR above for 
135 examples.  You have been warned!
136 .TP
137 .BR \-\-regen
138 Causes portage to check and update the dependency cache of all ebuilds in the 
139 portage tree.  The cache is used to speed up searches and the building of 
140 dependency trees.  This command is not recommended for rsync users as rsync 
141 updates the cache using server\-side caches.  If you do not know the 
142 differences between a 'rsync user' and some other user, then you are a 'rsync 
143 user' :).  Rsync users should simply run \fBemerge \-\-sync\fR to regenerate 
144 the cache.  After a portage update, rsync users may find it convenient to run 
145 \fBemerge \-\-metadata\fR to rebuild the cache as portage does at the end of 
146 a sync operation.
147 .TP
148 .BR "\-\-resume"
149 Resumes the last merge operation.  Please note that this operation
150 will only return an error on failure.  If there is nothing for portage
151 to do, then portage will exit with a message and a success condition.
152 .TP
153 .BR "\-\-search " (\fB\-s\fR)
154 Searches for matches of the supplied string in the portage tree.
155 By default emerge uses a case-insensitive simple search, but you can 
156 enable a regular expression search by prefixing the search string with %.
157 For example, \fBemerge \-\-search "%^kde"\fR searches for any package whose 
158 name starts with "kde"; \fBemerge \-\-search "%gcc$"\fR searches for any 
159 package that ends with "gcc"; \fBemerge \-\-search "office"\fR searches for 
160 any package that contains the word "office".  If you want to include the 
161 category into the search string, prepend an @: \fBemerge --search 
162 "%@^dev-java.*jdk"\fR. If you want to search the package descriptions as well, 
163 use the \fB\-\-searchdesc\fR action.
164 .TP
165 .BR "\-\-searchdesc " (\fB\-S\fR)
166 Matches the search string against the description field as well as
167 the package name.  \fBTake caution\fR as the descriptions are also
168 matched as regular expressions.
169 .TP
170 .BR \-\-sync
171 Initiates a portage tree update with one of the rsync.gentoo.org
172 mirrors.  \fBNote that any changes you have made to the portage
173 tree will be erased\fR.  Except for special circumstances, 
174 this uses \fBrsync\fR to do the update.  See \fBmake.conf\fR(5)'s 
175 description of PORTDIR_OVERLAY for a method to avoid deletions.
176 .TP
177 .BR "\-\-unmerge " (\fB\-C\fR)
178 \fBWARNING: This action can remove important packages!\fR Removes
179 all matching packages.  This does no checking of dependencies, so
180 it may remove packages necessary for the proper operation of your
181 system.  Its arguments can be \fIebuilds\fR, \fIsets\fR, or
182 \fIdependencies\fR \-\- see \fB\-\-clean\fR above for examples.
183 .TP
184 .BR "\-\-update " (\fB\-u\fR)
185 Updates packages to the best version available, which may not always be the 
186 highest version number due to masking for testing and development.  This will 
187 also update direct dependencies which may not be what you want.  In general, 
188 use this option only in combination with the world or system target.
189 .TP
190 .BR "\-\-version " (\fB\-V\fR)
191 Displays the version number of \fBemerge\fR.
192 .SH "OPTIONS"
193 .TP
194 .BR "\-\-alphabetical "
195 When displaying USE and other flag output, combines the enabled and
196 disabled lists into one list and sorts the whole list alphabetically.
197 .TP
198 .BR "\-\-ask " (\fB\-a\fR)
199 Before performing the merge, display what ebuilds and tbz2s will be installed, 
200 in the same format as when using \fB\-\-pretend\fR; then ask whether to 
201 continue with the merge or abort.  Using \fB\-\-ask\fR is more efficient than 
202 using \fB\-\-pretend\fR and then executing the same command without 
203 \fB\-\-pretend\fR, as dependencies will only need to be calculated once.
204 \fBWARNING: If the "Enter" key is pressed at the prompt (with no other input),
205 it is interpreted as acceptance of the first choice.  Note that the input
206 buffer is not cleared prior to the prompt, so an accidental press of the
207 "Enter" key at any time prior to the prompt will be interpreted as a choice!\fR
208 .TP
209 .BR "\-\-buildpkg " (\fB\-b\fR)
210 Tells emerge to build binary packages for all ebuilds processed in
211 addition to actually merging the packages.  Useful for maintainers
212 or if you administrate multiple Gentoo Linux systems (build once,
213 emerge tbz2s everywhere).  The package will be created in the
214 \fI${PKGDIR}/All\fR directory.  An alternative for already\-merged
215 packages is to use \fBquickpkg\fR which creates a tbz2 from the
216 live filesystem.
217 .TP
218 .BR "\-\-buildpkgonly " (\fB\-B\fR)
219 Creates binary packages for all ebuilds processed without actually
220 merging the packages.  This comes with the caveat that all build-time 
221 dependencies must already be emerged on the system.
222 .TP
223 .BR "\-\-changelog " (\fB\-l\fR)
224 Use this in conjunction with the \fB\-\-pretend\fR option.  This will
225 show the ChangeLog entries for all the packages that will be upgraded.
226 .TP
227 .BR "\-\-columns"
228 Used alongside \fB\-\-pretend\fR to cause the package name, new version, 
229 and old version to be displayed in an aligned format for easy cut\-n\-paste.
230 .TP
231 .BR "\-\-debug " (\fB\-d\fR)
232 Tells emerge to run the emerge command in \fB\-\-debug\fR mode.  In this
233 mode the bash build environment will run with the \-x option,
234 causing it to output verbose debugging information to stdout.
235 \fB\-\-debug\fR is great for finding bash syntax errors.
236 .TP
237 .BR "\-\-deep " (\fB\-D\fR)
238 This flag forces
239 \fBemerge\fR to consider the entire dependency tree of packages,
240 instead of checking only the immediate dependencies of the packages.
241 As an example, this catches updates in libraries that are not directly
242 listed in the dependencies of a package.  Also see \fB\-\-with\-bdeps\fR for
243 behavior with respect to build time dependencies that are not strictly
244 required.
245 .TP
246 .BR "\-\-emptytree " (\fB\-e\fR)
247 Reinstalls all world packages and their dependencies to the current USE 
248 specifications while differing from the installed set of packages as 
249 little as possible.  You should run with \fB\-\-pretend\fR first to make 
250 sure the result is what you expect.
251 .TP
252 .BR "\-\-fetchonly " (\fB\-f\fR)
253 Instead of doing any package building, just perform fetches for all
254 packages (the main package as well as all dependencies).
255 .TP
256 .BR "\-\-fetch\-all\-uri " (\fB\-F\fR)
257 Instead of doing any package building, just perform fetches for all
258 packages (the main package as well as all dependencies), grabbing all potential
259 files.
260 .TP
261 .BR "\-\-getbinpkg " (\fB\-g\fR)
262 Using the server and location defined in \fIPORTAGE_BINHOST\fR (see 
263 \fBmake.conf\fR(5)), portage will download the information from each binary 
264 package found and it will use that information to help build the dependency 
265 list.  This option implies \fB\-k\fR.  (Use \fB\-gK\fR for binary\-only 
266 merging.)
267 .TP
268 .BR "\-\-getbinpkgonly " (\fB\-G\fR)
269 This option is identical to \fB\-g\fR, as above, except it will not use ANY 
270 information from the local machine.  All binaries will be downloaded from the 
271 remote server without consulting packages existing in the local packages 
272 directory.
273 .TP
274 .BR "\-\-ignore-default-opts"
275 Causes \fIEMERGE_DEFAULT_OPTS\fR (see \fBmake.conf\fR(5)) to be ignored.
276 .TP
277 .BR "\-\-newuse " (\fB\-N\fR)
278 Tells emerge to include installed packages where USE flags have changed since 
279 compilation.  An asterisk marks when a USE flag has changed since the package 
280 was compiled.
281 .TP
282 .BR "\-\-nocolor "
283 Suppresses all coloring of portage's output.
284 .TP
285 .BR "\-\-noconfmem"
286 Causes portage to disregard merge records indicating that a config file
287 inside of a \fBCONFIG_PROTECT\fR directory has been merged already.  Portage
288 will normally merge those files only once to prevent the user from
289 dealing with the same config multiple times.  This flag will cause the
290 file to always be merged.
291 .TP
292 .BR "\-\-nodeps " (\fB\-O\fR)
293 Merges specified packages without merging any dependencies.  Note that
294 the build may fail if the dependencies aren't satisfied.
295 .TP
296 .BR "\-\-noreplace " (\fB\-n\fR)
297 Skips the packages specified on the command\-line that have already
298 been installed.  Without this option, any packages, ebuilds, or deps
299 you specify on the command\-line *will* cause Portage to remerge
300 the package, even if it is already installed.  Note that Portage will
301 not remerge dependencies by default.
302 .TP
303 .BR "\-\-nospinner"
304 Disables the spinner for the session.  The spinner is active when the
305 terminal device is determined to be a TTY.  This flag disables it regardless.
306 .TP
307 .BR "\-\-oneshot " (\fB\-1\fR)
308 Emerge as normal, but do not add the packages to the world profile
309 for later updating.
310 .TP
311 .BR "\-\-onlydeps " (\fB\-o\fR)
312 Only merge (or pretend to merge) the dependencies of the packages
313 specified, not the packages themselves.
314 .TP
315 .BR "\-\-pretend " (\fB\-p\fR)
316 Instead of actually performing the merge, simply display what *would*
317 have been installed if \fB\-\-pretend\fR weren't used.  Using \fB\-\-pretend\fR
318 is strongly recommended before installing an unfamiliar package.  In
319 the printout:
320 .br 
321  
322 .br 
323 \fIN\fR = new (not yet installed)
324 .br 
325 \fIS\fR = new SLOT installation (side-by-side versions) 
326 .br 
327 \fIU\fR = updating (to another version)
328 .br 
329 \fID\fR = downgrading (best version seems lower)
330 .br 
331 \fIR\fR = replacing (remerging same version))
332 .br 
333 \fIF\fR = fetch restricted (must be manually downloaded)
334 .br 
335 \fIf\fR = fetch restricted (already downloaded)
336 .br 
337 \fIB\fR = blocked by an already installed package
338 .TP
339 .BR "\-\-quiet " (\fB\-q\fR)
340 Results may vary, but the general outcome is a reduced or condensed
341 output from portage's displays.
342 .TP
343 .BR "\-\-skipfirst"
344 This option is only valid when used with \fB\-\-resume\fR.  It removes the 
345 first package in the resume list so that a merge may continue in the presence 
346 of an uncorrectable or inconsequential error.  This should only be used in 
347 cases where skipping the package will not result in failed dependencies.
348 .TP
349 .BR "\-\-tree " (\fB\-t\fR)
350 Shows the dependency tree for the given target by indenting dependencies.
351 This is only really useful in combination with \fB\-\-emptytree\fR or 
352 \fB\-\-update\fR and \fB\-\-deep\fR.
353 .TP
354 .BR "\-\-usepkg " (\fB\-k\fR) 
355 Tells emerge to use binary packages (from $PKGDIR) if they are available, thus 
356 possibly avoiding some time\-consuming compiles.  This option is useful for CD 
357 installs; you can export PKGDIR=/mnt/cdrom/packages and then use this option to 
358 have emerge "pull" binary packages from the CD in order to satisfy dependencies.
359 .TP
360 .BR "\-\-usepkgonly " (\fB\-K\fR)
361 Tells emerge to only use binary packages (from $PKGDIR).  All the binary 
362 packages must be available at the time of dependency calculation or emerge 
363 will simply abort.  Portage does not use $PORTDIR when calculating dependency 
364 information so all masking information is ignored.
365 .TP
366 .BR "\-\-verbose " (\fB\-v\fR)
367 Tell emerge to run in verbose mode.  Currently this flag causes emerge to print 
368 out GNU info errors, if any, and to show the USE flags that will be used for 
369 each package when pretending. The following symbols are affixed to USE flags
370 in order to indicate their status:
371 .br
372
373 .br
374 \fI- prefix\fR     = not enabled (either disabled or removed)
375 .br
376 \fI* suffix\fR     = transition to or from the enabled state
377 .br
378 \fI% suffix\fR     = newly added or removed
379 .br
380 \fI() circumfix\fR = forced, masked, or removed
381 .TP
382 .BR "\-\-with\-bdeps < y | n >"
383 In dependency calculations, pull in build time dependencies that are not
384 strictly required.   This defaults to \'n\' for installation actions and
385 \'y\' for the \-\-depclean action.  This setting can be added to
386 EMERGE_DEFAULT_OPTS (see make.conf(5)) and later overridden via the command
387 line.
388 .SH "ENVIRONMENT OPTIONS"
389 .TP
390 \fBROOT\fR = \fI[path]\fR
391 Use \fBROOT\fR to specify the target root filesystem to be used for
392 merging packages or ebuilds.
393 .br
394 Defaults to /.
395 .TP
396 \fBPORTAGE_CONFIGROOT\fR = \fI[path]\fR
397 Use \fBPORTAGE_CONFIGROOT\fR to specify the location for various portage 
398 configuration files
399 (see \fBFILES\fR for a detailed list).
400 .br
401 Defaults to /.
402 .SH "OUTPUT"
403 When utilizing \fBemerge\fR with the \fB\-\-pretend\fR and \fB\-\-verbose\fR 
404 flags, the output may be a little hard to understand at first.  This section
405 explains the abbreviations.
406 .TP
407 .B [blocks B     ] app\-text/dos2unix (from pkg app\-text/hd2u\-0.8.0)
408 Dos2unix is Blocking hd2u from being emerged.  Blockers are defined when
409 two packages will clobber each others files, or otherwise cause some form
410 of breakage in your system.  However, blockers usually do not need to be
411 simultaneously emerged because they usually provide the same functionality.
412 .TP
413 .B [ebuild  N    ] app\-games/qstat\-25c
414 Qstat is New to your system, and will be emerged for the first time.
415 .TP
416 .B [ebuild  NS   ] dev-libs/glib-2.4.7
417 You already have a version of glib installed, but a 'new' version in 
418 a different SLOT is available.
419 .TP
420 .B [ebuild   R   ] sys\-apps/sed\-4.0.5
421 Sed 4.0.5 has already been emerged, but if you run the command, then 
422 portage will Re\-emerge the specified package (sed in this case).
423 .TP
424 .B [ebuild    F  ] media\-video/realplayer\-8\-r6
425 The realplayer package requires that you Fetch the sources manually.  
426 When you attempt to emerge the package, if the sources are not found, 
427 then portage will halt and you will be provided with instructions on how 
428 to download the required files.
429 .TP
430 .B [ebuild    f  ] media\-video/realplayer\-8\-r6
431 The realplayer package's files are already downloaded.
432 .TP
433 .B [ebuild     U ] net\-fs/samba\-2.2.8_pre1 [2.2.7a]
434 Samba 2.2.7a has already been emerged and can be Updated to version 
435 2.2.8_pre1.
436 .TP
437 .B [ebuild     UD] media\-libs/libgd\-1.8.4 [2.0.11]
438 Libgd 2.0.11 is already emerged, but if you run the command, then 
439 portage will Downgrade to version 1.8.4 for you.
440 .br 
441 This may occur if a newer version of a package has been masked because it is
442 broken or it creates a security risk on your system and a fix has not been
443 released yet.
444 .br 
445 Another reason this may occur is if a package you are trying to emerge requires
446 an older version of a package in order to emerge successfully.  In this case,
447 libgd 2.x is incompatible with libgd 1.x.  This means that packages that were
448 created with libgd 1.x will not compile with 2.x and must downgrade libgd first
449 before they can emerge.
450 .TP
451 .B [ebuild     U ] sys\-devel/distcc\-2.16 [2.13\-r1] USE="ipv6* \-gtk \-qt%"
452 Here we see that the make.conf variable \fBUSE\fR affects how this package is
453 built.  In this example, ipv6 optional support is enabled and both gtk and qt
454 support are disabled.  The asterisk following ipv6 indicates that ipv6 support
455 was disabled the last time this packages was installed.  The percent sign
456 following qt indicates that the qt option has been added to the package since
457 it was last installed.
458 .br
459 \fB*Note:\fR Flags that haven't changed since the last install are only
460 displayed when you use the \fB\-\-pretend\fR and \fB\-\-verbose\fR options.
461 Using the \fB\-\-quiet\fR option will prevent all information from being
462 displayed.
463 .SH "NOTES"
464 You should almost always precede any package install or update attempt with a 
465 \fB\-\-pretend\fR install or update.  This lets you see how much will be 
466 done, and shows you any blocking packages that you will have to rectify.  
467 This goes doubly so for the \fBsystem\fR and \fBworld\fR sets, which can 
468 update a large number of packages if the portage tree has been particularly 
469 active.
470 .LP
471 You also want to typically use \fB\-\-update\fR, which ignores packages that 
472 are already fully updated but upgrades those that are not.
473 .LP
474 When you install a package with uninstalled dependencies and do
475 not explicitly state those dependencies in the list of parameters,
476 they will not be added to the world file.  If you want them to be
477 detected for world updates, make sure to explicitly list them as
478 parameters to \fBemerge\fR.
479 .LP
480 \fBUSE variables\fR may be specified on the command line to
481 override those specified in the default locations, letting you
482 avoid using some dependencies you may not want to have.  \fBUSE
483 flags specified on the command line are NOT remembered\fR.  For
484 example, \fBUSE="\-X \-gnome" emerge mc\fR will emerge mc with
485 those USE settings.  If you want those USE settings to be more 
486 permanent, you can put them in /etc/portage/package.use instead.
487 .LP
488 If \fBemerge \-\-update system\fR or \fBemerge \-\-update world\fR
489 fails with an error message, it may be that an ebuild uses some
490 newer feature not present in this version of \fBemerge\fR.  You
491 can use \fBemerge \-\-update portage\fR to upgrade to the lastest
492 version, which should support any necessary new features.
493 .SH "MASKED PACKAGES"
494 \fINOTE: Please use caution when using development packages.  Problems
495 and bugs resulting from misusing masked packages drains Gentoo
496 developer time.  Please be sure you are capable of handling any problems
497 that may ensue.\fR
498 .LP
499 Masks in \fBportage\fR provide three primary functions: they allow a
500 testing period where the packages can be used in live machines; they
501 prevent the use of a package when it will fail; and they mask existing
502 packages that are broken or could pose a security risk.  Masking can be
503 done by two methods: \fBpackage.mask\fR and \fBKEYWORDS\fR.  Read below
504 to find out how to unmask in either case.  Also note that if you give 
505 \fBemerge\fR an ebuild, then all forms of masking will be ignored and
506 \fBemerge\fR will attempt to emerge the package.
507 .TP
508 .BR package.mask
509 The \fBpackage.mask\fR file primarily blocks the use of packages that cause
510 problems or are known to have issues on different systems.  It resides in
511 \fI/usr/portage/profiles\fR.
512 .TP
513 .BR KEYWORDS
514 The \fBKEYWORDS\fR variable in an \fBebuild\fR file is also used for masking 
515 a package still in testing.  There are architecture\-specific keywords for 
516 each package that let \fBportage\fR know which systems are compatible with 
517 the package.  Packages which compile on an architecture, but have not been 
518 proven to be "stable", are masked with a tilde (\fB~\fR) in front of the 
519 architecture name.  \fBemerge\fR examines the \fBACCEPT_KEYWORDS\fR environment 
520 variable to allow or disallow the emerging of a package masked by 
521 \fBKEYWORDS\fR.  To inform \fBemerge\fR that it should build these 'testing' 
522 versions of packages, you should update your 
523 \fI/etc/portage/package.keywords\fR file to list the packages you want the 
524 'testing' version.  See \fBportage\fR(5) for more information.
525 .SH "REPORTING BUGS"
526 Please report any bugs you encounter through our website:
527 .LP
528 \fBhttp://bugs.gentoo.org/\fR
529 .LP
530 Please include the output of \fBemerge \-\-info\fR when you submit your
531 bug report.
532 .SH "AUTHORS"
533 .nf
534 Daniel Robbins <drobbins@gentoo.org>
535 Geert Bevin <gbevin@gentoo.org>
536 Achim Gottinger <achim@gentoo.org>
537 Nicholas Jones <carpaski@gentoo.org>
538 Phil Bordelon <phil@thenexusproject.org>
539 Mike Frysinger <vapier@gentoo.org>
540 Marius Mauch <genone@gentoo.org>
541 .fi
542 .SH "FILES"
543 .TP
544 \fB/var/lib/portage/world\fR 
545 Contains a list of all user\-specified packages.  You can safely edit
546 this file, adding packages that you want to be considered in \fBworld\fR
547 set updates and removing those that you do not want to be considered.
548 .TP
549 \fB/etc/make.conf\fR 
550 Contains variables for the build process, overriding those in
551 \fBmake.globals\fR.  \fBYou should edit this file instead of the ones
552 listed below\fR.
553 .TP
554 .B /etc/dispatch\-conf.conf
555 Contains settings to handle automatic updates/backups of configuration 
556 files.
557 .TP
558 \fB/etc/make.profile/make.defaults\fR
559 Contains profile\-specific variables for the build process.  \fBDo not
560 edit this file\fR.
561 .TP
562 \fB/etc/make.profile/use.defaults\fR
563 Contains a list of packages which, if installed, cause the respective USE 
564 flag to be enabled by default.  \fBDo not edit this file\fR.
565 .TP
566 \fB/usr/portage/profiles/use.desc\fR 
567 Contains the master list of USE flags with descriptions of their
568 functions.  \fBDo not edit this file\fR.
569 .TP
570 \fB/etc/make.profile/virtuals\fR 
571 Contains a list of default packages used to resolve virtual dependencies.
572 \fBDo not edit this file\fR.
573 .TP
574 \fB/etc/make.profile/packages\fR
575 Contains a list of packages used for the base system.  The \fBsystem\fR
576 and \fBworld\fR sets consult this file.  \fBDo not edit this file\fR.
577 .TP
578 \fB/etc/make.globals\fR 
579 Contains the default variables for the build process.  \fBDo not edit
580 this file\fR.
581 .SH "SEE ALSO"
582 .BR "emerge \-\-help",
583 .BR ebuild (1),
584 .BR ebuild (5),
585 .BR make.conf (5),
586 .BR portage (5)
587 .LP
588 A number of helper applications reside in \fI/usr/lib/portage/bin\fR.
589 .LP
590 The \fBapp\-portage/gentoolkit\fR package contains useful scripts such as 
591 \fBequery\fR (a package query tool).