(Articolo del gennaio 2006)
Arch Linux: la soluzione definitiva


Sembra ieri quando, durante l'occupazione scolastica del novembre 1999, un compagno di liceo propose ad uno strano cd "piratato", con un pinguino sulla copertina ed una scritta che recitava: "Linux 6.1 red hat". Mi disse che quello era il sistema operativo degli Hacker, gliel'aveva regalato il tecnico del negozio dove aveva comprato il PC nuovo (con 2 hard disk e masterizzatore SCSI... sbav... sbav...). Bisognava però stare attenti perchè le versioni dispari erano instabili e quella era una 6.1! Ovviamente la differenza tra kernel e distribuzione non ci era molto chiara, probabilmente non l'aveva capita nemmeno il tecnico del negozio. (Ai tempi la versione corrente del kernel Linux era la 2.2.x. Quella instabile era invece la 2.3.x, che un giorno sarebbe diventata la 2.4.x)

In rete se ne sentiva parlare da tempo, ma fino a quel momento pensavo che fosse una specie di versione light gratuita di UNIX (light + unix -> linux), non avevo capito varie cose: cosa fossero le distribuzioni, i sorgenti da compilare, ma soprattutto, non capivo cosa c'entrassero gli GNU coi pinguinie...

Come tanti ragazzi della mia generazione sognavo di diventare un hacker, ma non avevo idea di come fare per diventarlo, ma ero relativamente sicuro era che tutti quei libri con scritto HACKING, simboli di pirati e codici alla matrix servissero a ben poco.
Un motto all'epoca ricorrente, che mi piacque fin da subito, era: "Gli Hacker lo fanno con poche istruzioni".
Dato che "fare hacking" su Windows mi sembrava sensato grosso modo come fare un balletto di danza classica con ai piedi dei "ferroni da stiro a carbonella di piombo fuso!", mi imbarcai in questa avventura.

Dopo varie peripezie: creazione di floppy di boot, partizionamenti, distruzioni di MBR, boot loader, stringhe da passare al kppp per connettersi ad Internet (i piĆ¹ anziani si ricorderanno dell'ATDX -> ATX3DX). Finalmente riuscii finalmente ad utilizzare con profitto la mia prima distribuzione Linux.

L'esaltazione di usare un sistema non Microsoft era tanta, ma non furono subito tutte rose e fiori: OpenOffice non c'era, Koffice non supportava i file doc di Word, StarOffice non riuscivo a scaricarlo con un modem 56k, l'automount non esisteva e Lopster (l'antenato di eMule e torrent) sarebbe arrivato solo qualche tempo dopo (mi toccava usare WinMX in emulazione con wine).
Una cosa però c'era già: i fanatici di GNOME e KDE che si scannavano tra loro su Usenet.

Dato che incominciavano a diffondersi virus, spyware, trojan, dialer e altre robacce per Windows decisi di stringere i denti.
In fondo ICQ funzionava, potevo chattare con i miei amici e parlare con persone che di Linux ne capivano qualcosa in più di me.

Da bravo lamer rimasi affascinato dai trojan, una volta ne fui anche ingenuamente vittima (grazie ad un certo Crow ed al suo firewall.exe)
Il mitico NetBus... utility molto comodao per amministrare computer da remoto ;-)

Quando chiedevo a qualche "hacker" come si facesse ad entrare nel PC di qualcuno senza trojan mi rispondevano sinteticamente: "telnet".
Sembrava quasi si trattasse di una potentissima forza oscura che solo una ristretta setta di eletti poteva a sottomettere al proprio volere.

Leggendo qualche e-zine (mi pare su Netrunner), svelai presto l'arcano e incominciai a far pratica. Ricordo di quando provavo a telnettarmi all'IP di vari server smtp per spedire qualche mail anonima, a quei tempi non perdevano molto tempo nella cura della sicurezza dei vari servizi... ed in fondo non facevo del male a nessuno.
Oggi se gli girano le scatole segnalano alla finanza pure i ping, un tempo la rete non era così isterica.

Ad un certo punto capii che la mia solida RedHat 6.1 era diventata vecchia e mi feci spedire da un ragazzo conosciuto su it.comp.os.linux.iniziare i 2 cd della Mandrake 7.2.
Fu amore a prima vista, era una distribuzione semplicissima ed esteticamente gradevole.
È demotivante quando vorresti fare tante cose ma non ci riesci... con Mandrake bastava un click per domare il sistema.

Le restai fedele fino alla versione 9.0 quando ebbi un ritorno di fiamma per la mia ex, informaticamente parlando ovviamente... Mi era arrivata l'ADSL e volevo aggiornare il software direttamente dalla rete, ma purtroppo non mi trovai particolarmente bene con urpmi.
RedHat 8 + apt4rpm mi fecero tornare lo spippolatore più felice di questo mondo.

Il tempo passava, iniziai a frequentare il LUG della mia città ed imparavo ogni giorno sempre più cose.

Insieme ad un mio amico feci addirittura da relatore ad un Linux Day. Ricordo quando ci presentammo con un iBook, ci accolsero subito benissimo, ma immediatamente arrivò il geek di turno che ci disse: "Wow ragazzi qui ci starebbe bene una bella Mandrake per PPC!". A quel punto ci guardammo fra di noi ed il mio amico disse: "Veramente qui c'è una Debian per PPC con kernel ricompilato e patchato da me... che in effetti sarei anche uno sviluppatore Debian (a tempo perso)".

Intorno a noi si accalcò un capannello di gente che sta sbavando, in quel momento capii che non ero più tanto newbie.

Incominciarono le lezioni di informatica del mio corso di laurea, dato che studiavo medicina, eravamo in pochi ad usare Linux e guarda caso il mio prof. usava Slackware (che a quei tempi mi sembrava una distro per masochisti).
Facemmo amicizia e finì, complice anche lo sputtanamento del database degli rpm della mia RedHat (non installate mai rpm pacchettizzati per altre distro!) e i troppi bug di Fedora Core 1, che tentai il grande passo verso la Slackware (mi sembra fosse la 9.1).

Aggiornata, veloce e stabilissima. Un altro mondo rispetto a RedHat, in un anno con Slackware imparai più cose che nei tre precedenti.
La Bash non mi faceva più "paura" e compilare kernel diventò ordinaria amministrazione.
A lungo andare però trovai delle difficoltà ad aggiornare ed installare nuovi pacchetti. Slapt-get e swaret (emerde vi consiglio di lasciarlo perdere) danno una bella mano, ma spesso ero costretto ad utilizzare sorgenti che poi pacchettizzavo con checkinstall.

Fu così che finii per cedere e passare a Debian.
Al boot non è un fulmine, c'è una ridondanza di script esagerata e per configurare XFree86 c'era da piangere in cinese! Però l'apt-get ci mette a disposizione un sacco di software abbastanza aggiornato.

In segreto ammiravo Gentoo: veloce e aggiornatissima, ma purtroppo incompatibile con le mie risorse hardware. Non avevo un processore che mi permettesse di compilare troppi sorgenti (so che esistevano anche i precompilati, ma uscivano solo con le varie release e a me piacerebbe avere anche OpenOffice aggiornato), in oltre mi fa fatica anche solo solo il pensiero di impiegare tutto quel tempo per effettuare l'installazione.

Un buona parte dei miei amici era o stava passando a Linux e naturalmente toccò a me installargli tutto e spiegarli e grandi linee come funzionasse.
Grazie a queste esperienze ebbi la possibilità di provare svariate altre distro: Fedora, SUSE, Ubuntu...
Nessuna di queste però mi soddisfaceva a pieno.

Debian iniziava a stancarmi: non aveva ancora il nuovo bellissimo fiammante KDE 3.4 e nemmeno OpenOffice2-beta e penso pacchettizzi in una maniera paranoica.
Perché fare 100mila pacchetti per un programma solo per aggiungere qualche plugin quando a volte si tratta solo di fare un binario di 50Kb più grande..?
Succedeva spesso che pacchetti deb di programmi come sylpheed, wesnoth e altri non presenti nei repository toccava rifarmeli da solo.
Col Sylpheed di Debian non mi funzionava il supporto per il GPG, mentre wesnoth compilato da me andava inspiegabilmente 2 volte più veloce rispetto a quello di Debian.

In oltre speculazioni filosofiche e software non dovrebbero mischiarsi più dello stretto necessario.
Non sopporto i discorsi tipo: questo pacchetto non ha una licenza free, non possiamo metterlo neanche nei non-free, scaricatevelo ed installatevelo da soli se la vostra coscienza ve lo permette...

Sdegnato da tutto ciò passai al FreeBSD (5.2.1).
Concettualmente si avvicinava all'idea di una Gentoo, a livello pratico forse era anche meglio per quanto mi riguardava.
Boot più veloce e tanti pacchetti precompilati, gestione delle directory è impeccabile (/usr/local/etc per i file di configurazione del software non incluso nel sistema di base...), i ports sono qualcosa di spettacolare e portupgrade funzionava egregiamente.
Mi restava però scomodo il fatto di dovermi appoggiare a sysinstall o spulciare su internet per sapere cosa mettere nell'rc.conf per far partire un demone all'avvio.
In oltre i packages non erano curatissimi, non tanti quanti i ports e non altrettanto aggiornati. Effettivamente, a quei tempi, gli sviluppatori del FreeBSD incoraggiavano l'uso esclusivo dei ports.

iniziai a prendere confidenza con il cvs, l'aggiornamento del sistema dai sorgenti (make buildworld, buildkernel & co. per intenderci) e rimasi col FreeBSD fino al 5.4.
Presissimo dalla filosofia BSD decisi di esaminare anche le altre opzioni.

Scaricai l'ISO del NetBSD e lo provai sul mio server testing (Pentium 166 con 46 MB RAM).
Non avevo mai visto un sistema operativo più spartano, sarà anche UNIX standard, ma c'era da perdere un'ora prima di avere un rc.conf decente.
Probabilmente userei NetBSD solo se avessi un i386 diskless o una SparcStation degli anni '80, se non altro mi è sembrato più performante di Debian o del FreeBSD su hardware datato.

Eliminando a priori DragonflyBSD, PC-BSD e Desktop-BSD che al momento non erano progetti troppo maturi non mi restava che OpenBSD.

Sul sito scopro che non esiste un'iso completa scaricabile, posso solo accontentarmi di un'immagine per floppy o una mini iso di boot.
Ma ero determinato e con l'aiuto di wget mi scaricai tutto l'occorrente per creare la mia ISO completa.
Dopo una giornata di scaricamenti venne fuori un bel file openbsd_37.iso con un sacco di pacchetti precompilati (KDE completo, bash, fluxbox, mutt, ettercap, nmap, mozilla, koffice, gnupg, mysql, gimp, SUN Java 1.4.2, etc...).

L'unico intoppo durante l'installazione fù la comprensione dell'esoterico tool di partizionamento, tutto il resto filò liscio.
L'init è un po' diverso da quello che siamo abituati a vedere su Linux.
Partendo dal presupposto che tutti i *BSD sono dei veri sistemi operativi, non solamente dei kernel, dopo l'installazione ci troviamo di fronte ad un sistema che ha già di base: sendmail, apache, sshd, ftpd, pop3, bind, etc...

Per utilizzare un servizio del sistema di base basta aprire il file /etc/rc.conf, leggerne i commenti e applicare delle piccole modifiche. In alternativa vari servizi possono essere eseguiti da inetd editando il file /etc/inetd.conf.
Per eseguire altri programmi all'avvio basta aggiungerli nel solito rc.local.
Con grande stupore mi accorsi che sia apache che bind sono già chrootati di default.
La versione di Apache del sistema di base è, per motivi di licenze, è ferma alla 1.3.29, ma è patchata ed aggiornatissima per quanto riguarda le varie vulnerabilità.

Dalla versione 3.8 nel sistema di gestione dei pacchetti pkg_add è stata aggiunta l'opzione "-u", grazie alla quale è possibile aggiornare i pacchetti con più semplicità.
OpenBSD al contrario del FreeBSD consiglia l'uso dei pacchetti binari: perché perdere tempo a compilare qualcosa che qualcuno ha già compilato per voi? Sconsigliano anche di creare kernel personalizzati (il loro nel 99,9999...% dei casi andrà bene) e di non passare ottimizzazioni al make.conf (come invece si fa su Gentoo o su FreeBSD).
I pacchetti sono curatissimi, tutte le volte che viene installato qualcosa di particolare, ad esempio un server, ci vengono fornite anche delle semplici istruzioni su come fare per configurarlo ed avviarlo.
Installare php, mysql o altro diventa più semplice che su un FreeBSD.

Anche la configurazione delle interfacce di rete sui *BSD è più intuitiva che su certe distro Linux.
Le schede di rete non si chiamano eth0, eth1, etc... ma hanno il nome del loro driver: es. ne0, ne1... (NE2000 compatibile) xl0, xl1 (3Com 3c900)... nella /etc è presente il file mygate che contiene l'indirizzo del gateway e un file del tipo hostname.ne0 dove c'è la configurazione della ne0. Risulta quindi facile gestire più schede di rete.

Poi c'è PF, il firewall: un capolavoro. Per router, firewall, server DNS o un gateway di qualsiasi tipo OpenBSD è il massimo.

Però se nel frattempo vi arriva a casa un PIV 3000, volete il supporto per l'audio 5+1, i driver nvidia per la vostra nuova scheda grafica, k3b per masterizzare facilmente i vostri DVD, se non vi va di usare OpenOffice in emulazione tramite rpm Linux... ecco che l'idea di tornare a sui vostri passi incomincerà ad insinuarsi nella vostra mente.

Dopo aver visto alcuni degli elementi più promettenti tra i miei "discepoli" perdere la strada per passare al MacOS X, decisi che era ora di fare il punto della situazione.

Volevo una Gentoo con un installer (la versione beta che c'era nel Live CD faceva un po' pena per al momento), che permettesse di compilare facilmente sorgenti, disponesse di tanti pacchetti precompilati e che fosse molto aggiornata (sono un maniaco delle ultime versioni, i miei amici ancora mi rinfacciano quella volta che installai un programma in versione pre-alpha).

La risposta alle mie preghiere, la distro che ho sempre sognato esiste e si chiama Arch Linux.

Boot velocissimo: in 40 secondi sono già dentro KDE, con Debian ci mettevo almeno 3 minuti...
Gestione dei demoni stile BSD attraverso il file rc.conf per i server standalone, oppure tramite xinetd (evoluzione di inetd)
(Aggiornamento: anche Arch Linux è passata a systemd)
abs: l'equivalente dei ports dei BSD, si aggiorna semplicemente digitando "abs" da root.
pacman: semplice ma efficace gestore di pacchetti tipo apt-get

Software aggiornatissimo quasi lo pescassero ogni giorno da git
Possibilità di creare e installare facilmente un "port" seguendo lo schema dei PKGBUILD tramite il programma makepkg.

$pooky Hunter