/etc/portage/make.conf
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
/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.
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).
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.
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 se utiliza en el paso de configuración de ebuilds para determinar el anfitrión de construcción de paquetes del sistema (o build-host).
Los perfiles de Portage ya configuran el valor CHOST apropiado y actualizarlo requiere altos conocimientos y experiencia en cadenas de construcción.
A partir de la versión de perfil 23.0, se recomienda no listar CHOST en el archivo make.conf.[1]
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.
/etc/portage/make.conf
Configuración segura y común para CFLAGS y CXXFLAGSCFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
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.
/etc/portage/make.conf
Example CONFIG_PROTECT definitionsCONFIG_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.
/etc/portage/make.conf
Adding keepwork to FEATURES in PortageFEATURES="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.
Vea el artículo FEATURES para más información.
GENTOO_MIRRORS
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.
/etc/portage/make.conf
Ajustes recomendados para un procesador de dos núcleos con Hyper-Threading activado con 8GB de RAMMAKEOPTS="-j4"
Vea el artículo MAKEOPTS para más información.
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:
/etc/portage/make.conf
Habilitando 3 compilaciones de paquetes paralelasEMERGE_DEFAULT_OPTS="--jobs 3"
Para más información vea el siguiente EMERGE_DEFAULT_OPTS articulo.
PORTAGE_SCHEDULING_POLICY
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.
/etc/portage/make.conf
Ruta predeterminada para PORTAGE_TMPDIRPORTAGE_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.
Beware where you place your DISTDIR! Only trusted users should be granted write access to this location.
/etc/portage/make.conf
Utilizar una localización DISTDIR diferenteDISTDIR=/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.
USE="-kde -qt5 ldap"
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.
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.
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.
ACCEPT_LICENSE="*"
/etc/portage/make.conf
Para aceptar todas las licencias excepto las privativasACCEPT_LICENSE="* -@EULA"
/etc/portage/make.conf
Para únicamente aceptar software libreACCEPT_LICENSE="-* @FREE"
USE_EXPAND
En el pasado, los ajustes USE_EXPAND se colocaban en /etc/portage/make.conf, pero esto puede llevar a problemas de orden con Portage. Por esto, este artículo ahora utiliza la ruta preferida, /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_*
Vea el artículo CPU_FLAGS_* article para más información.
Las variables CPU_FLAGS_* informan a Portage sobre las instrucciones que soporta la CPU. Esta información se utiliza para optimizar los paquetes a construir especificamente para las instrucciones declaradas. Las variables soportadas actualmente son CPU_FLAGS_X86 (para las arquitecturas amd64 y x86 architectures), y CPU_FLAGS_PPC (para las arquitecturas ppc y ppc64).
La herramienta cpuid2cpuflags (que se encuentra en el paquete app-portage/cpuid2cpuflags) puede ser usada para listar todas las instrucciones de CPU soportadas por el procesador del sistema. Tras instalar el paquete, ejecute:
user $
cpuid2cpuflags
CPU_FLAGS_X86: aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3
INPUT_DEVICES
Vea la sección make.conf del artículo Xorg/Guía y los posibles valores.
LINGUAS
Vea LINGUAS en la guía de idiomas.
/etc/portage/package.use/00local
*/* LINGUAS: de pt_BR en en_US en_GB
L10N
Véase L10N en la guía de localización.
/etc/portage/package.use/00local
*/* L10N: de pt-BR en en-US en-GB
Si bien existen códigos de idioma comunes (como
de
o fr
) son idénticos en LINGUAS y L10N, algunas entradas más complejas tienen una sintaxis distinta porque L10N usa etiquetas de idioma IETF (también conocidas como BCP 47). Por ejemplo, pt_BR
y sr@latin
en LINGUAS serían pt-BR
y sr-Latn
en L10N, respectivamente.VIDEO_CARDS
Este método está obsoleto debido a bug #922307, para la forma adecuada de configurar esto, por favor, use Handbook:AMD64/Installation/Base.
Para los posibles valores de esta variable USE_EXPAND, vea VIDEO_CARDS.
Sistema | Tarjeta gráfica discreta | VIDEO_CARDS |
---|---|---|
Intel x86 | Ninguna | Vea Intel#Feature support |
x86/ARM | Nvidia | nvidia
|
Any | Nvidia excepto Maxwell, Pascal y Volta | nouveau
|
Any | AMD desde Sea Islands | amdgpu radeonsi
|
Any | ATI y AMD más antigua | Vea radeon#Feature support |
Cualquiera | Intel | intel
|
Raspberry Pi | N/A | vc4
|
QEMU/KVM | Cualquiera | virgl
|
WSL | Cualquiera | d3d12
|
Desde las combinaciones comunes de sistemas y tarjetas gráficas, sustituya el nombre de los controladores a ser utilizados.
Los valores VIDEO_CARDS apropiados solicitarán los controladores adecuados.
Tras cambiar los valores de VIDEO_CARDS, recuerde actualizar el sistema con el siguiente comando para aplicar los cambios:
/etc/portage/package.use/00video
*/* VIDEO_CARDS: -* intel nouveau radeon radeonsi
root #
emerge --getbinpkg --ask --changed-use --deep @world
Omita --getbinpkg
para no usar el anfitrión de paquetes binarios.
Para el/la usuario/a común, en caso de que un entorno de escritorio gráfico vaya a ser utilizado, esta variable debe ser definida explícitamente. Para más información, vea la sección de Xorg en la guía de make.conf.
Vea los artículos AMDGPU, Intel, Nouveau, o NVIDIA para más detalles.
Véase también
- Variables de Portage (Manual AMD64)
- Funcionalidades de Portage (Manual AMD64)
- Variables del entorno (Manual AMD64)
- Funcionalidad avanzada de Portage (Manual AMD64)
- Problemas con emerge al tener
/.git/index.lock
en root
Recursos externos
- make.conf - ajustes personalizados para Portage - página del manual de make.conf.
Referencias
- ↑ Profile upgrade to version 23.0 available, gentoo.org, March 22, 2024. Retrieved on March 24, 2024.
- ↑ https://devmanual.gentoo.org/general-concepts/use-flags/#use_expand-and-arch-use-flags