/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
Il file /etc/portage/make.conf (precedentemente /etc/make.conf) è usato per modificare l'ambiente di Portage a livello globale. Le impostazioni verranno applicate ad ogni pacchetto che sarà installato. Esse controllano molti elementi delle funzionalità di Portage ad esempio: le USE flags globali, le opzioni lingua (L10N), i mirror di Portage, ecc...
Settings in make.conf will apply to every package that is emerged. These settings control many elements of Portage functionality such as global USE flags, language (L10N) options, Portage mirrors, etc.
Una versione basica viene installata mentre si estrae la stage tarball e un setup di esempio può essere trovato nel file /usr/share/portage/config/make.conf.example.
Like many Portage configuration files, make.conf can be a directory, and its contents will get summed together as if it were a single file.
The Handbook covers using make.conf, particularly in the USE flags, Portage features and Variables sections. See man make.conf for comprehensive documentation.
Precedenza
La configurazione finale di Portage non è solo basata su make.conf. Le impostazioni globali definite in questo file possono essere raffinate (o redefinite) in base al singolo pacchetto nei file in /etc/portage/package.use/ così come attraverso variabili d'ambiente. Sono disponibili anche le impostazioni predefinite gestite dalla distribuzione (in parte tramite le impostazioni predefinite del pacchetto Portage, in parte tramite il profilo Gentoo che è in uso).
Sebbene Portage supporti ancora il vecchio file /etc/make.conf, il suo utilizzo è sconsigliato a favore di /etc/portage/make.conf. Quando entrambi i file sono disponibili, le impostazioni in /etc/portage/make.conf hanno la precedenza in quelle di /etc/make.conf.
Variabili
Ci sono molte possibili variabili da personalizzare in make.conf. Solo quelle più comunemente usate sono spiegati ulteriormente all'interno di questo articolo, con un esempio e un collegamento a un articolo più dettagliato (se applicabile).
user $
man make.conf
Most variables are optional, can span multiple lines, but must not appear more than once.
Configurazioni diverse richiedono l'impostazione di variabili diverse. Non trattare i seguenti esempi come un elenco definitivo o un insieme minimo di requisiti.
CHOST
La variabile CHOST viene passata attraverso la fase di configurazione degli ebuild per impostare l'host di compilazione del sistema. Nota che il profilo Gentoo imposta già il valore CHOST appropriato, e l'aggiornamento richiede conoscenza ed esperienza nelle catene di costruzione/compilazione.
Portage profiles already set the appropriate CHOST value, and updating it requires insight and experience in build chains.
Starting with profile version 23.0 it is recommended to not to list CHOST in the make.conf file.[1]
Consulta l'articolo CHOST per ulteriori informazioni.
CFLAGS e CXXFLAGS
Le variabili CFLAGS e CXXFLAGS definiscono i flag di costruzione (build) e compilazione (compile) che verranno utilizzati per tutte le distribuzioni di pacchetti (alcune eccezioni nonostante chi filtra i flag noti per causare problemi con il pacchetto). La variabile CFLAGS è per applicazioni basate su C, mentre CXXFLAGS è pensata per applicazioni basate su C++. La maggior parte degli utenti manterrà lo stesso contenuto di entrambe le variabili.
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
Per maggiori informazioni consultare l'articolo GCC optimization e CFLAGS e CXXFLAGS nel Gentoo Handbook
CONFIG_PROTECT
La variabile CONFIG_PROTECT contiene una lista (i cui elementi sono separati da spazi) di directory dove Portage non sovrascriverà nessun file "alla cieca", ma tratterà questi come configurazioni, permettendo all'utente di controllare manualmente se le modifiche siano necessarie e valide oppure no. Le sottodirectories delle directories elencate possono essere escluse tramite la variabile CONFIG_PROTECT_MASK.
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.
La variabile ha un'impostazione predefinita gestita dall'installazione di Portage e contiene entries dal profilo dell'utente. Può essere estesa dall'ambiente di sistema (il quale è spesso utilizzato dalle applicazioni che aggiornano la variabile attraverso il loro file /etc/env.d) e dalle impostazioni dell'utente /etc/portage/make.conf.
CONFIG_PROTECT="/var/bind"
Per maggiori informazioni, vedere la sezione Environment variables nell'Handbook di Gentoo.
FEATURES
La variabile FEATURES contiene un elenco di funzionalità di Portage che l'utente vuole abilitate sul sistema, influenzando efficacemente il comportamento di Portage. È impostato di default tramite il profile di Gentoo, ma può essere facilmente aggiornato tramite /etc/portage/make.conf. Poiché questa è una variabile incrementale, i valori FEATURES possono essere aggiunti senza sovrascrivere direttamente quelli implementati tramite il profilo Gentoo.
FEATURES="keepwork"
Per ulteriori informazioni, vedere Portage features nel Manuale di Gentoo e nell'articolo FEATURES. Per un elenco completo delle funzionalità disponibili, vedere man 5 make.conf.
See the FEATURES article for more information.
GENTOO_MIRRORS
Vedi l'articolo GENTOO_MIRRORS.
MAKEOPTS
La variabile MAKEOPTS è usato per specificare gli argomenti passati a make quando i pacchetti sono compilati dal sorgente. Un'impostazione comunemente usata è -jN
che specifica il numero di processi make in parallelo che possono essere usati per costruire/compilare un singolo pacchetto. Una regola empirica ampiamente utilizzata per N è prendere il numero di core CPU logici disponibili. Un core della CPU fisica che utilizza una tecnica SMT X-way (es. Hyper-Threading o SMT2) conta come core logici X.
MAKEOPTS="-j4"
Consulta l'articolo MAKEOPTS per ulteriori informazioni.
Leggi su
EMERGE_DEFAULT_OPTS
poiché questa variabile influenza anche il comportamento di compilazione.EMERGE_DEFAULT_OPTS
La voci della variabile EMERGE_DEFAULT_OPTS vengono aggiunte alla riga di comando di emerge. Viene spesso utilizzata per consentire operazioni di emerge simultanee tramite le opzioni --jobs N
e --load-average X.Y
, che indicano a Portage quante costruzioni/compilazioni di pacchetti paralleli possono essere utilizzate e fino a quale carico di sistema (carico medio) può essere utilizzato il parallelismo.
EMERGE_DEFAULT_OPTS allows for parallel emerge operations through the --jobs N
and --load-average X.Y
options. EMERGE_DEFAULT_OPTS is used by Portage to reference system load, or load average, and limit how many packages are built at a time.
Ad esempio, per eseguire fino a tre processi in parallelo:
EMERGE_DEFAULT_OPTS="--jobs 3"
Per ulteriori informazioni, vedere l'articolo EMERGE_DEFAULT_OPTS.
PORTAGE_SCHEDULING_POLICY
See the Portage niceness article.
PORTAGE_TMPDIR
La variabile PORTAGE_TMPDIR definisce la posizione dei file temporanei per Portage. Il valore predefinito è /var/tmp, con il risultato di /var/tmp/portage per la locazione di costruzione/compilazione, /var/tmp/ccache per il supporto ccache di Portage e così via
PORTAGE_TMPDIR="/var/tmp"
On some systems, /var/tmp/ may be mounted with the noexec
option. The following error would be displayed by emerge when building packages:
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.
In this case, if removing the offending option from /etc/fstab isn't possible, PORTAGE_TMPDIR should be set to a different directory.
If enough memory is available, building packages can be accelerated by mounting PORTAGE_TMPDIR in RAM. See the article on Portage TMPDIR on tmpfs for more details.
DISTDIR
La variabile DISTDIR definisce la locazione dove Portage salverà il download dell'archivio codice sorgente. Il suo valore predefinito è /var/cache/distfiles.
Gli utenti possono impostare la variabile DISTDIR in /etc/portage/make.conf:
Beware where you place your DISTDIR! Only trusted users should be granted write access to this location.
DISTDIR=/var/gentoo/distfiles
Per ulteriori informazioni, fare riferimento all'articolo DISTDIR.
PKGDIR
USE
La variabile USE consente l'impostazione o la disattivazione a livello di sistema di USE flag in un elenco separato da spazi.
USE="-kde -qt5 ldap"
Per un controllo a pacchetto di USE flags, il file /etc/portage/package.use dovrebbe essere usato.
Always consider whether it is worth setting a USE flag globally and what implications this will have on the system, or if it is preferable to just set a flag for one or several packages individually.
A USE flag may be temporarily set on the command line to check what effect it will have, before writing it to the world file: USE="[USE flag to test]" emerge --pretend --verbose --update --deep --newuse world
ACCEPT_LICENSE
La varabile ACCEPT_LICENSE dice a Portage quali licenze software sono consentite. I pacchetti con una licenza non accettata non possono essere installati nel sistema.
ACCEPT_LICENSE="*"
The preferred way to accept all licenses is to set -@EULA which allows users to check over the terms of proprietary software.
ACCEPT_LICENSE="* -@EULA"
ACCEPT_LICENSE="-* @FREE"
LINGUAS
Vedi LINGUAS nella guida alla localizzazione.
LINGUAS="de pt_BR en en_US en_GB"
USE_EXPAND
La variabile USE_EXPAND è una lista impostata in profiles/base/make.defaults a partire da Portage 2.0.51.20. [2]
CPU_FLAGS_X86
Vedere l'articolo CPU_FLAGS_X86 per ulteriori informazioni.
La variabile CPU_FLAGS_X86 informa Portage sui flag (funzionalità) della CPU consentiti dalla CPU. Queste informazioni vengono utilizzate per ottimizzare le build del pacchetto in modo specifico per le funzionalità di destinazione.
L'utilità cpuid2cpuflags (trovato nel pacchetto app-portage/cpuid2cpuflags) può essere utilizzato per ottenere un elenco completo dei flag della CPU supportati dal processore del sistema. Dopo aver installato il pacchetto, emettere:
user $
cpuid2cpuflags
CPU_FLAGS_X86: aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3
Queste flags possono quindi essere aggiunte in /etc/portage/make.conf o /etc/portage/package.use/. Nota che questo è efficace solo sulle architetture x86 e amd64.
INPUT_DEVICES
Vedere la sezione make.conf dell'articolo Xorg/Guide e i possibili valori.
L10N
Vedi L10N nella guida alla localizzazione e questo Repository News Item.
L10N="de pt-BR en en-US en-GB"
# Defining localization values
L10N="de pt-BR en en-US en-GB"
Mentre i comuni codici di lingua a due lettere (come
de
o fr
) sono identici in LINGUAS e L10N, voci più complesse hanno una sintassi diversa perché L10N usa tag di lingua IETF (alias BCP 47). Ad esempio, pt_BR
e sr@latin
in LINGUAS diventano pt-BR
e sr-Latn< /code> in L10N, rispettivamente.
VIDEO_CARDS
Per i possibili valori di questa variabile USE_EXPAND vedi 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.
Portage uses the USE_EXPAND variable called VIDEO_CARDS to enable support for various graphics cards in packages. Setting VIDEO_CARDS to appropriate value(s) will pull in the correct driver(s):
VIDEO_CARDS="intel nvidia radeon vesa"
Substitute the name of the driver(s) to be used. Common choices include nouveau
, nvidia
, radeon
, and intel
.
</translate>
<translate>
After setting or altering VIDEO_CARDS values remember to update the system using the following command so the changes take effect:
root #
emerge --ask --changed-use --deep @world
After changing VIDEO_CARDS values remember to update the system using the following command so the changes take effect:
VIDEO_CARDS="intel nouveau radeon radeonsi"
root #
emerge --getbinpkg --ask --changed-use --deep @world
Omit --getbinpkg
to not use the configured binary package host.
Per l'utente medio, se deve essere utilizzato un ambiente desktop grafico, questa variabile dovrebbe essere definita esplicitamente. Per ulteriori informazioni vedere Xorg/Guide#make.conf.
Vedere anche
Risorse esterne
Riferimenti
- ↑ 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