/etc/portage/make.conf

From Gentoo Wiki
< /etc‎ | portage
Jump to:navigation Jump to:search
This page is a translated version of the page /etc/portage/make.conf and the translation is 55% complete.

/etc/portage/make.conf, que anteriormente se encontraba en /etc/make.conf, es el archivo de configuración principal del entorno Portage a nivel global. El directorio /etc/portage contiene la mayoría del resto de archivos de configuración de Portage.

Los ajustes en make.conf se aplicarán en todo paquete que sea compilado a través de emerge. Estos ajustes controlan muchos elementos de la funcionalidad de Portage, como los ajustes USE globales, las opciones de idioma (L10N), los mirrors de Portage, entre otros.

Una versión muy básica del archivo es instalada durante la extracción del stage3, y una configuración de ejemplo puede encontrarse en /usr/share/portage/config/make.conf.example.

Como muchos otros archivos de configuración de Portage, make.conf puede ser un directorio, y sus contenidos serán unidos como si fueran un solo archivo.

See also
El Manual cubre la utilización de make.conf, concretamente en las secciones ajustes USE, funcionalidades de Portage y variables. Vea man make.conf para documentación más exhaustiva.

Prioridad

La configuración final de Portage no se basa únicamente en make.conf. Los ajustes globales definidos en este archivo pueden ser definidos refinados (o redefinidos) paquete a paquete en los archivos dentro de /etc/portage/package.use/ igual que a través de variables del entorno. Los ajustes predeterminados gestionados por la distribución están disponibles también (en parte por los ajustes predeterminados del paquete de Portage, y en parte por el perfil de Gentoo que se esté usando).

Nota
Si bien Portage sigue ofreciendo soporte al antiguo lugar del fichero /etc/make.conf, se recomienda usar /etc/portage/make.conf en su lugar. Cuando ambos archivos existen a la vez, los ajustes en /etc/portage/make.conf tendrán mayor prioridad que aquellos presentes en /etc/make.conf.

Variables

Existen muchas variables personalizables en make.conf. Solo las más comúnmente usadas se explicarán en detalle en este artículo, junto con un ejemplo y un enlace a un artículo más detallado (si este existe). Para más información y una lista completa de variables, consulta la entrada de la man page de make.conf ejecutando:

user $man make.conf

La mayoría de variables son opcionales y pueden tomar varias líneas, pero no deben aparecer más de una vez.

Nota
Configuraciones distintas requerirán ajustar variables distintas. No trate los siguientes ejemplos como una lista definitiva o un conjunto mínimo de requisitos; ajuste únicamente las variables necesarias.

CHOST

La variable CHOST es utiliza en el paso de configuración de ebuilds para determinar el anfitrión de construcción de paquetes del sistema (o build-host).

Advertencia
Los perfiles de Portage ya configuran el valor CHOST apropiado y actualizarlo requiere altos conocimientos y experiencia en cadenas de construcción.
Nota
A partir de la versión de perfil 23.0, se recomienda no listar CHOST en el archivo make.conf.[1]
See also
Vea el artículo sobre CHOST para más información.

CFLAGS y CXXFLAGS

Las variables CFLAGS y CXXFLAGS definen los ajustes de construcción y compilación que serán utilizados para todos los despliegues de paquetes (salvo ciertas excepciones, donde se filtran algunos ajustes para paquetes donde se sabe que provocan problemas). La variable CFLAGS es para aplicaciones basadas en C, mientra que CXXFLAGS es para apliaciones basadas en C++. La mayoría de usuarios/as dejarán el contenido de ambas igual.

ARCHIVO /etc/portage/make.confConfiguración segura y común para CFLAGS y CXXFLAGS
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
See also
Para más información, acuda a los artículos optimización de GCC, CFLAGS seguras, y CFLAGS y CXXFLAGS del Manual Gentoo. Vea también la sección preguntas frecuentes relevante.

CONFIG_PROTECT


The CONFIG_PROTECT variable contains a space-delimited list of files and/or directories that Portage will protect from automatic modification. Proposed changes to protected configuration locations will require manual merge(s) from the system administrator (see dispatch-conf or similar merge tools).

A current list of presently protected locations can be displayed with portageq:

user $portageq envvar CONFIG_PROTECT
/etc /usr/share/config /usr/share/gnupg/qualified.txt

Using portageq is a short hand alternative to running a regular expression search on verbose, informational output from the emerge command:

user $emerge --verbose --info | grep -E '^CONFIG_PROTECT='
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

Files or subdirectories defined within the CONFIG_PROTECT can be excluded from protection through the CONFIG_PROTECT_MASK variable. Masking is useful when a parent directory should be protected, but a certain child directory beneath it.

The variable has a sane default setting handled by the Portage installation and the users' Gentoo profile. It can be extended through the system environment (which is often used by applications that update the variable through their /etc/env.d file) and the users' /etc/portage/make.conf setting.

ARCHIVO /etc/portage/make.confExample CONFIG_PROTECT definitions
CONFIG_PROTECT="/var/bind"

See also the Environment variables chapter in the Gentoo Handbook.


FEATURES

The FEATURES variable contains a list of Portage features that the user wants enabled on the system, effectively influencing Portage's behavior. It is set by default via /usr/share/portage/config/make.globals, but can be easily updated through /etc/portage/make.conf. Since this is an incremental variable, FEATURES values can be added without directly overriding the ones implemented through the Gentoo profile.

ARCHIVO /etc/portage/make.confAdding keepwork to FEATURES in Portage
FEATURES="keepwork"

For more information, please see Portage features in the Gentoo Handbook and the FEATURES article. For a complete list of available features, see man 5 make.conf.

See also
Vea el artículo FEATURES para más información.

GENTOO_MIRRORS

See also
Vea el artículo sobre GENTOO_MIRRORS.

MAKEOPTS

La variable MAKEOPTS se usa para especificar los argumentos que usará make cuando se compilen paquetes desde su código fuente.

ARCHIVO /etc/portage/make.confAjustes recomendados para un procesador de dos núcleos con Hyper-Threading activado con 8GB de RAM
MAKEOPTS="-j4"
See also
Vea el artículo MAKEOPTS para más información.
Nota
Lea sobre la variable EMERGE_DEFAULT_OPTS, ya que esta también influye en el comportamiento al compilar y construir paquetes.

EMERGE_DEFAULT_OPTS

EMERGE_DEFAULT_OPTS es una variable para Portage que define entradas que serán agregadas a la línea de comando emerge.

EMERGE_DEFAULT_OPTS es utilizado comúnmente para permitir operaciones simultaneas de emerge por medio de las opciones --jobs N y --load-average X.Y, que le indican a Portage cuantas compilaciones de paquetes se pueden hacer de manera simultanea y hasta que carga del sistema (promedio de carga) se puede utilizar el paralelismo.

</noinclude>

Usos comunes

Trabajos paralelos

Con --jobs N (abreviado: -jN), emerge ejecuta N trabajos simultáneos (sin argumento, -j va a inundar al procesador con tantos trabajos como sean posibles, no se recomienda). Un valor típico para N sería igual al número de núcleos del procesador pero no más procesos que RAM/2GB.

<onlyinclude>Por ejemplo, para correr tres trabajos de compilación simultaneos:

ARCHIVO /etc/portage/make.confHabilitando 3 compilaciones de paquetes paralelas
EMERGE_DEFAULT_OPTS="--jobs 3"

Para más información vea el siguiente EMERGE_DEFAULT_OPTS articulo.

PORTAGE_SCHEDULING_POLICY

See also
Vea el artículo Portage niceness.

PORTAGE_TMPDIR

La variable PORTAGE_TMPDIR define la ruta donde se almacenarán los archivos temporales que usará Portage. El valor predeterminado es /var/tmp, por lo que la ruta de construcción será /var/tmp/portage, la de los datos relacionados con el soporte de Portage de ccache será /var/tmp/ccache, etc.

ARCHIVO /etc/portage/make.confRuta predeterminada para PORTAGE_TMPDIR
PORTAGE_TMPDIR="/var/tmp"

En algunos sistemas /var/tmp/ quizá se monte usando la opción noexec. En cuyo caso, el siguiente error será mostrado por emerge a la hora de construir paquetes:

user $emerge --ask package
Can not execute files in /var/tmp/portage
Likely cause is that you've mounted it with one of the
following mount options: 'noexec', 'user', 'users'
 
Please make sure that portage can execute files in this directory.

Si esto es así, y eliminar la opción en cuestión en /etc/fstab no es posible, la ruta de PORTAGE_TMPDIR tendrá que ser un directorio distinto.

Si hay suficiente memoria, construir paquetes puede ser acelerado si se monta PORTAGE_TMPDIR en RAM. Vea el artículo sobre el TMPDIR en tmpfs para más detalles.

DISTDIR

La variable DISTDIR define la localización en la que Portage almacenará los archivos de código fuente que se ha descargado Su valor por defecto es /var/cache/distfiles]] en las instalaciones nuevas. Anteriormente el valor por defecto era ${PORTDIR}/distfiles que se resolvía a /usr/portage/distfiles por defecto.

Los usuarios pueden dar valor a la variable DISTDIR en /etc/portage/make.conf.

Advertencia
Beware where you place your DISTDIR! Only trusted users should be granted write access to this location.


File integrity check and unpacking is a non-atomic operation, allowing for an attack where a file is swapped in between, possibly leading to compromise the system.
ARCHIVO /etc/portage/make.confUtilizar una localización DISTDIR diferente
DISTDIR=/var/gentoo/distfiles

Para más información, echar un vistazo al artículo sobre DISTDIR.

PKGDIR

USE

La variable USE permite la configuración a nivel global de desactivación o activación de ajustes USE. Esta variable es una lista separada por espacios y puede tomar una o más líneas.

ARCHIVO /etc/portage/make.confEjemplo de ajustes USE gloables
USE="-kde -qt5 ldap"
See also
Vea el artículo ajustes USE para una explicación completa. Lea sobre el control por paquete de los ajustes USE y el archivo (o directorio) /etc/portage/package.use para ver información sobre la configuración de ajustes USE individual por paquete.
Nota
Considere siempre si merece la pena configurar un ajuste USE globalmente y qué implicaciones tendrá en el sistema, o si, en su defecto, es preferible configurarla de manera individual en uno o varios paquetres.
Consejo
Un ajuste USE puede ser configurado temporalmente en la línea de comandos para comprobar qué efectos tendrá antes de escribir los cambios en el archivo world: USE="[ajuste USE a probar]" emerge --pretend --verbose --update --deep --newuse world

ACCEPT_LICENSE

La variable ACCEPT_LICENSE le dirá a Portage qué licencias de software están permitidas. Los paquetes que tengan asignada una licencia no aceptada no pueden ser instalados en el sistema.

ARCHIVO /etc/portage/make.confPara aceptar todas las licencias en todos los paquetes
ACCEPT_LICENSE="*"

La forma preferible de aceptar todas las licencias es configurar -@EULA, la cual permite a los/as usuarios/as revisar los términos del software privativo.

ARCHIVO /etc/portage/make.confPara aceptar todas las licencias excepto las privativas
ACCEPT_LICENSE="* -@EULA"
ARCHIVO /etc/portage/make.confPara únicamente aceptar software libre
ACCEPT_LICENSE="-* @FREE"

USE_EXPAND

Importante
In the past USE_EXPAND flags were set in /etc/portage/make.conf but this can lead to ordering issues with Portage. Because of this, this article now uses the preferred method /etc/portage/package.use.

La variable USE_EXPAND es una lista determinada en profiles/base/make.defaults desde Portage 2.0.51.20.[2]

CPU_FLAGS_*

See also
Vea el artículo CPU_FLAGS_* article para más información.

The CPU_FLAGS_* variables inform Portage about the CPU flags (features) permitted by the CPU. This information is used to optimize package builds specifically for the targeted features. The currently supported variables are CPU_FLAGS_X86 (for amd64 and x86 architectures), CPU_FLAGS_ARM (for arm and arm64 architectures), and CPU_FLAGS_PPC (for ppc and ppc64 architectures).

The cpuid2cpuflags utility (found in the app-portage/cpuid2cpuflags package) can be used to query a complete listing of CPU flags supported by the system's processor. After emerging the package, issue:

user $cpuid2cpuflags
CPU_FLAGS_X86: aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3

INPUT_DEVICES

See the make.conf section of the Xorg/Guide article and the possible values.

LINGUAS

ARCHIVO /etc/portage/package.use/00local
*/*  LINGUAS: de pt_BR en en_US en_GB

L10N

ARCHIVO /etc/portage/package.use/00local
*/*  L10N: de pt-BR en en-US en-GB
Nota
While common two letter language codes (like de or fr) are identical in LINGUAS and L10N, more complex entries have a different syntax because L10N uses IETF language tags (aka BCP 47). For example, pt_BR and sr@latin in LINGUAS become pt-BR and sr-Latn in L10N, respectively.

VIDEO_CARDS

Advertencia
This method is deprecated due to bug #922307, for the correct way to set this please use Handbook:AMD64/Installation/Base

For possible values of this USE_EXPAND variable see VIDEO_CARDS.

Machine Discrete video card VIDEO_CARDS
Intel x86 None See Intel#Feature support
x86/ARM Nvidia nvidia
Any Nvidia except Maxwell, Pascal and Volta nouveau
Any AMD since Sea Islands amdgpu radeonsi
Any ATI and older AMD See radeon#Feature support
Any Intel intel
Raspberry Pi N/A vc4
QEMU/KVM Any virgl
WSL Any d3d12

From the common combinations of machines and video cards, substitute the name of the driver(s) to be used.

Appropriate VIDEO_CARDS value(s) pull in the correct driver(s).

After changing VIDEO_CARDS values remember to update the system using the following command so the changes take effect:

ARCHIVO /etc/portage/package.use/00video
*/* VIDEO_CARDS: -* intel nouveau radeon radeonsi
root #emerge --getbinpkg --ask --changed-use --deep @world

Omit --getbinpkg to not use the configured binary package host.

For the average user, if a graphical desktop environment is to be used this variable should be explicitly defined. For further information see the Xorg Guide make.conf section.

For more details see the AMDGPU, Intel, Nouveau, or NVIDIA articles.

See also

External resources

References