Wie man eine lokale Yum Paketdatenbank auf Fedora 8 einrichtet

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht, wie man eine Fedora 8 Yum Paketdatenbank für Dein lokales Netzwerk erstellt. Es bietet sich an, einen lokalen Fedora Spiegel zu haben, wenn Du mehrere Systeme in Deinem lokalen Netzwerk installieren musst, da dann alle alle benötigten Pakete über die schnelle LAN Verbindung runter geladen werden können, auf diese Weise sparst Du Internetbandbreite.

Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

In dieser Anleitung verwende ich den Hostnamen server1.example.com mit der IP Adresse 192.168.0.100. Diese Einstellungen werden bei Dir anders sein, Du musst sie also an der entsprechenden Stelle ersetzen.

Ich möchte über http auf die Yum Paketdatenbank zugreifen können; Apaches Standard Dokumenten-Root auf Fedora ist /var/www/html, also erstelle ich die Paketdatenbank in /var/www/html/yum. Falls Du einen anderen vhost verwendest, kann es sein, dass Du die Pfade anpassen musst.

2 Installation Von Apache

Lass uns Apache installieren:

yum install httpd

Danach erstellen wir die System Startup Links für Apache (sodass Apache automatisch startet wenn das System hochfährt):

chkconfig --levels 235 httpd on

Dann starten wir Apache:

/etc/init.d/httpd start


3 Die Paketdatenbank Kompilieren

Zuerst installieren wir das Tool createrepo:

yum install createrepo

Ich möchte die Fedora 8 rpm Pakete für i386 in /var/www/html/yum/base/8/i386 und die Update Pakete in /var/www/html/yum/updates/8/i386 platzieren, als erstelle ich diese Verzeichnisse nun (passe die Pfade an, wenn Du eine Paketdatenbank für Fedora 7/6/... und/oder x86_64 erstellen möchtest):

mkdir -p /var/www/html/yum/base/8/i386
mkdir -p /var/www/html/yum/updates/8/i386

Lass uns nun das /var/www/html/yum/base/8/i386 Verzeichnis füllen. Am Einfachsten ist es, wenn wir unsere Fedora 8 DVD einlegen (die Du von hier runterladen kannst: http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8), hänge sie ein und kopiere die rpm Pakete nach /var/www/html/yum/base/8/i386:

mount /dev/cdrom /mnt
cd /mnt/Packages
cp -v * /var/www/html/yum/base/8/i386
cd /
umount /mnt

Die DVD enthält nur einen Basissatz an Paketen. Wenn Du alle erhältlichen Fedora 8 Pakete im /var/www/html/yum/base/8/i386 Verzeichnis haben möchtest, kannst Du die Pakete (unter Verwendung von rsync) von dem Everything Ordner auf einem Fedora 8 Spiegel runterladen. Gehe zu http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8, suche nach einem Spiegel, der rsync anbietet und lade die Pakete wie folgt runter (das kann recht lange dauern, sei also geduldig):

rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages/ /var/www/html/yum/base/8/i386

(Pass auf, dass Du alle Slashes (/) verwendest, wie oben gezeigt- es muss rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages/ sein, nicht rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages!)

Lass danach den createrepo Befehl laufen:

createrepo /var/www/html/yum/base/8/i386

Somit erstellen wir ein repodata Verzeichnis in dem /var/www/html/yum/base/8/i386 Verzeichnis. Die Inhalte sollten Folgende sein:

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 /]#

Lass uns nun das Update Verzeichnis /var/www/html/yum/updates/8/i386 füllen. Geh erneut zu http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8, suche nach einem Spiegel, der rsync anbietet und lade die Pakete wie folgt runter:

rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386

Vergewissere Dich wieder, dass Du die Slashes (/), wie oben gezeigt, verwendest!

Damit unser lokaler Spiegel die neusten Updates von nun an automatisch runter läd, können wir einen Cron Job erstellen. Um zum Beispiel Updates jeden zweiten Tag um 04:23 Uhr runter zu laden, erstellen wir folgenden Cron Job:

crontab -e


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
Unser lokaler Yum Spiegel ist nun einsatzbereit.

4 Client Konfiguration

Damit unsere Fedora 8 Systeme die neue lokale Yum Paketdatenbank verwenden, bearbeiten wir /etc/yum.conf auf jedem Fedora 8 System (das kannst Du sogar auf direkt auf dem Spiegel vornehmen, wenn dies ein Fedora 8 System ist). Öffne /etc/yum.conf:

vi /etc/yum.conf

Suche diese zwei Zeilen...
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
... und füge folgende Zeile unter diesen Zeilen hinzu:
[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 vollständige Datei solle wie folgt 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
Immer wenn Du Yum benutzt und die lokale Paketdatenbank das Paket auch bereit hält, werden die Pakete von der lokalen Paketdatenbank runter geladen und installiert.

5 Links

1 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: O.Haessler

Hi Falko,

super Artikel.. Danke.. aber eine kleine Anmerkung:

Ich würde nicht die /etc/yum.conf für die Config benutzen, sondern lieber eine Datei unter /etc/yum.repos.d erstellen, und diese dann "local.repo" nennen. Dann würde es wieder dazu passen, wo alle anderen *.repo Dateien liegen.

Mit freundlichen Grüßen

Oliver Häßler