Salve a tutti,
premesso che sono un niubbo e che molto probabilmente questa guida non interesserà ai più esperti, vorrei condividere la mia esperienza sulla compilazione distribuita di KDE4.
Spiego: la compilazione distribuita è una cosa per cui la compilazione di grossi programmi viene distribuita, e quindi eseguita in parallelo, su diversi computer. Il vantaggio fondamentale di tale tecnica (e anche il motivo per cui nasce) è quella di dare la possibilità di sfruttare vari computer (anche di potenze diverse) per abbreviare il tempo necessario per compilare grossi programmi, nel caso in questione KDE4.
E’ vero che compilare i quattro pacchetti base non comporta un impiego di tempo eccessivo (sempre relativamente alla potenza del computer), ma è anche vero che chi vuole provare sul serio KDE4 e la potenza delle nuove librerie graficche QT4.4, dovrebbe compilare un pò tutto KDE, o almeno buona parte.
Io per esempio compilo 20 moduli di KDE4 e il mio computer, un turion64 X2, ci mette mezza giornata per eseguire il tutto (sempre salvo errori e complicazioni varie)…
Non sono né esperto di KDE, né di programamzione, né di linux, quindi forse avrete una quantità di problemi mostruosa e io non potrò aiutarvi… ma chi vuole provare… provi…
Per iniziare intanto serve che almeno la base di KDE4 compili senza problemi nel vostro computer (se già non compila normalmente, cioè senza compilazione distribuita, allora dovete risolvere ben altri problemi).
Io per compilare ho usato le istruzioni di Pollycoke (KDE 4 per Ubuntu Gutsy, in un paio di ore 😉) per iniziare… poi a mano a mano ho aggiustato il file di configurazione per renderlo più conforme alle mie necessità.
In soldoni quello che dovete fare è prendere kdesvn-build dal sito ufficiale, installarlo e aggiustare il file di configurazione per adattarlo alle vostre esigenze. Tutto ciò è ben spiegato nella guida di Pollycoke sopraccitata, seguite quella.
Riguardo il file .kdesvn-buildrc… bhe, quello di pollycoke va bene, anche se io preferisco usare il mio…
Ve lo posto così potete dare un’occhiata a come ho impostato il mio file di configurazione (non più disponibile online)
Come potete vedere (avreste potuto vedere), ho deciso di impostare la mia cartella home come luogo in cui scaricare e compilare i sorgenti. L’installazione invece va in una cartella che rende possibile l’utilizzo del nuovo KDE4 a tutti gli utenti del sistema (e questo richiede l’uso di sudo).
Come dicevo prima, il vostro sistema deve essere in grado di compilare ed eseguire almeno la base di KDE4, questo assicura che abbiate tutte le librerie e le impostazioni necessarie.
Se questo requisito è soddisfatto, allora potete passare ad installare icecc e icecc-monitor (con apt-get, con synaptic, come volete fare, fate).
Installando quei 2 pacchetti in tutte le macchine che volete sfruttare per la compilazione, dovrebbe partire in automatico (ma non ne sono sicuro) un demone che gestisce la compilazione vera e proria.
Come è possibile leggere dal sito ufficiale di icecc, tutti i computer devono avere installato e in esecuzione il demone iceccd, avviato come root.
Quindi un:
sudo /etc/init.d/icecc start
dovrebbe essere sufficiente… se fallisce molto probabilmenete è perchè il demone è già in esecuzione (situazione verificabile con un restart al demone).
Il demone apre la porta 10245 in ogni computer in cui è in esecuzione.
Poi, in un computer della rete, cioè quello che avvierà la compilazione, deve essere in esecuzione lo scheduler:
sudo icecc-scheduler &
Sul sito ufficiale è specificato che sia i demoni che lo scheduler devono essere in esecuzione coi diritti di amministratore (cioè dovete sapere la password di root).
Lo scheduler apre la porta 8765 nel computer in cui è in esecuzione.
Se aprite icemon dovreste essere in grado di vedere i computer della rete pronti per aggredire il codice di KDE4.
Ora bisogna considerare che difficilmente una rete è fatta di computer omogenei, ma nella mia simil-guida io suppongo che siano almeno tutti x86 e che abbiano linux in esecuzione (anche versioni diverse, anche live), pertanto istruiamo icecc di creare un set comune di tool di compilazione in modo da non avere problemi e assicurarci che il risultato finale della compilazione sia uguale a quello eseguito su un singolo computer senza icecc:
icecc --build-native
questo creerà un file con un nome casuale del tipo xxxx.tar.bz2 che se volete lo potete anche rinominare.
Ovviamente questa procedura deve essere eseguita solo nel computer in cui è in esecuizione lo scheduler (e che sarà lo stesso da cui partirà la compilazione)
ora dobbiamo impostare una variabile di ambiente
export ICECC_VERSION=/home/halphaz/i386linux.tar.gz
voi dovete modificare la locazione a seconda di dove sta messo il file.
Preciso che tale variabile di ambiente vale per la console in cui avete eseguito il comando: se chiudete e aprite un’altra console la variabile non sarà più impostata.
Nel vostro file .kdesvn-buildrc, nella sezione globale, ci dovrebbe essere la voce “binpath” (che nel mio è commentata e per abilitarla bisogna cancellare il # all’inizio di binpath).
Se la voce binpath non c’è, scrivete in una nuova riga, sempre all’interno della sezione globale, “binpath” e dopo ci incollate l’output da linea di comando di
echo /usr/lib/icecc/bin:$PATH
.
Se la voce esiste già (e non è quella del file di configurazione di esempio fornito col programma kdesvn-build), allora subito dopo la voce binpath aggiungete “/usr/lib/icecc/bin:”, in modo che la riga risulti simile a quella presente nel mio file di configurazione.
Sono un pò casinaro quando mi spiego, ma spero di essere stato ababstanza chiaro.
L’ultimo parametro da impostare è
make-options -jX
la X indica quanti processi in parallelo devono essere lanciati.
Sul sito di icecc consigliano di considerare il numero di core della rete e di moltiplicarli per due.
IMHO è un numero troppo alto… il mio consiglio è di prendere il numero di core e di moltiplicarlo per 1,5 e approssimarlo per eccesso, sempre però rimanendo sotto la soglia del 15.
Per esempio io a casa ho potuto provare con un bicore e con un monocore, e ho impostato -j5… fate delle prove e fatemi sapere.
Ovviamente impostate le parti di KDE4 che volete compilare, oppure siete liberi di compilare le varie parti una ad una.
Io ho eseguito questi comandi:
kdesvn-build --svn-only
sudo kdesvn-build --no-svn --refresh-build
e la compilazione è andata bene e veloce, anche se per ora koffice non vuole compilare, ma potrebbe essere un problema mio.
Di essere non è difficile la cosa… anche se un pò di fatica io l’ho fatta.
Sono aperto a suggerimenti, chiarimenti, critiche, tutto quello che volete, tranne insulti.
Per ulteriori informazioni su icecc fate riferimento al suo sito ufficiale.
Buona parallelizzazione… (e ringraziamenti al blog Pollycoke per avermi introdotto nel mondo della compilazione di KDE)
PS: lasciate tanti bei commenti…