Lokales Yum-Repository auf Fedora 8 einrichten
Richten Sie ein lokales Fedora‑8‑Yum‑Repository ein, indem Sie Apache als HTTP‑Server installieren, die RPM‑Pakete (DVD oder rsync) in /var/www/html/yum ablegen und mit createrepo Metadaten erzeugen. Konfigurieren Sie die Clients, indem Sie in /etc/yum.conf die lokalen Repositories als baseurl eintragen. Verwenden Sie rsync per Cron, um Updates automatisch zu holen.
Vorbemerkung
In diesem Leitfaden verwende ich den Hostnamen server1.example.com mit der IP 192.168.0.100. Ersetzen Sie diese Werte durch Ihre eigenen Hosts/IPs. Ziel ist es, über das lokale Netzwerk Pakete schnell bereitzustellen und Internetbandbreite zu sparen.
Wichtig: Dieser Guide zeigt das Vorgehen für Fedora 8 und die klassische yum-Toolchain. Einige Befehle oder Pfade können in neueren Fedora‑Versionen abweichen.
Übersicht der Schritte
- Apache installieren und starten
- createrepo installieren
- Paketdateien (von DVD oder per rsync) in das Web‑Verzeichnis kopieren
- Metadaten mit createrepo erzeugen
- Updates per rsync per Cron automatisch nachziehen
- Clients konfigurieren (yum.conf)
1. Apache installieren
Installieren Sie Apache (httpd) auf dem Server:
yum install httpd
Automatischen Systemstart aktivieren:
chkconfig --levels 235 httpd on
Apache starten:
/etc/init.d/httpd start
Apache nutzt unter Fedora standardmäßig /var/www/html als DocumentRoot. Ich lege das Repository unter /var/www/html/yum an. Falls Sie einen anderen vhost nutzen, passen Sie die Pfade entsprechend an.
2. createrepo installieren
Installieren Sie das Tool, das die yum‑Metadaten erzeugt:
yum install createrepo
3. Repository-Verzeichnisstruktur anlegen
Ich verwende folgende Struktur für i386‑Pakete von Fedora 8:
mkdir -p /var/www/html/yum/base/8/i386
mkdir -p /var/www/html/yum/updates/8/i386
Pfade anpassen, wenn Sie x86_64 oder andere Fedora‑Versionen spiegeln.
4. Pakete befüllen
Variante A — von der Fedora‑8‑DVD (einfach und schnell für Basisinstallationen):
- DVD einlegen oder ISO einbinden.
- Pakete kopieren:
mount /dev/cdrom /mnt
cd /mnt/Packages
cp -v * /var/www/html/yum/base/8/i386
cd /
umount /mnt
Variante B — komplettes Everything‑Repo per rsync (empfohlen, wenn Sie viele Pakete benötigen):
Suchen Sie unter http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8 einen Mirror mit rsync‑Zugriff. Beispiel:
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages/ /var/www/html/yum/base/8/i386
Hinweis: Achten Sie auf die abschließenden Schrägstriche im rsync‑Pfad — sie steuern, ob der Ordnerinhalt oder der Ordner selbst kopiert wird.
5. Metadaten erzeugen
Nachdem die RPMs im Zielordner liegen, erzeugen Sie die yum‑Metadaten:
createrepo /var/www/html/yum/base/8/i386
Das erzeugt ein repodata‑Verzeichnis mit Dateien wie primary.xml.gz, filelists.xml.gz, other.xml.gz und repomd.xml:
ls -l /var/www/html/yum/base/8/i386/repodata/
Beispielausgabe (formatabhängig):
-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
Führen Sie createrepo erneut aus, wenn Sie später Pakete hinzufügen oder entfernen.
6. Updates herunterladen und automatisieren (Cron)
Spiegeln Sie die Updates‑Pakete in das Updates‑Verzeichnis:
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386
Cron‑Eintrag (Beispiel: alle 2 Tage um 04:23 Uhr):
crontab -e
Fügen Sie folgende Zeile ein:
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
Hinweis: Testen Sie den rsync‑Befehl manuell, bevor Sie ihn in cron eintragen.
7. Client‑Konfiguration
Auf den Fedora‑8‑Clients (auch auf dem Mirror selbst möglich) passen Sie /etc/yum.conf an. Öffnen Sie die Datei:
vi /etc/yum.conf
Suchen Sie den Abschnitt, in dem Repositories angegeben werden, und fügen Sie diese Einträge hinzu (ersetzen Sie 192.168.0.100 durch Ihre Mirror‑IP):
[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
Die komplette /etc/yum.conf könnte dann so aussehen:
[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
Sobald Clients über Yum Pakete anfordern, nutzt yum bevorzugt die konfigurierten baseurl‑Einträge und lädt die Pakete aus dem lokalen Repo, wenn diese verfügbar sind.
Wichtig: In diesem Beispiel ist gpgcheck=0 gesetzt, damit die Clients Pakete ohne GPG‑Signatur akzeptieren. Für Produktionsumgebungen sollten Sie GPG‑Signaturen verwenden und gpgcheck=1 setzen.
Troubleshooting — Häufige Probleme und Lösungen
- Keine Verbindung zum Mirror: Prüfen Sie mit curl oder wget die URL vom Client aus:
curl -I http://192.168.0.100/yum/base/8/i386/repodata/repomd.xml
- Fehlerhafte Metadaten: Führen Sie auf dem Mirror erneut createrepo aus:
createrepo --update /var/www/html/yum/base/8/i386
–update verwendet inkrementelle Aktualisierungen, kann schneller sein.
- Yum lädt veraltete Metadaten: Auf dem Client ausführen:
yum clean all
- Platzprobleme beim Spiegeln: Prüfen Sie freien Speicherplatz mit df -h und bereinigen Sie alte Pakete.
Sicherheitshinweise
- GPG‑Signaturen: Aktivieren Sie gpgcheck=1 und importieren Sie die passenden GPG‑Schlüssel auf den Clients, statt gpgcheck=0 dauerhaft zu lassen.
- Webserver‑Zugriff: Beschränken Sie den Zugriff auf das Repository über Firewall/HTTP‑Auth, wenn das Repo nur intern verfügbar sein darf.
- Dateiberechtigungen: Webserver hat Leserechte auf die RPMs — setzen Sie vernünftige Rechte (z. B. root:root und 644 für Dateien).
Alternative Ansätze
- reposync + createrepo: Statt rsync von einem Mirror zu spiegeln, können Sie reposync (Teil von yum-utils) nutzen, um genau die Pakete zu synchronisieren, die Sie benötigen.
- HTTP vs. FTP vs. NFS: HTTP ist einfach und funktioniert gut für Yum; NFS kann sinnvoll sein, wenn Clients direkten Dateisystemzugriff benötigen.
- Proxy‑Caching: Wenn nur wenige Pakete regelmäßig nachgefragt werden, kann ein Proxy‑Cache (z. B. squid) sinnvoll sein.
Checklisten
Administratoren — Mirror‑Setup
- Apache installieren und testen
- Verzeichnisstruktur anlegen (/var/www/html/yum/base/… und /updates/…)
- Pakete (DVD oder rsync) kopieren
- createrepo ausführen und repodata prüfen
- Cron für regelmäßiges rsync einrichten
- GPG‑Signaturen prüfen und ggf. aktivieren
Administratoren — Clients
- /etc/yum.conf anpassen oder .repo‑Datei in /etc/yum.repos.d anlegen
- yum clean all ausführen
- Paketinstallation testen: yum install vim (oder ein anderes kleines Paket)
Mini‑Methodik (Kurzanleitung)
- Planen: Speicherbedarf, Bandbreite und Update‑Rhythmus festlegen.
- Erstinstallation: DVD‑Pakete oder ausgewählte rsync‑Ordner kopieren.
- Metadaten: createrepo ausführen.
- Test: Client konfigurieren, yum update testen.
- Betrieb: Cron für rsync, Monitoring (Platz, Fehler) einrichten.
Wann dieses Setup nicht passt
- Sehr dynamische Umgebungen mit häufig wechselnden Paketlisten und vielen Architekturen: Ein zentrales, gut verwaltetes Mirror‑System oder ein dedizierter Package‑Proxy/Cache kann besser geeignet sein.
- Wenn Clients über langsame Netzwerkverbindungen verfügen und Bandbreite zentral gecacht werden soll, sind Proxy‑Caching‑Lösungen möglicherweise effizienter.
Kurzes Glossar
- yum: Paketmanager für RPM‑basierte Distributionen (ältere Fedora‑Versionen).
- createrepo: Tool zur Erzeugung von yum‑Repository‑Metadaten.
- rsync: Werkzeug zum effizienten Kopieren und Synchronisieren von Dateien über Netzwerk.
Links
- Fedora: http://fedoraproject.org
Zusammenfassung
Ein lokales Yum‑Repository reduziert Internetverkehr und beschleunigt Paketinstallationen im LAN. Basisablauf: Webserver einrichten, Pakete (DVD oder rsync) bereitstellen, createrepo ausführen, Clients konfigurieren. Achten Sie auf GPG‑Sicherheit, regelmäßige rsync‑Jobs und Monitoring des freien Speicherplatzes.
Ähnliche Materialien

SFTP in Windows-Explorer integrieren

Facebook‑Fotos zu Google+ und Picasa migrieren

Netflix herunterladen: Filme & Serien offline
RAID1 auf CentOS 5.3 vorbereiten und GRUB anpassen

YouTube-Dislikes anzeigen: Browser & Android
