Configurare un repository yum locale su Fedora 8
Questo articolo spiega come creare un mirror yum locale per Fedora 8 accessibile via HTTP (Apache). Utile per installare più macchine su LAN e risparmiare banda internet. Sostituisci hostname e IP d’esempio con i tuoi valori e considera sicurezza e firma dei pacchetti.
Introduzione
Questa guida mostra passo passo come impostare un repository yum locale per Fedora 8. Un mirror locale permette alle macchine nella tua rete di scaricare pacchetti via LAN veloce invece di utilizzare la connessione Internet. Le istruzioni sono testate su Fedora 8, ma i concetti valgono anche per altre versioni adattando i percorsi.
Importante: non garantisco la riuscita in ogni ambiente. Verifica i percorsi, i permessi e le impostazioni di rete prima di procedere.
1 Nota preliminare
In questo esempio uso il nome host server1.example.com con l’indirizzo IP 192.168.0.100. Sostituisci questi valori dove necessario.
Il repository sarà servito via HTTP. La root documenti predefinita di Apache su Fedora è /var/www/html, quindi creeremo il repository in /var/www/html/yum. Se usi un virtual host diverso, adatta i percorsi.
2 Installare Apache
Installa Apache con:
yum install httpd
Crea i collegamenti per l’avvio automatico del servizio Apache:
chkconfig --levels 235 httpd on
Avvia Apache:
/etc/init.d/httpd start
Suggerimento: verifica che il firewall e SELinux permettano l’accesso HTTP (porta 80) dal tuo LAN.
3 Costruire il repository
3.1 Installare createrepo
Installa lo strumento che genera i metadati del repository:
yum install createrepo
3.2 Creare la struttura di directory
Nel mio esempio voglio mettere i pacchetti i386 di Fedora 8 in /var/www/html/yum/base/8/i386 e gli aggiornamenti in /var/www/html/yum/updates/8/i386:
mkdir -p /var/www/html/yum/base/8/i386
mkdir -p /var/www/html/yum/updates/8/i386
Adatta i percorsi se costruisci un repository per x86_64 o per un’altra release.
3.3 Copiare i pacchetti dal DVD
Il modo più semplice è montare il DVD di Fedora 8 e copiare i pacchetti:
mount /dev/cdrom /mnt
cd /mnt/Packages
cp -v * /var/www/html/yum/base/8/i386
cd /
umount /mnt
Il DVD contiene un set base di pacchetti. Se vuoi l’intero set “Everything”, usa rsync dal mirror.
3.4 Scaricare tutti i pacchetti con rsync
Trova un mirror Fedora 8 che offra rsync (es. http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8) e sincronizza la cartella Packages. Questo può richiedere molto tempo:
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages/ /var/www/html/yum/base/8/i386
Nota: assicurati di usare tutte le barre (/) come mostrato.
3.5 Generare i metadati del repo
Dopo aver copiato i pacchetti, crea i metadati con createrepo:
createrepo /var/www/html/yum/base/8/i386
Questo comando creerà una directory repodata. L’output atteso (esempio):
ls -l /var/www/html/yum/base/8/i386/repodata/
[root@server1 /]# ls -l /var/www/html/yum/base/8/i386/repodata/
total 9268
-rw-r--r-- 1 root root 2227275 2007-12-18 21:11 filelists.xml.gz
-rw-r--r-- 1 root root 6487453 2007-12-18 21:11 other.xml.gz
-rw-r--r-- 1 root root 747714 2007-12-18 21:11 primary.xml.gz
-rw-r--r-- 1 root root 951 2007-12-18 21:11 repomd.xml
[root@server1 /]#
3.6 Popolare la directory degli aggiornamenti
Sincronizza gli aggiornamenti dal mirror:
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386
Ancora: attenzione alle barre finali e all’opzione –exclude.
3.7 Aggiornare automaticamente il mirror
Per mantenere aggiornati gli aggiornamenti, aggiungi un cron job che esegue rsync periodicamente. Per scaricare gli aggiornamenti ogni due giorni alle 04:23 modifica la crontab:
crontab -e
Aggiungi la riga:
23 4 */2 * * /usr/bin/rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386
Verifica i permessi delle directory dopo ogni sincronizzazione e rigenera createrepo se aggiungi pacchetti manualmente.
4 Configurazione client
Per usare il mirror locale modifica /etc/yum.conf su ogni sistema Fedora 8 (puoi farlo anche sul mirror stesso se è una macchina Fedora 8). Apri il file:
vi /etc/yum.conf
Trova le righe:
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
e aggiungi le seguenti sezioni sotto (sostituisci l’IP se diverso):
[base-local]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://192.168.0.100/yum/base/$releasever/$basearch
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0
[updates-local]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=http://192.168.0.100/yum/updates/$releasever/$basearch/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=0
Il file completo di esempio dovrebbe assomigliare a questo:
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
installonly_limit=2
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[base-local]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://192.168.0.100/yum/base/$releasever/$basearch
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0
[updates-local]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=http://192.168.0.100/yum/updates/$releasever/$basearch/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=0
Dopo questa modifica, yum cercherà i pacchetti prima sul mirror locale se disponibili.
Quando può fallire e come risolvere
- Problema: il client non vede il repository
- Controlla: firewall del server (porta 80), SELinux, permessi delle directory, Apache in esecuzione.
- Problema: metadati obsoleti o mancanti
- Soluzione: esegui createrepo dopo aver aggiunto nuovi pacchetti e verifica che repodata/ contenga repomd.xml.
- Problema: architettura o release sbagliata
- Assicurati che $releasever e $basearch nel baseurl corrispondano ai pacchetti presenti.
- Problema: mirror rsync non raggiungibile o percorso cambiato
- Verifica la lista mirror ufficiale e aggiorna l’URL rsync.
- Problema: pacchetti non firmati (gpgcheck=0)
- Mitigazione: abilita gpgcheck e importare le chiavi GPG ufficiali per sicurezza.
Approcci alternativi
- Usare reposync (dal pacchetto yum-utils) per sincronizzare pacchetti invece di rsync.
- Usare un proxy di caching (es. squid) per cache HTTP dei pacchetti.
- Offrire il repository via HTTPS o autenticare l’accesso per reti non fidate.
- Per versioni più recenti di Fedora usare DNF e gli strumenti dedicati (dnf reposync).
Mini-metodologia (passi rapidi)
- Installare Apache e createrepo.
- Creare la struttura /var/www/html/yum/… per base/updates e arch.
- Copiare i pacchetti dal DVD o sincronizzare con rsync.
- Eseguire createrepo e verificare repodata/.
- Configurare crontab per aggiornamenti automatici.
- Modificare /etc/yum.conf sui client per puntare al baseurl locale.
- Testare con yum clean all; yum update.
Checklist per ruolo
Amministratore:
- Verificare spazio su disco sufficiente per il mirror.
- Controllare permessi directory e proprietà (owner=root).
- Abilitare/controllare firewall e SELinux.
- Verificare cron e log di rsync.
Operatore client:
- Modificare /etc/yum.conf o aggiungere file .repo in /etc/yum.repos.d.
- Eseguire yum clean all; yum update per testare.
- Segnalare errori di checksum o pacchetti mancanti.
Sicurezza e privacy
- Esempio di configurazione disabilita gpgcheck (gpgcheck=0). In produzione abilita gpgcheck e importa le chiavi GPG ufficiali di Fedora.
- Proteggi il server HTTP se esposto fuori dalla LAN (usare HTTPS o autenticazione).
- Tieni conto della privacy: i log di accesso HTTP possono contenere informazioni su quali pacchetti richiedono i client.
Glossario di una riga
- yum: gestore pacchetti di Fedora/CentOS (gestisce installazione/aggiornamento).
- createrepo: genera i metadati (repodata) necessari a yum.
- rsync: strumento per sincronizzare file tra host in modo efficiente.
- repodata: directory che contiene repomd.xml e gli indici usati da yum.
- baseurl: URL di base usato da yum per trovare i pacchetti.
Riepilogo
Hai creato un mirror yum locale servito tramite Apache, popolato sia la sezione base sia gli aggiornamenti e configurato i client per usarlo. Ricorda di mantenere aggiornato il mirror con rsync o uno script e di abilitare le misure di sicurezza adeguate.
Link utili
- Fedora: http://fedoraproject.org
Materiali simili

Scaricare film e serie da Netflix: guida completa
RAID1 su CentOS 5.3: preparare /dev/sda e GRUB

Vedere il conteggio Dislike su YouTube

Filtrare i feed RSS con Feed Rinse

Smartphone hackerano auto giapponesi
