3.6 Configuring through variables¶
- 3.6 Configuring through variables
- Portage configuration
- Build-specific options
- Configure and compiler options
- Merge options
- Configuration file protection
- Portage's protected locations
- Excluding directories
- Download options
- Server locations
- Fetch commands
- Rsync settings
- Gentoo configuration
- Branch selection
- Portage features
- Portage behaviour
- Resource management
- Output behaviour
Portage configuration¶
As noted previously, Portage is configurable through many variables which you should define in /etc/make.conf.
Build-specific options¶
Configure and compiler options¶
When Portage builds applications, it passes the contents of the following variables to the compiler and configure script:
CFLAGS
andCXXFLAGS
define the desired compiler flags for C and C++ compiling;CHOST
defines the build host information for the application's configure scriptMAKEOPTS
is passed to the make command and is usually set to define the amount of parallelism used during the compilation. More information about the make options can be found in the make man page.
The USE variable is also used during configure and compilations but has been explained in great detail in previous chapters.
Merge options¶
When Portage has merged a newer version of a certain software title, it will remove the obsoleted files of the older version from your system. Portage gives the user a 5 second delay before unmerging the older version. These 5 seconds are defined by the CLEAN_DELAY
variable.
Configuration file protection¶
Portage's protected locations¶
Portage overwrites files provided by newer versions of a software title if the files aren't stored in a protected location. These protected locations are defined by the CONFIG_PROTECT
variable. They are generally configuration file locations. The directory listing is space-delimited.
A file that would be written in such a protected location is renamed and the user is warned about the presence of a newer version of the (presumable) configuration file.
You can find out about the current CONFIG_PROTECT
setting from the emerge --info output:
emerge --info | grep 'CONFIG_PROTECT='
More information about Portage's configuration file protection is available with <<emerge>:
emerge --help config
Excluding directories¶
To unprotect certain subdirectories of protected locations you can use the CONFIG_PROTECT_MASK
variable.
Download options¶
Server locations¶
When the requested information or data is not available on your system, Portage will retrieve it from the Internet. The server locations for the various information and data channels are defined by the following variables:
GENTOO_MIRRORS
defines a list of server locations which contain source code (distfiles)PORTAGE_BINHOST
defines a particular server location containing prebuilt packages for your system
A third setting involves the location of the rsync server which you use when you update your Portage tree:
SYNC
defines the server Portage uses to fetch the Portage tree from
The GENTOO_MIRRORS
and SYNC
variables can be set automatically through the mirrorselect application. You need to enter emerge mirrorselect first before you can use it. For more information, see mirrorselect's online help:
mirrorselect --help
If your environment requires you to use a proxy server, you can use the HTTP_PROXY
, FTP_PROXY
and RSYNC_PROXY
variables to declare a proxy server.
Fetch commands¶
When Portage needs to fetch source code, it uses wget by default. You can change this through the FETCHCOMMAND
variable.
Portage is able to resume partially downloaded source code. It uses wget by default, but this can be altered through the RESUMECOMMAND
variable.
Make sure that your FETCHCOMMAND
and RESUMECOMMAND
stores the source code in the correct location. Inside the variables you should use \${URI}
and \${DISTDIR}
to point to the source code location and distfiles location respectively.
You can also define protocol-specific handlers with FETCHCOMMAND_HTTP
, FETCHCOMMAND_FTP
, RESUMECOMMAND_HTTP
, RESUMECOMMAND_FTP
, and so on.
Rsync settings¶
You cannot alter the rsync command used by Portage to update the Portage tree, but you can set some variables related to the rsync command:
RSYNC_EXCLUDEFROM
points to a file listing the packages and/or categories rsync should ignore during the update process;RSYNC_RETRIES
defines how many times rsync should try connecting to the mirror pointed to by theSYNC
variable before bailing out. This variable defaults to 3;RSYNC_TIMEOUT
defines the number of seconds an rsync connection can idle before rsync sees the connection as timed-out. This variable defaults to 180 but dialup users or individuals with slow computers might want to set this to 300 or higher.
Gentoo configuration¶
Branch selection¶
You can change your default branch with the ACCEPT_KEYWORDS
variable. It defaults to your architecture's stable branch. More information on Gentoo's branches can be found in the next chapter.
Portage features¶
You can activate certain Portage features through the FEATURES
variable. The Portage Features have been discussed in previous chapters, such as Portage features.
Portage behaviour¶
Resource management¶
With the PORTAGE_NICENESS
variable you can augment or reduce the nice value Portage runs with. The PORTAGE_NICENESS
value is added to the current nice value.
For more information about nice values, see the nice man page:
man nice
Output behaviour¶
The NOCOLOR
variable (defaults to "false") defines if Portage should disable the use of coloured output.