Durante la fase di installazione o aggiornamento di un pacchetto, esso viene salvato di default in una delle directory /var/lib/entropy/client/packages/{packages,packages-nonfree,packages-restricted} a seconda della tipologia di pacchetto in download.
Tale directory se non ripulita di tanto in tanto (# equo cleanup) può rappresentare un ottimo repository interno dei pacchetti.
Se si hanno più macchine Sabayon da mantenere è possibile condividere nella rete interna (LAN) questa directory sia in lettura che in scrittura tra i vari pc in modo che tutti i client possano accedere ad eventuali pacchetti già scaricati con un guadagno in termini di velocità di download molto rilevante. Tutto questo è possibile utilizzando il protocollo NFS .
Si dovrà decidere quale macchina farà da “storage” per questi pacchetti , quindi da server NFS. Supponendo che la nostra rete d’esempio sia composta da macchine miste (x86 e x86-64) , si configurerà il server solo per la condivisione dei pacchetti e non, per ovvi motivi , del database dei pacchetti installati in quanto ogni macchina potrebbe aver installato applicazioni diverse l’una dall’altra.
Configurazione
Server : su ip 192.168.0.10
Clients : 5 o più macchine con IP da 192.168.0.11 a 192.168.0.15 (o superiore)
Directory che ospiterà i pacchetti : /mnt/packages
(oppure se il server NFS è una macchina Sabayon si può sfruttare la directory di default /var/lib/entropy/client/packages)
La directory che ospiterà i pacchetti (nell’esempio /mnt/packages) potrebbe essere una partizzione dedicata con spazio a disposizione sufficiente.
Modificare gli indirizzi IP e percorsi secondo le proprie esigenze.
…::: Configurazione del server NFS :::…
Nota : A seconda della distribuzione in uso , per la configurazione di un server NFS fare riferimento alla documentazione fornita dalla distribuzione stessa.La seguente procedura fa riferimento ad un sistema Gentoo-based.
Una volta individuato quale macchina farà da server NFS , procediamo alla sua configurazione . Di default NFS è già installato e configurato a livello del kernel. Installare nfs-utils se non presente.
# equo i nfs-utils
Editare il file /etc/exports per configurare la cartella e le opzioni di mount
# nano -w /etc/exports
ed inserire
/mnt/packages 192.168.0.11/15(rw,no_root_squash,no_subtree_check)
La riga indica che la cartella /mnt/packages sarà condivisa con gli host con IP dal 192.168.0.11 all’ IP 192.168.0.15 ed avranno i permessi di scrittura e lettura (rw) , si dà l’accesso alla cartella all’utente root del client ( no_root_squash ) . Salvare ed uscire dall’editor.
Avviare NFS
OpenRC
# /etc/init.d/nfs start
# rc-update add nfs default
Systemd
# systemctl start nfsd.service
# systemctl enable nfsd.service
Nota : Se si dovesse modificare per qualche motivo /etc/exports , riavviare il servizio nfs o nfsd.service
Ora la cartella è pronta per essere condivisa con i vari client di rete.
Configurazione dei client NFS
Montare al volo la cartella remota per ogni client
# mount -o rw,_netdev,nolock,auto -t nfs 192.168.0.10:/mnt/packages /var/lib/entropy/client/packages
Montare all’avvio la cartella remota per ogni client
Editare /etc/fstab ed inserire la seguente riga
192.168.0.10:/mnt/packages /var/lib/entropy/client/packages nfs rw,_netdev,nolock,auto 0 0
Per ogni client occorre avviare un servizio per permettere l’accesso al protocollo NFS.
OpenRC
# /etc/init.d/nfsmount start
# rc-update add nfsmount default
Systemd
# systemctl start rpc-mountd.service
# systemctl enable rpc-mountd.service
Ora per ogni client occorre modificare il file di configurazione del repository perché punti al download verso la cartella condivisa editando il file
/etc/entropy/repositories.__conf.d/entropy_
dove corrisponde al repository in uso (sabayonlinux.org oppure sabayon-weekly o altro) ed aggiungere alla fine del file la seguente riga :
pkg = file:///mnt/packages
Salvare ed uscire dall’editor.
Ora /mnt/packages così come tutto il suo contenuto è condiviso su tutta la rete LAN per gli Host specificati.
Se ad esempio un Client richiede l’installazione di Libreoffice , esso verrà scaricato una sola volta dai mirror ufficiali e sarà condiviso in LAN con gli altri client. Se un qualsiasi Client nella rete dovesse richiedere lo stesso pacchetto , esso verrà scaricato direttamente dalla cartella del Server della LAN sfruttando la velocità maggiore di quest’ultima e risparmiando a sua volta banda di rete verso l’esterno ed un minor stress per i server ufficiali.
A lungo andare , la cartella condivisa dei pacchetti potrebbe aumentare di dimensione o alcuni pacchetti potrebbero diventare obsoleti nel tempo per cui non sarebbe più necessario mantenerli Si potrebbe procedere alla pulizia completa della cartella con :
# equo cleanup
oppure eliminare i file più vecchi di un determinato tempo schedulando un semplice comando bash . Comando che faremo eseguire solo al Pc adibito a Server NFS.
Esempio: Eliminare i file più vecchi di 120 giorni
# find /mnt/packages -name “*.*” -type f -mtime +120 -exec rm {} \;
Esempio: Rimozione dei pacchetti più vecchi di 60 giorni ogni 4 mesi alle ore 20:30
Editare il file /etc/crontab ed aggiungere :
30 20 * */4 * root find /mnt/packages/ -name “*.*” -type f -mtime +60 -exec rm {} \;
Salvare ed uscire dall’editor.
Automaticamente ogni quattro (*/4) mesi alle ore 20:30 (30 20) verranno rimossi (-exec rm {} /; ) i pacchetti più vecchi di 60 giorni (-mtime +60).