Installazione di varnish dai sorgenti
Breve howto sull'installazione di varnish 2.1 dai sorgenti git su piattaforma ubuntu 10.10
Premessa
Semplice guida per installare l'HTTP accelerator varnish dai sorgenti in modo da poter abilitare le funzionalità desiderate e per ottenere aggiornamenti a nuove feature e bugfix. Questa guida si basa su ubuntu 10.10 Maverick Meerkat e sul fatto che possediate un account sulla macchina che possa eseguire il comando sudo (amministratore) e che abbiate accesso ad internet. In ultimo si segnala che il sorgente verrà scaricato nella directory /usr/src/varnish e gli eseguibili verranno installati nella sotto /usr/local/varnish.
Installazione delle dipendenze
Per prima cosa dovremo installare tutti quei pacchetti che ci permetteranno di compilare correttamente varnish.
Iniziamo pure:
$ sudo apt-get install gcc $ sudo apt-get install subversion $ sudo apt-get install autotools-dev $ sudo apt-get install automake1.9 $ sudo apt-get install libtool $ sudo apt-get install libncurses5-dev $ sudo apt-get install xsltproc $ sudo apt-get install libpcre3-dev $ sudo apt-get install pkg-config $ sudo apt-get install python-docutils
A seguito del passaggio a git come repository dei sorgenti di varnish si dovrà installare:
sudo apt-get install git
Preparazione dell'ambiente e scaricamento dei sorgenti
Adesso non resta che preparare il nostro ambiente per ottenere i sorgenti:
$ cd /usr/src $ sudo mkdir varnish $ sudo chmod g-s varnish $ sudo chown `logname`:`logname` varnish
Nel caso il comando precedente restituisca un errore di gruppo non valido, questo avviene perchè se utilizzate l'utente "varnish" ma sul sistema non esiste il relativo gruppo "varnish" il comando restituisce il summenzionato errore, per ovviare potete omettere il gruppo oppure immetterlo voi manualmente:
$ sudo chown `logname` varnish
oppure con gruppo digitato a mano:
sudo chown `logname`:miogruppo varnish
Adesso è giunto il momento di scaricare i sorgenti:
$ cd varnish $ pwd /usr/src/varnish $ git clone git://git.varnish-cache.org/varnish-cache
A seconda della propria velocità di connessione ad internet il download potrebbe durare da pochi secondi a qualche minuto.
Compilazione ed installazione
Se tutti i passi precedenti sono andati a buon fine possiamo iniziare la compilazione:
$ cd /usr/src/varnish/varnish-cache $ ./autogen.sh $ ./configure --prefix=/usr/local/varnish --enable-stack-protector
Nel comando precedente si abilitano le ottimizzazioni, o passatemi il termine "disottimizzazioni", di gcc per la protezione dello stack, ovvero l'aggiunta di check ulteriori nel codice per cercare di prevenire i buffer overflow. Su ubuntu questi flag di compilazione dovrebbero essere abilitati di default ma risulta sempre conveniente esplicitarlo.
Nel caso vediate un warning per la funzione sendfile() nessun problema, qui potrete trovare le motivazioni. Di seguito il warning per maggiore chiarezza:
... configure: WARNING: won't look for sendfile() on x86_64-unknown-linux-gnu ...
Compilazione
Adesso è giunto il momento di compilare varnish:
$ cd /usr/src/varnish/varnish-cache
$ time make -j`cat /proc/cpuinfo | egrep 'processor' | \
awk '{ print $3 }' | sort -rn | head -1 | xargs expr 1 + `
L'ultimo comando non fa altro che ricavare dal file /proc/cpuinfo il numero di cpu in modo tale da lanciare un "make -jN" dove N corrisponde al numero di cpu presenti sul sistema; se preferite potete sempre lanciare il canonico:
$ time make
Che impiegherà soltanto più tempo per la compilazione, ma che comunque su un sistema dual core con 2G di RAM la differenza si è attestata tra circa 20 secondi per la prima soluzione e circa 35 secondi per la seconda.
Installazione
Siamo giunti al momento di eseguire l'installazione di varnish:
$ cd /usr/src/varnish/varnish-cache $ sudo make install
Se il comando precedente è andato a buon fine nella directory /usr/local/varnish troveremo tutto ciò che ci occorre per eseguire varnish cache.
Aggiornamenti
Nel caso si vogliano aggiornare i sorgenti per correzioni di bug o innalzamento di minor release si potranno eseguire i seguenti comandi:
$ cd /usr/src/varnish/varnish-cache $ git pull
Ora per poter compilare i sorgenti il mio consiglio è di dare prima un make clean onde evitare possibili problemi e dato il poco tempo dovuto alla compilazione; comunque se preferite potrete lanciare soltanto un make -jN. Di seguito la prima soluzione:
$ cd /usr/src/varnish/varnish-cache
$ ./configure --prefix=/usr/local/varnish --enable-stack-protector
$ time make -j`cat /proc/cpuinfo | egrep 'processor' | \
awk '{ print $3 }' | sort -rn | head -1 | xargs expr 1 + `
Conclusioni
Se tutto è andato bene dovreste avere installato sotto /usr/local/varnish tutto l'occorrente per poter eseguire varnish 2.1. Nel caso vi servisse avviare/stoppare in maniera automatica il servizio varnish tramite init script potete fare riferimento a questa guida.
