Vai al menù, saltando i contenuti (access key "m")
Appunti su Gentoo Linux
Installazione di base
Tratterò ora l'installazione della distribuzione Gentoo Linux sul mio PC Desktop. Per installazione base si intende una installazione minimale senza applicazioni e senza interfaccia grafica; questi programmi saranno installati in un secondo momento.
Prima di tutto dobbiamo controllare di avere tutto a disposizione e aver deciso gli aspetti fondamentali della nostra installazione. Tratterò solo il caso più semplice: PC con architettura x86_64 (anche detto amd64), scheda grafica nVidia e connessione flat ad internet tramite router (sarebbe il mio EeeBoxPC che ha sostituito il mio glorioso Pentium III). Si richiede inoltre una conoscenza basilare dell'hardware e del funzionamento di un PC, delle reti di computer e di internet, un po' di pazienza ed infine un po' di coraggio. Non tratterò una installazione dual boot Windows/Linux bensì faremo in modo che il nostro PC abbia un solo sistema operativo: Gentoo Linux.
Innanzitutto dobbiamo avere a disposizione il CD per l'installazione di Gentoo. Andate sul sito www.gentoo.org, scaricate la ISO più recente del Minimal CD/Install CD (MICD) e masterizzatela. Vi consiglio di masterizzarla su CD-RW in modo da poterlo tenere aggiornato ogni volta che esce una nuova versione del CD di installazione. Scegliete ovviamente quella per amd64.
Andate ora su www.sysresccd.org, scaricate l'ultima versione stabile di SystemRescueCd (SRCD) e masterizzatela anch'essa su un CD-RW per le stesse ragioni di prima. Questo CD è un CD di ripristino basato sul kernel e le applicazioni di Linux. Ci servirà per partizionare il disco in maniera semplice, intuitiva e sicura. In realtà avremmo potuto scaricare una sola ISO, il Live DVD di Gentoo, ma sarebbe stato lungo (circa 3600 MB contro i circa 550 MB (170 + 380) delle due ISO precedenti) e inoltre, secondo me, è meglio avere un CD di ripristino specifico piuttosto che un corposo Live DVD.
Manca poco per cominciare l'installazione. Dobbiamo solamente decidere
come partizionare il nostro hard-disk. Per farlo dobbiamo conoscere un
minimo
l'albero
delle directory nei sistemi Linux. Qui vorrei aggiungere una piccola
riflessione... L'albero delle directory di Linux è indubbiamente
abbastanza complesso rispetto a quello che siamo abituati a vedere, per
esempio, su Windows. I vantaggi di questa organizzazione erano molti 30
anni fa ma oramai possono essere ottenuti senza una organizzazione così
complessa. Una distribuzione Linux,
GoboLinux, sta cercando di cambiare
la situazione e rendere il Sistema GNU/Linux meglio organizzato, più
moderno, più semplice e intuitivo. Sarebbe interessante se Gentoo
adottasse questa filosofia, ovviamente in maniera graduale, ma credo che
dovranno passare molti anni...
Decidiamo quindi lo schema delle partizioni che andremo ad utilizzare. Io tendo ad usare questo schema anche se un po' complesso:
/dev/sda1 /boot 16.0 MB /dev/sda2 swap 512.0 MB /dev/sda3 / 16.0 GB /dev/sda4 (extended partition, contenitore di partizioni logiche) /dev/sda5 /home 12.0 GB /dev/sda6 /mnt/data resto
Stampate questa pagina e le successive in modo da poterle consultare anche a PC spento o sotto installazione.
È sufficiente stampare fino al punto in cui si spiega come configurare la rete perché dopo sarà possibile
navigare di nuovo su internet e raggiungere quindi questo sito.
Una lettura da affrontare parallelamente è il classico Gentoo Handbook.
Si comincia! Per prima cosa partizioniamo l'hard-disk con lo schema sopra riportato usando Gparted.
Abilitate il boot da CD/DVD del PC (solitamente accedendo alla pagina di configurazione del BIOS).
Al prompt di SRCD premere invio. Quando il terminale sarà pronto
ad accettare comandi vedrete anche una serie di informazioni basilari.
Eseguite il comando wizard che farà partire l'interfaccia grafica. Dopodiché fate partire dall'ambiente grafico il programma gparted.
Se state reinstallando spesso capita che la tabella delle partizioni
faccia delle cose strane, una di queste è l'inversione dell'ordine
delle partizioni. Basta eseguire fdisk, comandi avanzati con x,
riordinare le partizioni con f ed infine scrivere il risultato con w.
Se non avete ancora configurato il vostro router per l'accesso ad internet potete farlo ora con il SRCD.
Non è scopo di questa guida trattare questo argomento
comunque sostanzialmente basta avere un NIC funzionante, settate l'IP statico
con i DNS o il DHCP, poi usate Firefox ... interfaccia web del dispositivo... provare a navigare...
Introduzione al sistema Linux, agli utenti, all'utente root ecc... da mettere all'inizio...
Comincia l'installazione di Gentoo!
Chiudere gparted, uscire da X, riavviare il PC inserendo MICD. Al prompt scegliere gentoo (se si aspetta parte comunque da solo). Seguite le istruzioni a video finché non avrete il prompt.
Prima di continuare, siccome l'installazione può durare anche un giorno intero, è bene sapere come interromperla a metà strada e poi riprenderla. Finché il sistema non è avviabile, cioè non si è installato il kernel e un boot loader, si dovrà seguire la seguente procedura per interrompere la procedura di installazione
- uscire dal chroot con exit
- cd
- umount -l /mnt/gentoo/dev
- umount -l /mnt/gentoo/proc
- umount -l /mnt/gentoo/boot
- umount -l /mnt/gentoo
- halt o reboot
E si dovrà seguire quest'altra procedura per riprendere un'installazione interrotta
- Avviare il PC con il MICD
- Riconfigurare la rete se non funziona
- Montare swap, /, /boot
- Impostare date e ora
- Montare proc e dev
- chrooting nel nuovo ambiente
Il primo passo è avere la rete funzionante. Avendo un router con DHCP dovrebbe già funzionare tutto. Provate con il comando
ping www.google.com
Se non va usate net-setup eth0
e seguite le istruzioni a schermo. E se ancora non va controllate se eth0 c'è (ifconfig
). Se non c'è significa che il kernel non ha riconosciuto la vostra scheda di rete. Controllate con lspci
il proprio NIC e vedere i moduli disponibili. Eventualmente caricarli con modprobe.
Ora non resta che attivare lo swap e montare le partizioni:
swapon /dev/sda2 mount /dev/sda3 /mnt/gentoo mkdir /mnt/gentoo/boot mount /dev/sda1 /mnt/gentoo/boot
Per non avere problemi di download con i server di Gentoo controlliamo la data e l'ora:
date date MMDDhhmmYYYY
Ora bisogna iniziare l'installazione vera e propria scaricando uno "stage3". Andare in /mnt/gentoo e scaricare stage3 con il browser links e scompattarlo
links http://www.gentoo.org/main/en/mirrors.xml
Scegliere un mirror e poi andare in andare in releases/amd64/autobuilds/
e scaricate la più recente (non hardened!). Si scarica premendo il tasto d (sono circa 150 MiB).
Se la vostra connessione ha problemi consiglio di usare wget anziché links perché ha il resume del file! (aspettare il timout oppure ctrl-c e rilanciare con -c. Se la troppa velocità fa cadere la connessione allora usare --limit-rate=70k ovviamente mettendo un limite che ritenete opportuno, poco meno del massimo della vostra connessione di solito.)
Infine non resta che scompattare il file dello stage3
tar xvjpf stage3-*.tar.bz2
Ora si passa all'installazione di portage, il sistema di gestione dei pacchetti di Gentoo. Per installarlo bisogna procedere come per lo stage3. Bisogna scaricare un archivio dai mirror di Gentoo (anche in questo caso meglio wget se avete problemi di connessione). Rimanere sempre nella directory /mnt/gentoo!
links http://www.gentoo.org/main/en/mirrors.xml andate su snapshots scaricate portage-latest.tar.bz2 (circa 40 MB) scompattatelo usando esattamente il comando tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
Ora potete cancellare i file scaricati
Ora bisogna specificare le "optimization flags" per il compilatore C/C++ (gcc). Aprite il file make.conf
nano -w /mnt/gentoo/etc/make.conf e inserite le seguenti righe CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j3"
Ora scegliete un buon mirror tramite l'utility mirrorselect
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
copiare i dns
cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
Montare proc e dev
mount -t proc none /mnt/gentoo/proc mount --rbind /dev /mnt/gentoo/dev
Ora possiamo finalmente spostarci nel nuovo sistema tramite il processo chiamato chrooting
chroot /mnt/gentoo /bin/bash env-update source /etc/profile export PS1="(chroot) $PS1"
Aggiornare portage.
emerge --sync
Se compare un messaggio che dice che c'è una versione aggiornata di portage, aggiornarlo con il comando emerge --oneshot portage
(senza mettere DEEP!)
Scegliere il profilo
eselect profile list eselect profile set <numero>
Configurare le variabili USE. Quelle di default sono tutte quelle del profilo scelto (file make.defaults) più quelle delle directory padre. Le use flag in più o in meno vengono registrate in make.conf a mano o con tool appositi. Non perdeteci troppo tempo. Di solito le use flag è bene impostarle man mano che si installano i vari software. Si vedono le use flag disponibili, si cerca di capire cosa fanno e si abilitano quelle necessarie o disabilitano quelle ritenute inutili. A questo punto forse conviene abilitare solo le use flag del proprio microprocessore: mmx, sse, sse2, sse3, ssse3 per la intel e mmxext, mmx2, 3dnow, 3dnowext per gli AMD. Per vedere quali sono supportate dalla vostra CPU guardate su Wikipedia e nel file /proc/cpuinfo.
Settare la localizzazione en_US.UTF-8 UTF-8 e it_IT.UTF-8 UTF-8 in /etc/locale.gen
e, dopo aver salvato, eseguire locale-gen
.
Creare anche il file /etc/env.d/02locale e metterci
LANG="en_US.UTF-8" LC_CTYPE="it_IT.UTF-8" LC_NUMERIC="it_IT.UTF-8" LC_TIME="it_IT.UTF-8" LC_COLLATE="it_IT.UTF-8" LC_MONETARY="it_IT.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="it_IT.UTF-8" LC_NAME="it_IT.UTF-8" LC_ADDRESS="it_IT.UTF-8" LC_TELEPHONE="it_IT.UTF-8" LC_MEASUREMENT="it_IT.UTF-8" LC_IDENTIFICATION="it_IT.UTF-8"
Infine
env-update source /etc/profile
Questo è quanto serve per avere un ambiente pienamente UTF-8 con lingua impostata su inglese ma con tutto il resto impostato su italiano (formato della carta, unità di misura, ecc...).
Purtroppo però se eseguite il comando locale first_weekday
otterrete 1, cioè domenica. Impostazione tipica inglese. Questo è un bug
che non è mai stato corretto e sembra che nessuno sia intenzionato a farlo.
Dovete fare la correzione a mano. Aprite il file
/usr/share/i18n/locales/it_IT
e nella sezione LC_TIME,
alla fine, prima della riga END LC_TIME inserite
... first_weekday 2 END LC_TIME
Ora, come al solito date locale-gen
e poi env-update
e infine source /etc/profile
.
A questo punto è possibile, ma non obbligatorio, ricompilare la toolchain! Cioè si può ricompilare le librerie e il compilatore C usando le opzioni specificate finora in modo da sostituire quelli non ottimizzati per la propria macchina forniti nello stage3.
cd /usr/portage/scripts nano -w bootstrap.sh (fare le modifiche che si vogliono) ./bootstrap.sh gcc-config x86_64-pc-linux-gnu-4.4.4 (cambiare la versione) source /etc/profile export PS1="(chroot) $PS1" emerge -1v libtool emerge -n gentoolkit revdep-rebuild --library libstdc++.so.5
Impostare la timezone
ls /usr/share/zoneinfo cp /usr/share/zoneinfo/Europe/Rome /etc/localtime
Ora manca solo l'installazione di un kernel e di un boot loader. Prima di compilare il kernel abbiamo bisogno degli strumenti necessari per conoscere a fondo il proprio sistema. Dopo averli installati prendete appunti sul vostro sistema.
emerge pciutils lspci lsmod per vedere i moduli caricati.
Scaricare i sorgenti del kernel
emerge gentoo-sources
Copiare, se lo avete, un vecchio .config nella cartella /usr/src/... (dove al posto dei puntini c'è la cartella dove risiedono i sorgenti del kernel appena installati) ed eseguite make oldconfig. Ora fate partire l'interfaccia per la scelta delle opzioni del kernel.
make menuconfig
Ora in base alle informazioni raccolte sul vostro sistema e alle vostre esigenze dovete scegliere le corrette opzioni per configurare il kernel prima di compilarlo. Prima o poi metterò un link al mio .config. Una volta finito chiudete menuconfig salvando le impostazioni.
Per compilare il kernel date i comandi
make && make modules_install (circa 30 min) cp arch/x86_64/boot/bzImage /boot/kernel_2011-07-17
Nel frattempo su un'altra console potete già cominciare a impostare il file /etc/fstab
/dev/sda1 /boot ext2 noauto,noatime 1 2 /dev/sda2 none swap sw 0 0 /dev/sda3 / ext3 noatime 0 1 /dev/sda5 /home ext3 noatime 0 1 /dev/sda6 /mnt/data ext3 noatime 0 1 /dev/cdrom /mnt/cdrom auto noauto,user 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Dare un nome al proprio pc (HOSTNAME) nel file /etc/conf.d/hostname
hostname="PIPPO"
Configurare la rete. Prima create lo script di avvio per la scheda di rete
cd /etc/init.d ln -s net.lo net.eth0 rc-update add net.eth0 default
Poi configuratelo aprendo il file /etc/conf.d/net (nano -w /etc/conf.d/net)
config_eth0=( "192.168.1.4/24" ) routes_eth0=( "default via 192.168.0.1" )
Aggiungere la rete all'avvio.
rc-update add net.eth0 default
Modificare il file /etc/hosts (nano -w /etc/hosts)
127.0.0.1 HOMY2.HOMYNET HOMY2 localhost ::1 localhost 192.168.1.3 HOMY.HOMYNET HOMY
Impostare la password dell'amministratore (root)
passwd
Aprire il file /etc/rc.conf (nano -w /etc/rc.conf) e controllare se c'è qualcosa che si vuole cambiare. Solitamente nulla.
Impostate il layout di tastiera da usare per la console (nano -w /etc/conf.d/keymaps). La lista di tastiere disponibili per la console si trava in /usr/share/keymaps.
keymap="it" windowkeys="YES" ...
Ora impostate l'orologio seguendo la guida apposita che trovate qui sotto. In breve:
ALT-F2 cp /etc/conf.d/clock /mnt/gentoo/etc/conf.d/ exit ALT-F1 nano -w /etc/conf.d/clock CLOCK="UTC" TIMEZONE="Europe/Rome" CLOCK_SYSTOHC="yes" date date MMDDhhmmYYYY hwclock --systohc --utc
Installare un logger di sistema. Il logger di sistema è un componente fondamentale di un sistema Linux. Tutti i messaggi inviati a /dev/log vengono letti da questo programma e opportunatamente scritti in uno o più file. Questa operazione chiaramente presenta un problema: le dimensioni dei file di log. Esistono programmi che si occupano di ripulire questi file e archiviarli e/o cancellarli con certi criteri (rotazione). Il logger standard di Linux è sysklogd che però non gestisce la "rotazione" dei file di log. Invece di installare altri programmi appositi per gestire la rotazione, come per esempio logrotate, è preferibile usare un altro logger di sistema. Il mio preferito è metalog. Il file di configurazione è /etc/metalog.conf ma le impostazioni di default sono già ottime.
emerge metalog rc-update add metalog boot
Installare un boot loader. LILO Boot Loader.
In /etc/bash/bash_logout decommentare la riga con il comando clear
- uscire dal chroot con exit
- cd
- umount -l /mnt/gentoo/dev
- umount -l /mnt/gentoo/proc
- umount -l /mnt/gentoo/boot
- umount -l /mnt/gentoo
- halt o reboot
- al boot togliere il cd in modo che l'avvio avvenga da hd