Handbook:Parts/Installation/Base/it
Readers should not try to follow instructions directly from the Handbook:Parts namespace (which is THIS page!). The sections displayed below are used as a skeleton for transcluding information into the computer architecture specific handbooks and are therefore lacking critical information.
Please visit the Handbook list to read instructions for a relevant computer architecture.
Effettuare chroot
Copiare le informazioni del DNS
Rimane da fare ancora una cosa prima di entrare nel nuovo ambiente, ovvero copiare le informazioni del DNS nel file /etc/resolv.conf. Ciò va fatto per assicurarsi che la rete funzioni anche dopo essere entrati nel nuovo ambiente. /etc/resolv.conf contiene i name server per la rete.
Per copiare queste informazioni, si raccomanda di passare l'opzione --dereference
al comando cp. Ciò garantisce che, se /etc/resolv.conf è un collegamento simbolico, venga copiato il file indicato dal collegamento invece del collegamento simbolico stesso. Altrimenti, nel nuovo ambiente, il collegamento simbolico punterebbe ad un file non esistente (in quanto ciò che ora indica il collegamento non sarà disponibile nel nuovo ambiente).
root #
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
Montaggio dei fileystem necessari
A breve, la radice (root) di Linux sarà cambiata con quella della nuova ubicazione. Per essere sicuri che il nuovo ambiente funzioni correttamente, alcuni filesystem devono essere disponibili fin d'ora.
I filesystem da rendere disponibili sono:
- /proc/ che è uno pseudo filesystem (appare come fossero file ordinari, ma in realtà è generato in tempo reale) tramite il quale il kernel Linux mostra informazioni a tutto l'ambiente
- /sys/ che è uno pseudo filesystem, come /proc/ che una volta si pensava l'avrebbe sostituito, ed è più strutturato di /proc/
- /dev/ è un filesystem normale, parzialmente gestito dal gestore dei dispositivi di Linux (solitamente udev), il quale contiene un file per ciascun dispositivo
- /run/ è un filesystem temporaneo utilizzato per i file generati in fase di esecuzione, come i file PID o il locks
Il percorso /proc/ sarà montato su /mnt/gentoo/proc/ mentre gli altri saranno montati congiuntamente. Ciò significa che, ad esempio, /mnt/gentoo/sys/ sarà effettivamente /sys/ (è solo un secondo punto di accesso allo stesso filesystem) mentre /mnt/gentoo/proc/ è un nuovo montaggio (un'istanza per così dire) del filesystem.
If using Gentoo's install media, this step can be replaced with simply: arch-chroot /mnt/gentoo.
root #
mount --types proc /proc /mnt/gentoo/proc
root #
mount --rbind /sys /mnt/gentoo/sys
root #
mount --make-rslave /mnt/gentoo/sys
root #
mount --rbind /dev /mnt/gentoo/dev
root #
mount --make-rslave /mnt/gentoo/dev
root #
mount --bind /run /mnt/gentoo/run
root #
mount --make-slave /mnt/gentoo/run
Le operazioni
--make-rslave
sono necessarie per il supporto di systemd più avanti nell'installazione.Quando si usano mezzi di installazione non-Gentoo, quanto detto potrebbe risultare insufficiente. Alcune distribuzioni creano un link simbolico di /dev/shm su /run/shm/ che, dopo chroot, risulta non valido. Facendo un corretto montaggio tmpfs di /dev/shm/ può risolvere questo problema:
root #
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
Ci si assicuri anche che la modalità 1777 sia impostata:
root #
chmod 1777 /dev/shm /run/shm
Entrare nel nuovo ambiente
Ora che tutte le partizioni sono state inizializzate e l'ambiente base installato, è tempo di entrare nel nuovo ambiente attraverso chroot. Ciò significa che la sessione cambierà la sua radice (la posizione di livello più alto alla quale si può fare accesso) da quella dell'attuale ambiente di installazione (del CD o di un altro mezzo di installazione) a quella del sistema installato (ovvero le partizioni inizializzate). Da cui il nome, change root (cambiare radice) o chroot.
Questo cambio di radice può esser fatto in tre passaggi:
- La posizione radice (root) è modificata da / (sul mezzo di installazione) a /mnt/gentoo/ sulle partizioni usando chroot
- Alcune impostazioni (quelle su /etc/profile) sono caricate nella memoria usando il comando source
- L'attesa comandi (prompt) primaria è modificata per ricordarci che questa sessione avviene in un ambiente chroot
root #
chroot /mnt/gentoo /bin/bash
root #
source /etc/profile
root #
export PS1="(chroot) ${PS1}"
Da questo momento, tutte le azioni sono direttamente eseguite nel nuovo ambiente Gentoo Linux. Certamente si è ancora lontani dalla conclusione, per questo motivo l'installazione ha ancora alcune sezioni!
Se l'installazione di Gentoo viene interrotta in qualsiasi momento da questo punto, dovrebbe essere possibile riprenderla a partire da questo passaggio. Non c'è necessità di ripartizionare il disco nuovamente! Montare la partizione radice ed eseguire i passi qui sopra iniziando con la copia delle informazioni DNS per rientrare nell'ambiente funzionante. Questo è utile anche per correggere alcuni problemi con i bootloader (selettori di avvio). Ulteriori informazioni si possono trovare nell'articolo chroot.
Preparing for a bootloader
Now that the new environment has been entered, it is necessary to prepare the new environment for the bootloader. It will be important to have the correct partition mounted when it is time to install the bootloader.
UEFI systems
For UEFI systems, /dev/sda1 was formatted with the FAT32 filesystem and will be used as the EFI System Partition (ESP). Create a new /efi directory (if not yet created), and then mount ESP there:
root #
mkdir /efi
root #
mount /dev/sda1 /efi
DOS/Legacy BIOS systems
For DOS/Legacy BIOS systems, the bootloader will be installed into the /boot directory, therefore mount as follows:
root #
mount /dev/sda1 /boot
Configurare Portage
Installare un'istantanea del repository ebuild Gentoo dal web
Il prossimo passo consiste nell'installare un'istantanea del repository ebuild di Gentoo. Questa istantanea contiene una collezione di file che informano Portage riguardo i titoli di software disponibili (per l'installazione), quali profili può selezionare l'amministratore del sistema, elementi notizia specifici su pacchetti o profili, ecc.
L'uso di emerge-webrsync è raccomandato per chi si trova dietro un firewall restrittivo (usa i protocolli HTTP/FTP per scaricare l'istantanea) e vuole risparmiare la banda. I lettori che non hanno restrizioni di rete o di banda possono felicemente saltare fino alla fine di questa sezione.
Questo preleverà l'ultima istantanea (la quale è rilasciata giorno per giorno) da uno dei distributori (mirror) di Gentoo e la installerà nel sistema:
root #
emerge-webrsync
Durante questa operazione, emerge-webrsync potrebbe lamentarsi riguardo una posizione /var/db/repos/gentoo mancante. Questo deve essere atteso e non destare preoccupazioni - lo strumento creerà la posizione.
Da questo momento in avanti, Portage potrebbe menzionare che certi aggiornamenti è raccomandato eseguirli. Ciò avviene perché i pacchetti di sistema installati attraverso il file stage potrebbero avere disponibili delle versioni più recenti; Portage è ora a conoscenza dei nuovi pacchetti grazie all'istantanea del repositorio. Gli aggiornamenti dei pacchetti possono essere ignorati in sicurezza per ora; gli aggiornamenti possono essere posticipati dopo la conclusione dell'installazione di Gentoo.
Opzionale: Selezionare i mirror
Per scaricare rapidamente il codice sorgente si raccomanda di selezionare un mirror (distributore) veloce. Portage cercherà la variabile GENTOO_MIRRORS nel file make.conf ed utilizzerà i mirror lì elencati. È possibile navigare nella lista dei mirror di Gentoo e cercare un mirror (o più mirror) vicino alla posizione geografica del sistema (in quanto quelli risulteranno solitamente più veloci). Tuttavia, forniamo anche uno strumento utile chiamato mirrorselect che fornisce agli utenti una comoda interfaccia per selezionare i mirror necessari. Basta semplicemente navigare sui mirror prescelti e premere Spazio per selezionare uno o più mirror.
A tool called mirrorselect provides a pretty text interface to more quickly query and select suitable mirrors. Just navigate to the mirrors of choice and press Spacebar to select one or more mirrors.
root #
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Alternatively, a list of active mirrors are available online.
Opzionale: Aggiornare il repositorio ebuild di Gentoo
È possibile aggiornare il repositorio ebuild di Gentoo all'ultima versione. Il precedente comando emerge-webrsync avrà installato un'istantanea decisamente recente (solitamente delle ultime 24 ore) dunque questo passo è decisamente facoltativo.
Supponiamo siano necessari gli aggiornamenti degli ultimissimi pacchetti (fino ad 1 ora), dunque si usi emerge --sync. Questo comando userà il protocollo rsync per aggiornare al repositorio ebuild di Gentoo (il quale è stato prelevato prima attraverso emerge-webrsync) al più recente stato.
root #
emerge --sync
Sui terminali lenti, come alcuni framebuffer o console seriali, è raccomandato usare l'opzione --quiet
per velocizzare il processo:
root #
emerge --sync --quiet
Leggere gli elementi notizia
Quando il repositorio ebuild di Gentoo viene sincronizzato, Portage potrebbe scrivere messaggi informativi simili a questo:
* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.
Gli elementi notizia sono stati creati per fornire un mezzo di comunicazione affinché i messaggi critici siano notificati agli utenti attraverso il repository ebuild Gentoo. Per gestirli, usare eselect news. L'applicazione eselect è un'utilità di Gentoo che fornisce un'interfaccia di gestione comune per l'amministrazione di sistema. In questo caso, eselect è richiesto per usare il modulo news
.
Per il modulo news
, tre operazioni sono le più comuni:
- Con
list
viene mostrata una panoramica degli elementi notizia disponibili. - Con
read
possono essere letti gli elementi notizia. - Con
purge
possono essere rimossi gli elementi notizia una volta che siano stati letti e non si potranno più rileggere.
root #
eselect news list
root #
eselect news read
Ulteriori informazioni sul lettore delle notizie sono presenti sulla sua pagina manuale:
root #
man news.eselect
Scegliere il profilo corretto
Desktop profiles are not exclusively for desktop environments. They are also suitable for minimal window managers like i3 or sway.
Un profilo è un elemento costitutivo per un qualsiasi sistema Gentoo. Non solo specifica valori predefiniti per USE, CFLAGS, ed altre importanti variabili, ma blocca il sistema su un certo intervallo di versione di pacchetti. Queste impostazioni sono tutte mantenute dagli sviluppatori Portage di Gentoo.
Per vedere quale profilo sta attualmente usando il sistema, esegui eselect usando il modulo profile
:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/amd64/23.0 * [2] default/linux/amd64/23.0/desktop [3] default/linux/amd64/23.0/desktop/gnome [4] default/linux/amd64/23.0/desktop/kde
La risposta del comando è giusto un esempio e cambia con il tempo.
Quando si usa systemd, assicurarsi che il nome del profilo contenga systemd. Altrimenti, assicurati che il nome del profilo non contenga systemd.
Come si può vedere, ci sono anche sotto profili per i desktop disponibili per alcune architetture.
Gli aggiornamenti del profilo non devono essere presi alla leggera. Quando si seleziona il profilo iniziale, assicurarsi di utilizzare il profilo corrispondente a la stessa versione come quello inizialmente utilizzato da stage3 (es. 23.0). Ogni nuova versione del profilo viene annunciata attraverso una news contenente le istruzioni di migrazione. Assicurati di leggerlo e seguirlo prima di passare a un nuovo profilo.
Dopo aver visto i profili disponibili per l'architettura amd64, gli utenti possono selezionare un profilo diverso per il sistema:
root #
eselect profile set 2
This is a placeholder for architecture-specific profile information
Il sotto profilo
developer
è dedicato ad uno sviluppatore Gentoo Linux e non va considerato come una scelta per l'utente qualsiasi.Optional: Adding a binary package host
Since December 2023, Gentoo's Release Engineering team has offered an official binary package host (colloquially shorted to just "binhost") for use by the general community to retrieve and install binary packages (binpkgs).[1]
Adding a binary package host allows Portage to install cryptographically signed, compiled packages. In many cases, adding a binary package host will greatly decrease the mean time to package installation and adds much benefit when running Gentoo on older, slower, or low power systems.
Repository configuration
The repository configuration for a binhost is found in Portage's /etc/portage/binrepos.conf/ directory, which functions similarly to the configuration mentioned in the Gentoo ebuild repository section.
When defining a binary host, there are two important aspects to consider:
- The architecture and profile targets within the
sync-uri
value do matter and should align to the respective computer architecture (amd64 in this case) and system profile selected in the Choosing the right profile section. - Selecting a fast, geographically close mirror will generally shorten retrieval time. Review the mirrorselect tool mentioned in the Optional: Selecting mirrors section or review the online list of mirrors where URL values can be discovered.
[binhost]
priority = 9999
sync-uri = https://distfiles.gentoo.org/releases/<arch>/binpackages/<profile>/x86-64/
Installing binary packages
Portage will compile packages from code source by default. It can be instructed to use binary packages in the following ways:
- The
--getbinpkg
option can be passed when invoking the emerge command. This method of for binary package installation is useful to install only a particular binary package. - Changing the system's default via Portage's FEATURES variable, which is exposed through the /etc/portage/make.conf file. Applying this configuration change will cause Portage to query the binary package host for the package(s) to be requested and fall back to compiling locally when no results are found.
For example, to have Portage always install available binary packages:
# Appending getbinpkg to the list of values within the FEATURES variable
FEATURES="${FEATURES} getbinpkg"
# Require signatures
FEATURES="${FEATURES} binpkg-request-signature"
Please also run getuto for Portage to set up the necessary keyring for verification:
root #
getuto
Additional Portage features will be discussed in the the next chapter of the handbook.
Configurare la variabile USE
La variabile USE è una delle più potenti che Gentoo offre ai suoi utenti. Numerosi programmi possono essere compilati con o senza il supporto facoltativo di certi elementi. Per esempio, alcuni programmi possono essere compilati con il supporto a GTK+ o con il supporto a Qt. Altri possono essere compilati con o senza il supporto SSL. Alcuni programmi possono essere persino compilati con il supporto al framebuffer (svgalib) anziché il supporto a X11 (X-server).
La maggior parte delle distribuzioni compila i pacchetti con il supporto per più cose possibili, aumentando la dimensione dei programmi ed i tempi di avvio, per non menzionare l'enorme quantità di dipendenze. Con Gentoo gli utenti possono definire con quali opzioni un pacchetto dovrebbe essere compilato. Qui entra in gioco USE.
Nella variabile USE gli utenti definiscono le parole chiave che saranno mappate come opzioni di compilazione. Per esempio, ssl
compilerà con il supporto SSL nei programmi che lo supportano. -X
rimuoverà il supporto al server X (notare il meno di fronte al simbolo). gnome gtk -kde -qt5
compilerà i programmi con il supporto GNOME (e GTK+) e non con il supporto KDE (e Qt), rendendo il sistema interamente modificato per GNOME (se l'architettura lo supporta).
Le impostazioni predefinite per USE si trovano nei file make.defaults del profilo Gentoo usato per il sistema. Gentoo usa un (complesso) sistema di eredità per i suoi profili, nel quale non scaveremo a fondo in questo stadio. Il modo più facile per controllare le attuali impostazioni attive per USE è eseguire emerge --info e selezionare la linea che inizia con USE:
root #
emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
L'esempio soprastante è stato troncato, l'elenco effettivo dei valori di USE è molto, molto più grande.
Una descrizione completa sulle opzioni disponibili per USE può essere trovata nel sistema su /var/db/repos/gentoo/profiles/use.desc.
root #
less /var/db/repos/gentoo/profiles/use.desc
Dentro il comando less, si può scorrere il testo usando i tasti ↑ e ↓, ed uscire premendo q.
Come esempio mostriamo un'impostazione di USE per un sistema basato su KDE con supporto DVD, ALSA e scrittura CD:
root #
nano -w /etc/portage/make.conf
USE="-gtk -gnome qt5 kde dvd alsa cdr"
Quando USE viene definita in /etc/portage/make.conf essa aggiunge (o rimuove se l'opzione USE inizia con il segno -) opzioni dall'elenco predefinito. Gli utenti che vogliono ignorare qualsiasi impostazione predefinita di USE e gestirla completamente da soli devono far cominciare la definizione di USE in make.conf con -*
:
USE="-X acl alsa"
Sebbene sia possibile, l'opzione
-*
(vista nell'esempio precedente) è sconsigliata poiché le impostazioni predefinite accuratamente scelte per USE possono essere configurate in alcuni ebuild per prevenire conflitti ed altri errori.CPU_FLAGS_*
Some architectures (including AMD64/X86, ARM, PPC) have a USE_EXPAND variable called CPU_FLAGS_<ARCH>, where <ARCH> is replaced with the relevant system architecture name.
Do not be confused! AMD64 and X86 systems share some common architecture, so the proper variable name for AMD64 systems is CPU_FLAGS_X86.
This is used to configure the build to compile in specific assembly code or other intrinsics, usually hand-written or otherwise extra,
and is not the same as asking the compiler to output optimized code for a certain CPU feature (e.g. -march=
).
Users should set this variable in addition to configuring their COMMON_FLAGS as desired.
A few steps are needed to set this up:
root #
emerge --ask --oneshot app-portage/cpuid2cpuflags
Inspect the output manually if curious:
root #
cpuid2cpuflags
Then copy the output into package.use:
root #
echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
VIDEO_CARDS
The VIDEO_CARDS USE_EXPAND variable should be configured appropriately depending on the available GPU(s). Setting VIDEO_CARDS is not required for a console only install.
Below is an example of a properly set VIDEO_CARDS variable. Substitute the name of the driver(s) to be used.
VIDEO_CARDS="amdgpu radeonsi"
Details for various GPU(s) can be found at the AMDGPU, Intel, Nouveau (Open Source), or NVIDIA (Proprietary) articles.
Opzionale: Configurare la variabile ACCEPT_LICENSE
Starting with Gentoo Linux Enhancement Proposal 23 (GLEP 23), a mechanism was created to allow system administrators the ability to "regulate the software they install with regards to licenses... Some want a system free of any software that is not OSI-approved; others are simply curious as to what licenses they are implicitly accepting."[2] With a motivation to have more granular control over the type of software running on a Gentoo system, the ACCEPT_LICENSE variable was born.
Gentoo viene fornito con un valore predefinito nei profili, ad esempio:
user $
portageq envvar ACCEPT_LICENSE
@FREE
For the convenience of system administration, legally-similar software licenses have been bundled together - each according to its like-kind. License group definitions are available for viewing and are managed by the Gentoo Licenses project. While an individual license is not, license groups are syntactically preceded with an @
symbol, enabling them to be easily distinguished in the ACCEPT_LICENSE variable.
Some common license groups include:
Name | Description |
---|---|
@GPL-COMPATIBLE |
GPL compatible licenses approved by the Free Software Foundation [a_license 1] |
@FSF-APPROVED |
Free software licenses approved by the FSF (includes @GPL-COMPATIBLE )
|
@OSI-APPROVED |
Licenses approved by the Open Source Initiative [a_license 2] |
@MISC-FREE |
Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 3] but are not approved by either FSF or OSI |
@FREE-SOFTWARE |
Combines @FSF-APPROVED , @OSI-APPROVED , and @MISC-FREE .
|
@FSF-APPROVED-OTHER |
FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts) |
@MISC-FREE-DOCS |
Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 4] but are NOT listed in @FSF-APPROVED-OTHER .
|
@FREE-DOCUMENTS |
Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS .
|
@FREE |
Metaset of all licenses with the freedom to use, share, modify and share modifications. Combines @FREE-SOFTWARE and @FREE-DOCUMENTS .
|
@BINARY-REDISTRIBUTABLE |
Licenses that at least permit free redistribution of the software in binary form. Includes @FREE .
|
@EULA |
License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval |
Currently set system wide acceptable license values can be viewed via:
user $
portageq envvar ACCEPT_LICENSE
@FREE
As visible in the output, the default value is to only allow software which has been grouped into the @FREE
category to be installed.
Specific licenses or licenses groups for a system can be defined in the following locations:
- System wide within the selected profile - this sets the default value.
- System wide within the /etc/portage/make.conf file. System administrators override the profile's default value within this file.
- Per-package within a /etc/portage/package.license file.
- Per-package within a /etc/portage/package.license/ directory of files.
The system wide license default in the profile is overridden within the /etc/portage/make.conf:
# Overrides the profile's ACCEPT_LICENSE default value
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"
Optionally system administrators can also define accepted licenses per-package as shown in the following directory of files example. Note that the package.license directory will need created if it does not already exist:
root #
mkdir /etc/portage/package.license
Software license details for an individual Gentoo package are stored within the LICENSE variable of the associated ebuild. One package may have one or many software licenses, therefore it be necessary to specify multiple acceptable licenses for a single package.
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
The LICENSE variable in an ebuild is only a guideline for Gentoo developers and users. It is not a legal statement, and there is no guarantee that it will reflect reality. It is recommended to not solely rely on a ebuild developer's interpretation of a software package's license; but check the package itself in depth, including all files that have been installed to the system.
Aggiornare il @world set
Il seguente passo è necessario per fa sì che il sistema possa applicare aggiornamenti o cambiamenti alle flag USE apparsi dopo la costruzione dello stage3 e da qualsiasi selezione di profilo:
- A profile target different from the stage file has been selected.
- Additional USE flags have been set for installed packages.
Readers who are performing an 'install Gentoo speed run' may safely skip @world set updates until after their system has rebooted into the new Gentoo environment.
Readers who are performing a slow run can have Portage perform updates for package, profile, and/or USE flag changes at the present time:
root #
emerge --ask --verbose --update --deep --newuse @world
Removing obsolete packages
It is important to always depclean after system upgrades to remove obsolete packages. Review the output carefully with emerge --depclean --pretend to see if any of the to-be-cleaned packages should be kept if personally using them. To keep a package which would otherwise be depcleaned, use emerge --noreplace foo.
root #
emerge --ask --pretend --depclean
If happy, then proceed with a real depclean:
root #
emerge --ask --depclean
Se è stato selezionato un profilo con un ambiente desktop completo, il processo potrebbe aumentare notevolmente la quantità di tempo necessaria per il processo di installazione. Coloro che hanno un tempo ristretto possono lavorare seguendo questa 'regola pratica': più corto è il nome del profilo, meno specifico sarà il @world set del sistema; meno specifico sarà il @world set del sistema, meno pacchetti saranno richiesti dal sistema. In altre parole:
- Selezionare
default/linux/amd64/23.0
comporterà l'aggiornamento di veramente pochi pacchetti, mentre - Selezionare
default/linux/amd64/23.0/desktop/gnome/systemd
richiederà molti pacchetti da installare, dato che il sistema di init sta cambiando da OpenRC a systemd, e le librerie dell'ambiente desktop GNOME saranno installate.
Ora locale
This step does not apply to users of the musl libc. Users who do not know what that means should perform this step.
Si evitino le ore locali /usr/share/zoneinfo/Etc/GMT* poiché i loro nomi non indicano le aree attese. Per esempio, GMT-8 è di fatto GMT+8.
Scegliere l'ora locale per il sistema. Cercare le ore locali disponibili su /usr/share/zoneinfo/:
root #
ls /usr/share/zoneinfo
root #
ls -l /usr/share/zoneinfo/Europe/
total 256 -rw-r--r-- 1 root root 2933 Dec 3 17:19 Amsterdam -rw-r--r-- 1 root root 1742 Dec 3 17:19 Andorra -rw-r--r-- 1 root root 1151 Dec 3 17:19 Astrakhan -rw-r--r-- 1 root root 2262 Dec 3 17:19 Athens -rw-r--r-- 1 root root 3664 Dec 3 17:19 Belfast -rw-r--r-- 1 root root 1920 Dec 3 17:19 Belgrade -rw-r--r-- 1 root root 2298 Dec 3 17:19 Berlin -rw-r--r-- 1 root root 2301 Dec 3 17:19 Bratislava -rw-r--r-- 1 root root 2933 Dec 3 17:19 Brussels ...
Supponiamo che la timezone scelta sia Europe/Brussels.
OpenRC
Scriviamo il nome della timezone nel file /etc/timezone.
root #
echo "Europe/Brussels" > /etc/timezone
Poi, riconfigurare il pacchetto sys-libs/timezone-data, il quale aggiornerà il file /etc/localtime per noi, basato sugli inserimenti di /etc/timezone. Il file /etc/localtime è usato dalla libreria C del sistema per conoscere in quale ora locale il sistema si trova.
root #
emerge --config sys-libs/timezone-data
The /etc/localtime file is used by the system C library to know the timezone the system is in.
systemd
Quando si usa systemd si utilizza un approccio leggermente diverso. Viene generato un collegamento simbolico:
root #
ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime
Successivamente, quando systemd è in esecuzione, il fuso orario e le relative impostazioni possono essere configurate con il comando timedatectl.
Configurare le lingue
Questo passaggio non si applica agli utenti di musl libc. Gli utenti che non sanno cosa significa dovrebbero eseguire questo passaggio.
Generazione locale
La maggior parte degli utenti usa solo una o due lingue nel proprio sistema.
Le lingue non specificano solamente la lingua che l'utente userà per interagire con il proprio sistema, ma anche le regole per ordinare le stringhe, mostrare le date e gli orari, ecc. i locale sono case sensitive e devono essere rappresentati esattamente come descritti. Un lista completa di tutti i locale disponibili può essere trovata nel file /usr/share/i18n/SUPPORTED.
Le localizzazioni di sistema supportate devono essere definite nel file /etc/locale.gen.
root #
nano -w /etc/locale.gen
Le lingue seguenti sono un esempio per avere sia l'inglese (Stati Uniti) sia il tedesco (Germania/Deutchland) con i formati di carattere corrispondenti (per esempio UTF-8).
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Raccomandiamo fortemente di aggiungere almeno una lingua UTF-8 poiché molte applicazioni possono richiederla per compilare correttamente.
Il passo successivo è eseguire il comando locale-gen. Questo comando genererà tutti i valori locali specificati nel file /etc/locale.gen.
root #
locale-gen
Per verificare che i valori locali selezionati sono ora disponibili, eseguire locale -a.
On systemd installs, localectl can be used, e.g. localectl set-locale ... or localectl list-locales.
Selezione dei locale
Fatto ciò, si passa ad impostare le opzioni locali per tutto il sistema. Nuovamente si userà eselect, questa volta con il modulo locale
.
Con eselect locale list vengono mostrate le opzioni disponibili:
root #
eselect locale list
Available targets for the LANG variable: [1] C [2] C.utf8 [3] en_US [4] en_US.iso88591 [5] en_US.utf8 [6] de_DE [7] de_DE.iso88591 [8] de_DE.iso885915 [9] de_DE.utf8 [10] POSIX [ ] (free form)
Con eselect locale set <NUMBER>si può selezionare il locale corretto:
root #
eselect locale set 9
Manualmente, ciò può essere fatto intervenendo sul file /etc/env.d/02locale e per Systemd il file /etc/locale.conf:
LANG="de_DE.UTF-8"
LC_COLLATE="C.UTF-8"
L'impostazione della localizzazione eviterà avvisi ed errori durante le compilazioni del kernel e del software più avanti nell'installazione.
Ora ricaricare l'ambiente:
root #
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
Una completa Guida di localizazzione per fornire una guida aggiuntiva attraverso il processo di selezione locale. Un altro interessante articolo è la guida UTF-8 per informazioni molto specifiche su come abilitare UTF-8 nel sistema.
References