[Linux-Biella] (no subject)
andrea_ferraris@libero.it
linux@ml.bilug.linux.it
Fri, 30 Jan 2004 00:10:07 +0100
> Il giorno Thursday 29 January 2004 18:14, Paul TT mi scriveva:
>
> > allora, chiarirei, vale la pena di usare un sistema di pacchetti per
> > quei programmi 'standard', che e' poco utile ricompilare, poi se vuoi
> > usare bene l'mplayer e' ovvio che conviene cmq ricompilarlo, ma se lo
> > installi da un .deb o .rpm o .stocazzo, e ' piu' facile ricordarsene e
> > toglierlo quando devi, senza lasciare cadaveri in giro. se poi per
> > installare le cose 'particolari' usi stow, allora hai solo due posti
> > dove guardare/installare/disinstallare, senza tema di perdere nulla.
>
> i ports... li compili e li togli come vuoi tu.
> i ports sono LA soluzione (abbinati magari ad un portupgrade che funzioni)
Stai parlando di Gentoo. Funziona esattamente cosi`, solo che in piu` ti
aggiunge anche la possibilita` di installare pacchetti precompilati e invece,
seguendo il suo default di ricompilare tutto, puoi arrivare a personalizzare
tu nei minimi dettagli, fino alle opzioni per un singolo pacchetto, sia a livello
di compilatore C, sai andandoti a personalizzare lo script di ebuild in cui sono
contenute le opzioni di compilazione di un pacchetto (configure -- ).
Puoi definire, anzi sei invitato a farlo e tutto e` ben documentato, le opzioni globali
di compilazione sul tuo sistema (dall'architettura a quelle del gcc, di portabilita`
dei binari e poi delle librerie per cui vuoi abilitare il supporto per i pacchetto del
tuo sistema - p.es. kde, qt, ssl, gnome, etc, etc ... ci sono almeno una 40ina di
opzioni possibili, tutte documentate e se non scegli nulla, usa lui dei default
assennati e documentati). Inoltre puoi scegliere se accettare nel tuo sistema
pacchetti ancora in beta oppure no. Ed e` proprio basato sui port.
La differenza da FreeBSD: e` che e` Linux e quindi hai a disposizione molto piu`
software e gente che lo sviluppa.
Per aggiornare un sistema collegato a internet basta che digiti:
# emerge sync
e lui ti aggiorna l'albero dei port disponibili,
# emerge -u world
e lui ti aggiorna tutti i pacchetti di sistema, ricompilandoli dai sorgenti e poi tutti
gli altri pacchetti che hai installato oltre a quelli di sistema.
Inoltre, se fosse uscito qualche exploit per cui una versione di un pacchetto
che hai installato risulta pericolosa e non c'e` ancora un pacchetto aggiornato
che corregge quel problema, fa automaticamente un downgrade per risolvere
la questione. Nel caso siano cambiati dei file di configurazione di un pacchetto
ti conserva il tuo, aggiunge quello nuovo anteponendogli ._config<DATA> e
ti avvisa della cosa. Inoltre ti mette a disposizione uno scriptino etc-update,
per decidere che cosa fare dei 2 file di configurazione (un merge, una sovrascrittura
di uno ai danni dell'altro, un confronto con integrazione guidata dei due).
Inoltre permette la coesistenza dello stesso pacchetto in versioni diverse, qualora
cio` possa essere utile o necessario (addirittura di 2 gcc diversi).
Poi ha diverse soluzioni tecnologiche avanzate proprio per la compilazione dei
sorgenti, dato che si basa su quella. Parlo di distc e di ccache. Il primo, abilitato
di defult, ti consente di svolgere compilazioni condivise e distribuite, fra diverse
macchine, sfruttando la potenza di calcolo di quelle piu` veloci e diminuendo
considerevolmente i tempi necessari alla compilazione. Il secondo ccache,
inventato da un gruppo di sviluppatori di samba, conserva in una cache di
compilazione C (ccache) gli oggetti intermedi di questo processo e cio` vuol
dire che se si deve ricompilare uno stesso pacchetto cambiando poche opzioni,
i tempi della seconda compilazione vengono ridotti dal 500% al 1000%.
Oggi mi sono compilato un kernel e i moduli necessari col 2.6.1 in cui l'oggetto
finale era circa 1,6 MB e i moduli almeno una 40ina, in circa 3 minuti con un
Athlon XP 2000 (1600 Mhz) e 512 MB di RAM.
Insomma, ritengo davvero che Gentoo sia un gioellino tecnologico e una
gioia per i programmatori, soprattutto di sistema, e i sistemisti.
Andrea