This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Installare il sistema base di Gentoo

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Installation/Base and the translation is 100% complete.
Manuale AMD64
Installazione
Riguardo l'installazione
Il mezzo d'installazione
Configurare la rete
Preparare i dischi
Installare lo stage3
Installare il sistema base
Configurare il kernel
Configurare il sistema
Strumenti di sistema
Configurare l'avviatore
Ultimare l'installazione
Lavorare con Gentoo
Introduzione a Portage
Opzioni USE
Funzionalità di Portage
Sistema script di init
Variabili d'ambiente
Lavorare con Portage
File e cartelle
Variabili
Mixare i rami del software
Strumenti aggiuntivi
Repositorio pacchetti personalizzato
Funzionalità avanzate
Configurare la rete
Come iniziare
Configurazione avanzata
Networking modulare
Wireless
Aggiungere funzionalità
Gestione dinamica


Effettuare chroot

Opzionale: Selezionare i mirror

File di distribuzione

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.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Repositorio ebuild di Gentoo

Un altro importante passo durante la selezione dei mirror è la configurazione dei repositori delle ebuild di Gentoo tramite il file /etc/portage/repos.conf/gentoo.conf. Questo file contiene le informazioni di sincronizzazione necessarie per aggiornare il repositorio dei pacchetti (la raccolta di ebuild e di file correlati contenenti tutte le informazioni di cui Portage ha bisogno per scaricare ed installare i pacchetti software).

La configurazione del repositorio può essere fatta in pochi semplici passi. Prima, se non esiste, creare il percorso repos.conf:

root #mkdir /mnt/gentoo/etc/portage/repos.conf

Successivamente, copiare il file di configurazione dei repositori di Gentoo, fornito da Portage, nella cartella (appena creata) repos.conf:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Si dia un'occhiata con un editor di testo o utilizzando il comando cat. Il contenuto del file dovrebbe essere in formato .ini e somigliare a questo:

FILE /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes

[gentoo] location = /usr/portage sync-type = rsync sync-uri = rsync://rsync.gentoo.org/gentoo-portage auto-sync = yes sync-rsync-verify-jobs = 1 sync-rsync-verify-metamanifest = yes sync-rsync-verify-max-age = 24 sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc sync-openpgp-key-refresh-retry-count = 40 sync-openpgp-key-refresh-retry-overall-timeout = 1200 sync-openpgp-key-refresh-retry-delay-exp-base = 2 sync-openpgp-key-refresh-retry-delay-max = 60 sync-openpgp-key-refresh-retry-delay-mult = 4

  1. for daily squashfs snapshots
  2. sync-type = squashdelta
  3. sync-uri = mirror://gentoo/../snapshots/squashfs

}}

Il valore predefinito della variabile sync-uri sopra elencato comporta un posizionamento dei mirror basato sulla rotazione. Ciò ottimizzerà il carico sulla banda dell'infrastruttura di Gentoo e fornirà una soluzione di ripiego in caso uno specifico mirror risulti non in linea. Si raccomanda di mantenere l'URI predefinito a meno che non venga usato un mirror di Portage locale e privato.

Tip
Per coloro che sono interessati, le specifiche ufficiali per le API di sincronizzazione del plug-in di Portage possono essere consultate nell' Articolo sulla sincronizzazione del progetto Portage.

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 -L 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 -L /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

Il percorso /proc/ sarà montato su /mnt/gentoo/proc/ mentre gli altri due 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.

root #mount -t 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
Nota
Le operazioni --make-rslave sono necessarie per il supporto di systemd più avanti nell'installazione.
Attenzione
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 -t tmpfs -o nosuid,nodev,noexec shm /dev/shm

Ci si assicuri anche che la modalità 1777 sia impostata

root # chmod 1777 /dev/shm
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

Also ensure that mode 1777 is set:

root # chmod 1777 /dev/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:

  1. La posizione radice (root) è modificata da / (sul mezzo di installazione) a /mnt/gentoo/ sulle partizioni usando chroot
  2. Alcune impostazioni (quelle su /etc/profile) sono caricate nella memoria usando il comando source
  3. 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!

Tip
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.

Montare la partizione radice

Ora che si è dentro al nuovo ambiente, è necessario creare e montare la partizione /boot. Ciò sarà importante al momento della compilazione del kernel e dell'installazione del bootloader (selettore di avvio):

root #mkdir /boot
root #mount /dev/sda2 /boot

Configurare Portage

Installare l'istantanea di un repositorio ebuild dal Web

Il prossimo passo consiste nell'installare un'istantanea del principale repositorio ebuild. 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 (perché 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
Nota
Durante questa operazione, emerge-webrsync potrebbe lamentarsi riguardo una posizione /usr/portage/ 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: 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 con il sistema, Portage può avvertire l'utente con messaggi simili a questo:

CODE Portage informa l'utente della presenza di elementi notizia
 * IMPORTANTE: 2 elementi notizia devono essere letti per il repositorio 'gentoo'.
 * Usare eselect news per leggere gli elementi notizia.

Gli elementi notizia sono stati creati per fornire un mezzo di comunicazione affinché i messaggi critici siano notificati agli utenti attraverso l'albero rsync. Per gestirli, usare eselect news. L'applicazione eselect è un'applicazione Gentoo che fornisce un'interfaccia di gestione comune in vista dei cambiamenti e delle operazioni 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

Warning
Do not select any of the the 17.1 profiles until reading the corresponding 17.1 news item. This profile is experimental and requires special migration instructions.

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.

È possibile vedere quale profilo sta attualmente usando il sistema con eselect, ora usare il modulo profile:

root #eselect profile list
Destinazioni per il link simbolico ai profili disponibili:
  [1]   default/linux/amd64/13.0 *
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
Nota
La risposta del comando è giusto un esempio e cambia con il tempo.

Come si può vedere, ci sono anche sotto profili per i desktop disponibili per alcune architetture.

Warning
Profile upgrades are not to be taken lightly. When selecting the initial profile, make sure to use profile corresponding to the same version as the one initially used by stage3 (e.g. 13.0). Each new profile version is announced through a news item containing migration instructions. Make sure to read it and follow them before switching to a newer profile.

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


No-multilib

Per avere un ambiente 64-bit puro, senza alcuna applicazione 32-bit, usare un profilo no-multilib:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0 *
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
  [5]   default/linux/amd64/13.0/no-multilib

Selezionare il profilo no-multilib:

root #eselect profile set 5
root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
  [5]   default/linux/amd64/13.0/no-multilib *

systemd

Coloro che desiderano usare systemd come sistema di init dovrebbero selezionare un profilo che contenga systemd nel nome:

root #eselect profile set default/linux/amd64/13.0/systemd
root #eselect profile list
Available profile symlink targets:
  [10]  default/linux/amd64/13.0/developer
  [11]  default/linux/amd64/13.0/no-multilib
  [12]  default/linux/amd64/13.0/systemd *
  [13]  default/linux/amd64/13.0/x32
  [14]  hardened/linux/amd64
Tip
Come appena visto, i nomi completi dei profili possono essere usati al posto del valore numerico associato ai profili.


Nota
Il sotto profilo developer è dedicato ad uno sviluppatore Gentoo Linux e non va considerato come una scelta per l'utente qualsiasi.

Aggiornare il @world set

A questo punto, se il nuovo profilo di sistema è stato scelto, è saggio aggiornare il @world set (insieme mondo) del sistema così che una base possa essere stabilita per il nuovo profilo.

Il seguente passo è necessario per chi ha scelto un profilo con systemd nel titolo (dato che tutti gli stage tarball ufficiali di Gentoo usano OpenRC come sistema di init predefinito), mentre resta opzionale per gli altri profili:

root #emerge --ask --update --deep --newuse @world
Tip
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/13.0 comporterà l'aggiornamento di veramente pochi pacchetti, mentre
  • selezionare default/linux/amd64/13.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.

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 -qt4 -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 ..."
Nota
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 /usr/portage/profiles/use.desc.

root #less /usr/portage/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
FILE /etc/portage/make.confAbilitare USE per un sistema basato su KDE con il supporto DVD, ALSA e scrittura CD
USE="-gtk -gnome qt4 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 -*:

FILE /etc/portage/make.confIgnorando le opzioni predefinite di USE
USE="-* X acl alsa"
Attenzione
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.


Ora locale

Scegliere l'ora locale per il sistema. Cercare le ore locali disponibili su /usr/share/zoneinfo/, poi la si scriva nel file /etc/timezone.

root #ls /usr/share/zoneinfo

Supposto che la scelta dell'ora locale sia Europe/Brussels:

root #echo "Europe/Brussels" > /etc/timezone

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.

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

Configurare le lingue

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.

Le lingue che un sistema dovrebbe supportare andrebbero menzionate 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) con i formati di carattere corrispondenti (per esempio UTF-8).

FILE /etc/locale.genAbilitare le lingue US e DE con i formati dei caratteri appropriati
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Attenzione
Raccomandiamo fortemente di usare almeno una lingua UTF-8 poiché alcune applicazioni possono richiederla.

Il passo successivo è eseguire locale-gen. Esso 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.

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
Opzioni disponibili per la variabile LANG:
  [1] C
  [2] POSIX
  [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
  [ ] (free form)

Con eselect locale set VALUE si possono impostare i valori locali corretti:

root #eselect locale set 9

Manualmente, ciò può essere fatto intervenendo sul file /etc/env.d/02locale:

FILE /etc/env.d/02localeImpostare manualmente le definizioni dei valori locali del sistema
LANG="de_DE.UTF-8"
LC_COLLATE="C"

Assicurarsi che un insieme di valori locali sia impostato, altrimenti il sistema presenterà avvertimenti ed errori durante la costruzione del kernel e dello sviluppo di altri software più avanti nell'installazione.

Ora ricaricare l'ambiente:

root #env-update && source /etc/profile && export PS1="(chroot) $PS1"

Abbiamo realizzato una completa Guida alla localizzazione per aiutare gli utenti lungo questo processo. Un altro interessante articolo è la guida UTF-8 per informazioni molto specifiche su come abilitare UTF-8 nel sistema.