La lettura e la compresione di quanto scritto nei paragrafi precedenti è fondamentale per precedere con l'installazione di Squid utilizzando il codice sorgente, di seguito spiegeremo in maniera dettagliata la procedura da seguire.
Tra i principali vantaggi che possiamo ottenere installando Squid utilizzando la procedura di compilazione dei codici sorgenti citiamo
ottimizzare il codice binario di Squid per il processore specifico in uso nel nostro sistema
modificare il limite massimo di file descriptors utilizzabili
ottimizzare le performance anche relativamente al tipo di Disk Storage utilizzato
scegliere le opzioni di configurazione realmente necessarie alla nostre esigenze
WCCP, i delay pools, il tipo di autenticazione, HTCP, il supporto ICMP ed il tipo di Disk Storage sono le opzioni di configurazione maggiormente utilizzate
non tutti i package precompilati di Squid offrono le opzioni potenzialmente disponibili nella versione che viene compilata utilizzando i codici sorgenti
possiamo quindi affermare che è possibile realizzare delle appliance vere e proprie compilando prima il Kernel del Sistema Operativo e successivamente la nostra webcache Squid. Solo in questo modo potremo ottenere un sistema di webcache performante e leggero.
Dopo aver configurato nella maniera più opportuna Squid con il comando configure potremmo finalmente compilare utilizzando il comando make(8)
% make |
procediamo con l'installazione utilizzando il comando make install
% make install |
supponendo di aver utilizzato come opzione di configurazione
% ./configure --prefix=/usr/local/squid |
mostriamo ora al lettore l'albero delle directory di /usr/local/squid che contiene gli eseguibili ed i files di configurazione di Squid che vengono generati utilizzando il comando make && make install
% ls /usr/local/squid/ totale 28 drwxr-xr-x 2 root root 4096 apr 10 12:26 bin drwxr-xr-x 2 root root 4096 apr 10 12:16 etc drwxr-xr-x 2 root root 4096 apr 10 12:26 libexec drwxr-xr-x 3 root root 4096 apr 3 12:40 man drwxr-xr-x 2 root root 4096 apr 10 12:26 sbin drwxr-xr-x 4 root root 4096 apr 10 12:16 share drwxr-xr-x 5 root root 4096 apr 3 13:01 var |
le applicazioni che possono essere utilizzate da tutti gli utenti di sistema si trovano in /usr/local/squid/bin
% ls -l /usr/local/squid/bin/
totale 28
-rwxr-xr-x 1 root root 741 13 set 17:24 RunAccel
-rwxr-xr-x 1 root root 732 13 set 17:24 RunCache
-rwxr-xr-x 1 root root 18580 13 set 17:28 squidclient
|
il file RunCache è uno script che può essere utilizzato per avviare Squid, anche lo script RunAccel è simile al precedente ma accetta anche un'argomento a linea di comando che indica a Squid la porta da utilizzare per rimanere in ascolto di richieste HTTP
le applicazioni che normalmente possono essere avviate dall'utente root si trovano in /usr/local/squid/sbin
% ls -l /usr/local/squid/sbin/
totale 668
-rwxr-xr-x 1 root root 676024 13 set 17:28 squid
|
questo è il file eseguibile del processo Squid
il percorso dove vengono installati normalmente i vari helpers utilizzati da Squid si trovano in /usr/local/squid/libexec
# ls -l /usr/local/squid/libexec/
totale 220
-rwxr-xr-x 1 root root 19000 13 set 17:28 cachemgr.cgi
-rwxr-xr-x 1 root root 11028 13 set 17:28 digest_pw_auth
-rwxr-xr-x 1 root root 11808 13 set 17:28 diskd
-rwxr-xr-x 1 root root 5384 13 set 17:28 ip_user_check
-rwxr-xr-x 1 root root 32568 13 set 17:28 msnt_auth
-rwxr-xr-x 1 root root 10356 13 set 17:28 ncsa_auth
-rwxr-xr-x 1 root root 43180 13 set 17:28 ntlm_auth
-rwxr-xr-x 1 root root 10272 13 set 17:28 pam_auth
-rwxr-xr-x 1 root root 5904 13 set 17:28 squid_unix_group
-rwxr-xr-x 1 root root 3468 13 set 17:28 unlinkd
-rwxr-xr-x 1 root root 11860 13 set 17:28 wb_auth
-rwxr-xr-x 1 root root 10148 13 set 17:28 wb_group
-rwxr-xr-x 1 root root 1333 13 set 17:27 wbinfo_group.pl
-rwxr-xr-x 1 root root 16516 13 set 17:28 wb_ntlmauth
-rwxr-xr-x 1 root root 8052 13 set 17:28 yp_auth
|
il suo contenuto dipende dal numero di opzioni di configurazione abilitate
la directory dove vengono memorizzati i files di configurazione di Squid si trova in /usr/local/squid/etc
% ls -l /usr/local/squid/etc/
totale 268
-rw-r--r-- 1 root root 11651 2 apr 23:03 mime.conf
-rw-r--r-- 1 root root 11651 13 set 17:27 mime.conf.default
-rw-r--r-- 1 root root 421 10 apr 10:04 msntauth.conf
-rw-r--r-- 1 root root 421 13 set 17:27 msntauth.conf.default
-rw-r--r-- 1 root root 113932 17 apr 01:01 squid.conf
-rw-r--r-- 1 root root 114832 13 set 17:27 squid.conf.default
|
il contenuto di questa directory ed il contenuto dei file di configurazione di base squid.conf dipendono dal numero di opzioni di configurazione abilitate. Nella directory viene incluso anche il file mime.conf che indica a Squid i MIME types da utilizzare quando i dati vengono richiesti utilizzando ftp e gopher
la directory che normalmente contiene i files di sola lettura che vengono utilizzati da Squid si trova in /usr/local/squid/share
# ls -l /usr/local/squid/share/
totale 36
drwxr-xr-x 30 root root 4096 2 apr 23:03 errors
drwxr-xr-x 2 root root 4096 13 set 17:27 icons
-rw-r--r-- 1 root root 26104 13 set 17:27 mib.txt
|
la directory share/icons contiene i file di icone utilizzati da Squid per l'ftp ed il gopher, la directory share/errors contiene i template per i messaggi di errore che vengono visualizzati da Squid, il file mib.txt è il Management Information Base (MIB) per Squid
Il comando make install genera degli eseguibili mostruosamente grandi, se invece si desidera installare degli eseguibili puliti, senza alcuna informazione di debug, é possibile utilizzare il comando make install-strip. Ricordiamo agli utenti che questo comando può essere eseguito soltanto dall'interno della directory contenete i sorgenti di Squid
% make && make install % cd src/ % make install-strip |
per rimuovere le informazioni di debug dagli eseguibili potremmo anche utilizzare il comando strip(8). Questo comando elimina le informazioni di debug dagli object files scartando automaticamente gli oggetti non riconosciuti come eseguibili
% strip -s /usr/local/squid/bin/* /usr/local/squid/sbin/* /usr/local/squid/libexec/* strip: /usr/local/squid/bin/RunAccel: File format not recognized strip: /usr/local/squid/bin/RunCache: File format not recognized strip: /usr/local/squid/libexec/wbinfo_group.pl: File format not recognized |
nel caso in cui con le opzioni di configurazione sia stato attivato il supporto ICMP, è necessario installare anche l'helper pinger con il comando
% make install-pinger |
consigliamo sempre di generare una directory dedicata al file che identifica il numero di processo (squid.pid) e assegnare subito dopo i permessi per consentire l'esecuzione dei processi disk I/O. Nell'esempio seguente la UID nobody eseguirà il processo Squid
% mkdir /usr/local/squid/var/run % chown -R nobody:nobody /usr/local/squid/var/* |
è ora possibile editare e customizzare il file squid.conf che nell'installazione di default viene memorizzato in
/usr/local/squid/etc/squid.conf |
una guida di avviamento rapido viene sempre inclusa con la distribuzione dei sorgenti di Squid