
Nel panorama delle distribuzioni GNU/Linux si sa: ormai è possibile trovare una distribuzione adatta praticamente a qualunque tipo di esigenza. Esistono quelle orientate ai server, ai desktop, quelle con gestione automatizzata dei pacchetti e delle risoluzione di tutte le dipendenze (pensiamo ad esempio a Debian e ai suoi derivati o SuSE e il suo Yast) e quelle che lasciano invece l'onore (e alcune volte l'onere) di provvedere alla risoluzione manualmente (come la Slackware).
Fra le distribuzioni fornite di tool per la gestione dei pacchetti, la stragrande maggioranza opera con due tipologie di precompilati:
-RPM – inventato dalla distribuzione Red Hat con una storia più che decennale alle spalle e utilizzato adesso da molte distribuzioni da essa derivate e non solo (basti pensare che lo adotta anche la SuSE che deriva dalla Slackware).
-DEB – la risposta della distribuzione Debian, che aveva soprattutto necessità di adattare i precompilati al tool APT e prevede, tra l'altro, fra le varie opzioni, numerosi indicatori dello stato dei pacchetti: a differenza di RPM che propone il lapidario installato e non installato, i pacchetti in DEB possono essere anche solo configurato, non completamente installato, ecc...
I vantaggi di un pacchetto in binario sono evidenti: essendo distribuiti nella forma zero/uno, possono essere utilizzati direttamente dal computer senza che questi abbia la necessità di “tradurli” tramite compilatori e interpreti, come accade invece per i sorgenti: alla compilazione (che talvolta può durare ore) ci ha già pensato infatti chi ha fornito il pacchetto.
Di contro, occorre però trovare software pacchettizzato per la propria macchina poiché non tutti i processori interpretano i binari allo stesso modo: un i386 compatibile non ha gli stessi parametri di un m68k e derivati implementato dalla Apple, inoltre per quanto vi possano essere pacchetti già compilati per qualsiasi tipo di calcolatore, è impossibile che questo sia ottimizzato come lo sarebbe se il pacchetto fosse stato compilato dalla macchina a cui è destinato (a meno che ovviamente la macchina sia esattamente lo stesso modello), inoltre, quando si compila è possibile dare delle direttive specifiche, manipolando il risultato ottenuto dal codice sorgente.
Infine, come mi ha ricordato un amico del forum Gentoo, sulle distribuzioni binarie possono capitare dei piccoli errori dovuti all'integrazione di pacchetti compilati per librerie differenti non del tutto compatibili (funzioni rimosse o che cambiano argomenti ecc.). Invece quando si ricompila ciò: 1) o non capita 2) o comunque è facile accorgersene poiché non si riesce a installare...
...questo è uno dei motivi per cui conviene sempre compilare anche programmi mastodontici come OOO ;-)
A questo punto può sorgere una domanda: perché non crearsi una distribuzione compilata direttamente sul momento, “a caldo”, che tra l'altro risulterebbe sicuramente tecnicamente più trasparente e garantita open source (dato che opera direttamente sui sorgenti)?
In linea teorica ciascuno è libero di farlo, occorre prelevare i vari sorgenti, magari dai siti ufficiali, compilarli, assemblarli e configurarli perché possano operare armonicamente tutti insieme, come è descritto ad esempio nelle guide di
Linux From Scratch, ma ciò significa spesso un lavoro lungo, complesso e per i più tedioso.
É qui che occorre un colpo di genio che permetta di ottenere il massimo col minimo sforzo: perché non unire i vantaggi di un sistema compilato ad hoc, con uno strumento che, pur lasciandoci libertà di scelta, lo gestisca comunque in maniera semi-automatizzata, a cui delegare lavori tediosi, come ad esempio il reperimento del software giusto e la gestione delle dipendenze?
L'idea è buona ed è stata realizzata in maniera proficua (tralasciano progetti semi scomparsi come Sorcerer Linux) da due gioiellini di O.S. capaci di soddisfare sia gli amanti dei sistemi GNU/Linux che quelli che stimano il lavoro dei guru di Berkley e preferiscono quindi un sistema *BSD:
-Gentoo Linux
-FreeBSD
Gentoo Linux è una distribuzione compilabile quasi da zero, tramite un tool molto evoluto, Portage, capace di gestire l'amministrazione dei pacchetti a partire dal codice sorgente.
FreeBSD (a cui Gentoo si è ispirata, tramite il lavoro del suo fondatore, Daniel Robbins) possiede un sistema gestionale intelligente: i Ports tramite i quali è possibile compilare singoli pacchetti o anche l'intero sistema, utilizzando semplici comandi, forse meno automatizzati e centralizzati di quelli di Portage, ma comunque molto efficaci.
La quantità di software disponibile nativamente basterebbe da sola a dimostrare che Portage, così come i Ports, non sono un vezzo da geek un po' maniaco, ma una realtà basata su un sistema di gestione molto serio, da molti ritenuto migliore di APT o dei vari gestori di RPM.
Dando un'occhiata al database dei pacchetti ufficiali:
http://packages.gentoo.org/categories
e
http://www.freebsd.org/ports/categories-alpha.html
è possibile trovare più di 10.000 pacchetti per ciascun sistema, una vera manna che, in fatto di qualità e quantità, non ha niente da invidiare alle soluzioni commerciali più complete!
A questo punto, dopo averne parlato, mettiamoci all'opera per sperimentarle dal vivo...la mia personale esperienza sul campo mi spinge a confermare che:
L'nstallazione di Gentoo è più lunga e complessa di FreeBSD, ma poi è facile sia amministrare il sistema che effettuare la relativa manutenzione (Portage è estremamente automatizzato).
Il processo di installazione di FreeBSD è più semplice e più guidato, ma poi il sistema è più difficile da amministrare e aggiornare (la gestione dei Ports è solo semi-automatizzata e a volte troppo verbosa).
A titolo meramente esemplificativo:
In Gentoo aggiorno l'intero sistema con i seguenti comandi:
#emerge --sync
#emerge -uDN world
In FreeBSD c'è più di un modo per aggiornare i Ports, una serie di comandi per aggiornare l'intero sistema, una continua richiesta di varie possibili ottimizzazioni in fase di compilazione che ci obbligano man mano a stare fisicamente davanti al pc; inoltre, pur essendo ben documentato nel sito ufficiale, non è lontanamente paragonabile alla quantità di howtos, manuali, ecc... che sono disponibili per Gentoo e più in generale per il mondo GNU/Linux.
di contro però:
FreeBSD posso installarlo in poco tempo e se mi stufo di compilare posso utilizzare, a mia discrezione, una vasta gamma di precompilati alternativi, che Gentoo, per sua politica, non fornisce poiché considerati deprecabili e contrari alla propria filosofia (discorso a parte per i pacchetti *NIX di software proprietario, come Real One Player, Plug-in Macromedia Flash, Java VM, ecc...).
Vediamo adesso le differenze più sostanziali di Gentoo e FreeBSD, che sono poi anche quelle fra GNU/Linux e *BSD:
-le licenze:
Gentoo è in licenza GPL; FreeBSD in BSD; tralasciando le varie guerre di religione pro o contro l'una o l'altra e semplificando al massimo, la GPL fornisce il sorgente e la possibilità di modificarlo, a patto che le modifiche siano rilasciate a loro volta tramite GPL; la licenza BSD, invece, permette a chi modifica un sorgente di non divulgare le modifiche e di utilizzare anche licenze di tipo commerciale per i prodotti così ottenuti.
-il modo di vedere il mondo, per esempio:
-le partizioni hanno nomi diversi (hdx per Gentoo (e tutti i sistemi Linux), adxsx per FreeBSD);
-la swap è separata tramite partizione effettiva in Gentoo, mentre in FreeBSD è virtuale ed è indicata con una lettera;
-il kernel è molto diverso, hanno entrambi dei sistemi modulari caricabili, ma sono comunque ben diversi, così come i relativi comandi (in Linux possiamo utilizzare modprobe, in FreeBSD kldload e i moduli risiedono in /boot/kernel);
-i filesystem variano molto...in Linux abbiamo tanti tipi di scelta: ext2, ext3, reiserfs, xfs, e tanti altri, in FreeBSD sostanzialmente solo ufs;
-il supporto hardware:
indubbiamente pende più a favore di Linux (basti pensare che vengono utilizzati i moduli ALSA e l'Open Sound System è considerato deprecato, mentre su FreeBSD esiste solo quello) la differenza è evidente sia per l'hardware supportato dal kernel sia per la disponibilità di driver proprietari.
-lo sviluppo e la performance:
volendo tirare le somme, Gentoo (e così Linux) è più indicato come workstation desktop e per tutti quelli che desiderano testare anche pacchetti dell'ultima ora creati qua e là nel globo, spesso sistemati a suon di patch; FreeBSD (e i sistemi *BSD in generale) è più performante come server, ha uno sviluppo più lineare (c'è un ben distinto team dietro ogni lavoro e release) e meno caotico, che paga però in termini di varietà, documentazione e vivacità di sperimentazione.
-tanto (ma proprio tanto) altro.
Comunque queste considerazioni sono solo a carattere prescrittivo, la percezione che si ha viene in buona parte solo dopo aver testato davvero il O.S., mettiamoci quindi all'opera, invece dei soliti howto reperibili via web, vi esporrò un esempio di situazione reale:
Possiedo due hard disk, il primo da 40 GB e il secondo da 160 GB, intendo utilizzare Windows XP, del quale non posso fare a meno dato che c'è il corso di lingue De Agostini installato, in licenza proprietaria, il Macromedia Flash, proprietario anch'esso, e i giochi che sono uno scoglio quasi insormontabile fuori dal monopolio Windows.
Poi desidero utilizzare Gentoo e FreeBSD per utilizzarli come sistemi operativi principali: workstation e webserver per il mio piccolo sito domestico; Ubuntu per avere tanti pacchetti in binario e utilizzarli subito, decidendo poi quale installare poi sui O.S. principali e infine Fedora, per poter studiare sul libro del mio professore che è parecchio intransigente a riguardo.
Infine sarebbe utile un porto franco in FAT32 dove scambiare allegramente dati da un punto all'altro con possibilità di aggiornarli e sovrascriverli.
Prendiamo dunque un programma di partizionamento, per esempio QT parted (open source) in una Knoppix, oppure Partition Magic in floppy (che però non è open source), Partition Manager, ecc... e creiamo la tabella delle partizioni, ad esempio così:
possiamo creare le partizioni e farle formattare direttamente dal programma oppure crearle lasciandole non formattate (l'apposito filesystem verrà impostato direttamente nell'installazione dei vari sistemi operativi), per limitare la confusione è opportuno crearli già grazie al partizionatore: anche se poi li riformatteremo comunque, sarà più difficile confondere le partizioni.
Il primo disco (visto come hda per Gentoo, acd0 per FreeBSD) è in NTFS e vi installeremo Windows XP (impostiamo nel BIOS come first boot il lettore cd/dvd, inseriamo il cd di installazione e seguiamo la procedura guidata, nel programma di installazione selezioniamo il disco da 40 GB circa e formattiamolo in NTFS, ecc...).
Il secondo disco viene così suddiviso:
hdb1 (equivalente a acd1s1 in FreeBSD) = /boot della Gentoo
hdb2 = / di Gentoo (ho preferito non creare la partizione di boot per evitare che col tempo possa diventare di grandezza insufficiente dato che faccio un uso massiccio di bootsplash in file system reiserfs
hdb3 = spazio destinato a FreeBSD (chiamato acd1s3) in file system ufs, diviso (non si vede nello schreenshot) in acd1s3a per swap e acd1s3b per /
hdb5 = (iniziamo con le partizioni logiche) = swap per Gentoo e Ubuntu (ho preferito non condividere le swap anche con Fedora per avere maggiore indipendenza)
hdb6 = partizione in FAT32, il “porto franco” dove scambiare e scrivere dati con tutti i SO
hda7 = / di Ubuntu
hdb8 = swap di Fedora
hdb9 = / di Fedora
Tramite il partizionatore formattiamo hdb6 e riavviamo il sistema col cd di Ubuntu nel lettore, installiamola in hdb6 con swap in hdb5
Inseriamo poi il DVD di Fedora e installiamo il sistema in hdb9 con swap in hdb8
L'installazione di entrambi i sistemi operativi è tradizionale, semplice e intuitiva, in ogni caso è possibile consultare la relativa documentazione nei siti:
http://www.ubuntulinux.org
e
http://fedora.redhat.com .
Adesso concentriamoci su FreeBSD, inseriamo il cd di installazione e riavviamo il computer, visualizzeremo una schermata di benvenuto in formato testo, pigiamo invio e entreremo nel menu di benvenuto di sysinstall, come visualizzato nello schreenshot:
selezioniamo “Keymap” per impostare il layout di tastiera italiano, poi “Standard” e iniziamo un'installazione veloce, al menu “Select Driver(s)” spuntiamo ad1 (ovvero il secondo disco che Linux chiama hdb) e entriamo nel programma di partizionamento interno, simile a questo schreenshot:
scegliamo di creare due slice in ad1s3, la prima identificata con la lettera “a”, ovvero ad1s3 a sarà destinata allo swap (sono consigliabili almeno 512 MB) la seconda, ad1s3b sarà per la radice / di FreeBSD.
Non curiamoci del boot loader, sia se l'installiamo o meno, sarà comunque sovrascritto dal GRUB della Gentoo (che si occuperà dell'avviamento dei cinque sistemi operativi).
Nel menu della scelta del pacchetto software:
scegliamo di installare il sistema minimale, in questo modo, l'aggiornamento dal Web sarà meno massiccio e avremo pacchetti più aggiornati, inoltre installeremo solo quello che ci serve;
terminata l'installazione scegliamo l'interfaccia ethernet:
e configuriamola (molti provider italiani forniscono il supporto per il comodo DHCP);
adesso selezioniamo il time zone (in questo caso, data la “convivenza” è meglio scegliere “local”), il tipo di mouse, la password di root eventuali utenti con permessi limitati, ecc...
Fine!
Torneremo a riparlare di FreeBSD quando saremo in grado di riavviarlo, ovvero dopo l'installazione della Gentoo e del relativo GRUB.
Installiamo la Gentoo:
-procuriamoci la iso del cd live minimalista di Gentoo da:
http://www.gentoo.org/main/en/where.xml
-masterizziamola su cd e riavviamo:
-alla schermata di benvenuto possiamo impostare il layout italiano, mentre con F1 e F2 possiamo visualizzare ulteriori opzioni
-controlliamo la data col comando:
#date
e in caso modifichiamola con:
#date mese-giorno-ora-anno
per esempio se è il 15 Dicembre 2006 ore 11 e 27, diamo:
#date 121511272006
-carichiamo eventuali moduli di periferiche esotiche, obsolete o per qualche ragione non riconosciute in fase di avvio:
#modprobe nomemodulo
per esempio per la mia scheda audio:
#modprobe snd-via82xx
-configuriamo la rete tramite:
#net-setup eth0 (o anche eth1 se abbiamo più schede ethernet), possiamo anche utilizzare il comodo DHCP (se il provider lo fornisce)
-diamo uno sguardo alle partizioni per vedere se è tutto ok:
#cfdsik
-costruiamo il file system:
#mke2fs /dev/hdb1 (ext2 per /boot, è una scelta saggia perché ext2 è il file system più testato, anche se meno performante)
#mkreiserfs /dev/hdb2 (reiserfs in /)
#mkswap /dev/hdb5 (per creare la swap, passaggio facoltativo se è stata già impostata precedentemente da Ubuntu)
-montiamo tutto:
#swapon /dev/hdb5 (attivazione della swap)
#mount /dev/hdb2 /mnt/gentoo
#mkdir /mnt/gentoo/boot
#mount /dev/hdb1 /mnt/gentoo/boot
-copiamo lo stage 1, ovvero il nocciolo della Gentoo che ci permetterà le operazioni di base per l'installazione e la compilazione:
#mkdir /mnt/gentoo/temporanea
#cd /mnt/gentoo/temporanea
#wget -c
http://gentoo.osuosl.org/releases/x86/2006.1/stages/stage1-x86-2006.1.tar.bz2 (possiamo sostituire l'indirizzo con uno dei tanti mirror presenti su:
http://www.gentoo.org/main/en/mirrors.xml )
#cd /mnt/gentoo
#tar -xvjpf /mnt/gentoo/temporanea/stage1-x86–2006.1.tar.bz2
#mount -t proc none /mnt/gentoo/proc
-un mirror di installazione più performante tramite mirrorselect:
#emerge mirrorselect
#mirrorselect -s5 (selezionare i primi 5 top mirror)
#cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
-diventare root con chroot:
#chroot /mnt/gentoo /bin/bash (in maniera che la shell predefinita sia la bash)
-aggiornare l'ambiente:
#env-update; source /etc/profile
-aggiornare i pacchetti di Portage:
#emerge --sync
e aspettiamo pazientemente che l'operazione sia portata a termine
-impostare il compilatore:
#nano /etc/make.conf (possiamo lasciare invariate le opzioni, modificando solo i386 in i586 e i686 al secondo del proprio processore)
-iniziamo a installare il nocciolo del sistema:
#cd /usr/portage
#scripts/bootstrap.sh
e
#emerge -e system
mettiamoci il cuore in pace che questa fase durerà molto (spesso delle ore), quindi andiamo a far altro...
-aggiorniamo tutto:
#emerge -uDN world
-settiamo il time zone:
#ln -sf /usr/share/zoneinfo/tuazona /etc/localtime
-creare le directory del mount:
#cd /mnt
#mkdir dvd
#mkdir dvd2
#mkdir fat32
#mkdir ntfs
#mkdir fedora
#mkdir ubuntu
#mkdir floppy
#mkdir freebsd
-creare /etc/fstab:
#nano /etc/fstab
e editiamo, secondo il nostro schema, così:
/dev/hdb1 /boot ext2 auto,noatime 1 2
/dev/hdb2 / reiserfs noatime 0 1
/dev/hdb5 none swap sw 0 0
/dev/hdc /mnt/dvd auto noauto,ro 0 0
/dev/hdd /mnt/dvd2 auto noauto,ro 0 0
/dev/hdb /mnt/fat32 vfat auto 0 0
/dev/hda1 /mnt/ntfs ntfs auto 0 0
/dev/hdb7 none swap sw 0 0
/dev/hdb9 /mnt/fedora ext3 auto 0 0
/dev/hdb8 /mnt/ubuntu ext3 auto 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0
/dev/hdb4 /mnt/freebsd ufs noauto 0 0
!# NOTE: The next line is critical for boot!
proc /proc proc defaults
-installiamo il kernel:
#emerge gentoo-sources (ma anche #emerge vanilla-sources se vogliamo il kernel originale non patchato per Gentoo)
adesso possiamo configurarlo grazie al comodo tool genkernel:
#emerge genkernel
#genkernel --menuconfig all
scegliamo i supporti desiderati (un occhio particolare al sottomenu “file system” importante per poter interagire con gli altri O.S.)
-utilizziamo coldplug per il riconoscimento automatico all'avvio
#emerge coldplug
#rc-update add coldplug boot
-installiamo altri pacchetti indispensabili:
#emerge syslog-ng
#rc-update add syslog-ng default
#emerge vixie-cron
#rc-update add vixie-cron default
#emerge hotplug
#rc-update add hotplug default
-settiamo i parametri di sicurezza e gli utenti:
#passwd (e inseriamo la password desiderata per root)
adesso possiamo inserire un utente semplice per l'utilizzo giornaliero:
#useradd pinguinello -m -G users,wheel,audio -s /bin/bash
#passwd pinguinello
-settiamo il networking:
#cd /etc
#echo 127.0.0.1 miamacchina.da.me miamacchina localhost> hosts
#sed -i -e 's/HOSTNAME.*/HOSTNAME="miamacchina"/' conf.d/hostname
#hostname miamacchina
#hostname -f miamacchina.da.me
-impostiamo il dhcp:
in caso di DHCP, possiamo:
#nano /etc/conf.d/net
scriviamo: eth0=”dhcp”
e diamo:
#rc-update add net.eth0 default
-emergiamo grub e configuriamolo:
#emerge grub
#grub
grub> root (hd1,1)
grub> setup (hd0)
grub> quit
dove hd0 è il primo disco (hda per intenderci)
hd1 è il secondo disco (hdb)
il secondo numero dopo la virgola rappresenta la partizione e si parte da zero
(all'inizio è facile fare confusione)
hd0,0 è la prima partizione del primo disco (hda1)
hd0,1 = hda2
hd0,2 = hda3
hd1,0 = hdb1
hdb1,1 = hdb2
e così via
-configuriamo grub:
#nano /boot/grub/grub.conf
con qualcosa del genere:
default 3
timeout 15
splashimage=(hd1,0)/grub/splash.xpm.gztitle=Gentoo Linux
root (hd1,0)
kernel /kernel-genkernel-x86–2.6.17-gentoo-r4 root=/dev/hdb1 ro
initrd /initramfs-genkernel-x86–2.6.17-gentoo-r4title=FreeBSD
root (hd1,3,b)
kernel /boot/loadertitle=Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
boottitle=Ubuntu
root (hd1,7)
kernel /boot/vmlinuz-2.6.15–23–386 root=/dev/hdb8 ro
initrd /boot/initrd.img-2.6.15–23–386
boot
title=Fedora
root (hd1,8)
kernel /boot/vmlinuz-2.6.15–1.2054_FC5 root=/dev/hdb9 ro vga=791 splash=silent
initrd /boot/initrd-2.6.15–1.2054_FC5.img
per conoscere meglio la sintassi di grub è opportuno leggere le pagine di man:
#man grub (da segnalare la parte dedicata al boot di FreeBSD)
-completiamo l'installazione:
#exit, cd /
#umount /mnt/gentoo/proc /mnt/gentoo
#reboot
-comandi di sopravvivenza in Gentoo (non troppi per non rovinarvi il piacere di scoprirli)
per installare i pacchetti:
#emerge nomepacchetto
per disinstallare i pacchetti:
#emerge -C nomepacchetto
per aggiornare il sistema:
#emerge --sync
#emerge -uDN world
per cercare un pacchetto:
#emerge -s parolachiave (per una ricerca più approfondita anche nella descrizione, utilizzare l'opzione -S)
ad esempio possiamo adesso installare il server X e KDE:
#emerge xorg
#emerge kde
in caso esistesse il binario possiamo installarlo con:
#emerge nomepacchetto-bin
Ritorniamo a FreeBSD:
Adesso che finalmente possiamo avviare FreeBSD col GRUB di Gentoo, vediamo qualche dritta
una volta loggati la shell utilizzata è troppo minimalista, impostiamo la più familiare bash:
#chsh -s /usr/local/bin/bash root
per installare i pacchetti:
metodo dei binari:
#pkg_add -r nomepacchetto ovvero l'equivalente del gentooista #emerge nomepacchetto-bin
#pkg_deinstall nomepacchetto per disinstallarlo
per installare dai sorgenti:
entriamo nell'albero dei ports:
#cd /usr/ports
#ls (e otteniamo le categorie)
#cd ./categoria/pacchetto
#make install clean
per cercare un pacchetto:
da /usr/ports
#make search key=nomepacchetto
-aggiornare i ports
ci sono diversi modi, quello che preferisco io è utilizzando cvsup:
#pkg_add -r cvsup (solo per versioni di FreeBSD antecedenti alla 6.1, da questa release in poi è incluso direttamente nel base system)
#cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/example/cvsup/ports-supfile
NOTA: “cvsup.FreeBSD.org” può essere sostituito con un mirror
-aggiornare un pacchetto:
#portupgrade -P nomepacchetto (l'opzione P da la priorità al binario rispetto al sorgente, aumentando la velocità di aggiornamento) è l'equivalente di #emerge -uk nomepacchetto di Gentoo (la -P di FreeBSD è l'equivalente della -k di Gentoo; così come -PP è l'equivalente di -K che specifica: “O il binario o niente!”.
-aggiornare tutto il sistema:
#portupgrade -all (come #emerge -uDN world in Gentoo)
NOTA BENE: a differenza di Gentoo che una volta partita la compilazione non si interrompe fine a quando termina (o c'è un errore), in FreeBSD c'è molta più verbosità di conseguenza le impostazioni di compilazione vengono richieste più volte durante l'aggiornamento, non conviene quindi lasciare il sistema ad aggiornare senza controllare almeno ogni quarto d'ora.
Conclusioni
Con questo lungo articolo, ho cercato di fornire le basi per l'installazione e l'utilizzo di Gentoo e FreeBSD, evidenziando le analogie e le differenze di questi due ottimi sistemi operativi e spiegando al contempo come farli convivere in un pc ibrido.
Spero sia stato di vostro gradimento!
Buon divertimento!
P.S. se trovate imperfezioni e/o errori, vi prego di comunicarmelo nei commenti, oppure di modificare direttamente la pagina, grazie.
Da Free BSD? 6.1 esiste csup già incluso nel base system, è inutile installare cvsup :)
aggiornamento del portage tree con il comando emerge --sync il metodo senza — è deprecato.