/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 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).
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="*"
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.
/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
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_*
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
Vea LINGUAS en la guía de idiomas.
/etc/portage/package.use/00local
*/* LINGUAS: de pt_BR en en_US en_GB
L10N
/etc/portage/package.use/00local
*/* L10N: de pt-BR en en-US en-GB
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
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:
/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.
See also
External resources
- make.conf - custom settings for Portage - make.conf man page.
References
- ↑ 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