Reprepro – Debian-Systeme mit einem selbst aufgesetzten Paket-Repo versorgen
Im Rahmen dieses Artikels wird daher ein Staging durch Trennung der Distributionen vorgenommen. Womöglich existieren noch andere und bessere Wege, um ein Staging sauber umzusetzen; im Alltag hat sich jedoch diese Variante bewährt:
Distributionsübersicht inkl. Staging | ||
---|---|---|
»wheezy« (Debian-Mirror) | »xenuser« (nur eigene Pakete) | »external« |
- | xenuser-devel | - |
- | xenuser-testing | external-testing |
wheezy | xenuser-prod | external-prod |
In dieser erweiterten Form der Distributionsplanung ist kein Staging für den offiziellen Wheezy-Pool vorgesehen, die selbst gebauten Pakete werden hingegen in den Formen »devel«, »testing« und »prod« behandelt. Für die Pakete aus Drittquellen ist nur ein zweistufiges Staging vorgesehen, da diese Pakete in der Regel nicht von einem selbst entwickelt werden, aber zumindest vor dem Produktiveinsatz getestet werden sollten.
Mit diesen Plan im Hinterkopf kann die Einrichtung von reprepro vorgenommen werden:
# mkdir /var/www/log # mkdir /var/www/conf # ln -s /var/www /var/www/debian # Wichtig für Erreichbarkeit durch »apt-get« von Clients
Die Distributionen werden innerhalb der selbst zu erstellenden Datei /var/www/conf/distributions angelegt:
# Configuration for our Wheezy mirror Origin: Debian Codename: wheezy Suite: stable Description: Official Debian Wheezy mirror Architectures: i386 amd64 Components: main contrib non-free UDebComponents: main Contents: .gz Update: - debian-wheezy debian-wheezy-updates debian-wheezy-security Log: /var/www/log/wheezy.log ReadOnly: No # This dummy entry is required for receiving updates for the Debian mirror Origin: Debian Codename: wheezy-updates Description: Just a dummy entry, not in use. Architectures: i386 amd64 Components: main contrib non-free UDebComponents: main Contents: .gz ReadOnly: No # This dummy entry is required for receiving updates for the Debian mirror Origin: Debian Codename: wheezy-security Description: Just a dummy entry, not in use. Architectures: i386 amd64 Components: main contrib non-free UDebComponents: main Contents: .gz ReadOnly: No # Configuration for xenuser-devel Origin: custom Label: xenuser Debian Devel Repository Codename: xenuser-devel Architectures: amd64 i386 Components: custom Description: This repo contains custom Debian devel packages. Log: /var/www/log/xenuser-devel.log # Configuration for xenuser-testing Origin: custom Label: xenuser Debian Testing Repository Codename: xenuser-testing Architectures: amd64 i386 Components: custom Description: This repo contains custom Debian testing packages. Log: /var/www/log/xenuser-testing.log # Configuration for xenuser-prod Origin: custom Label: xenuser Debian Production Repository Codename: xenuser-prod Architectures: amd64 i386 Components: custom Description: This repo contains custom Debian production packages. Log: /var/www/log/xenuser-prod.log # Configuration for external-testing Origin: custom Label: External tools Debian Testing Repository Codename: external-testing Architectures: amd64 i386 Components: main Description: This repo contains externa Debian packages (testing). Log: /var/www/log/external-testing.log # Configuration for external-prod Origin: custom Label: External tools Debian Production Repository Codename: external-prod Architectures: amd64 i386 Components: main Description: This repo contains externa Debian packages (production). Log: /var/www/log/external-prod.log
Im Anschluss wird die Datei /var/www/conf/updates erstellt und mit Inhalt befüllt:
Name: debian-wheezy Method: http://ftp.debian.de/debian Name: debian-wheezy-updates Method: http://ftp.debian.de/debian Suite: wheezy-updates Name: debian-wheezy-security Method: http://security.debian.org/debian-security Suite: wheezy/updates
Während die Datei distributions die benötigten Distributionen beschreibt, legt die Datei updates fest, von welchen Quellen Pakete bezogen werden können. Weiterführende Informationen zu den möglichen Konfigurationsparametern in den beschriebenen Dateien finden sich in der Doku.