Guida alle tecnologie

Configurare un repository yum locale su Fedora 8

5 min read Linux Aggiornato 10 Oct 2025
Repository yum locale su Fedora 8
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)

  1. Installare Apache e createrepo.
  2. Creare la struttura /var/www/html/yum/… per base/updates e arch.
  3. Copiare i pacchetti dal DVD o sincronizzare con rsync.
  4. Eseguire createrepo e verificare repodata/.
  5. Configurare crontab per aggiornamenti automatici.
  6. Modificare /etc/yum.conf sui client per puntare al baseurl locale.
  7. 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

Autore
Redazione

Materiali simili

Scaricare film e serie da Netflix: guida completa
Streaming

Scaricare film e serie da Netflix: guida completa

RAID1 su CentOS 5.3: preparare /dev/sda e GRUB
Amministrazione Sistemi

RAID1 su CentOS 5.3: preparare /dev/sda e GRUB

Vedere il conteggio Dislike su YouTube
Guide.

Vedere il conteggio Dislike su YouTube

Filtrare i feed RSS con Feed Rinse
Produttività

Filtrare i feed RSS con Feed Rinse

Smartphone hackerano auto giapponesi
Sicurezza

Smartphone hackerano auto giapponesi

Cambia sfondo schermata login Mac
macOS

Cambia sfondo schermata login Mac