Getestet auf Debian7, Debian10, Ubuntu 20
Erstellt eine Organisation Software, die sie in Form von Debian-Paketen anderen zur Verfügung stellen will, ist es ratsam ein Debian-Repository aufzubauen.
Für die Zurverfügungstellung wird ein Webserver benötigt. Für den apache2 kann Link vom Basisverzeichnis zur DocumentRoot erstellt werden.
cd /var/www/html
ln -s /repository/pfad .
Das Repository wird dann mit folgenden Befehlen erstellt:
- GnuPG-Schlüssel zum Signieren anlegen
- In ~/.gnupg/gpg.conf die Zeile digest-algo sha256 hinzufügen
- Schlüssel anlegen: gpg --gen-key
- Name des öffentlichen Schlüssels ermitteln: gpg -k
Wenn die Ausgabe etwa so aussieht,/home/michael/.gnupg/pubring.gpg -------------------------------- pub 2048 R / F9D5412B 2017 -07 -03 uid WagnerTech UG <mail@wagnertech.de> sub 2048 R / C1C27368 2017 -07 -03
ist C1C27368 der Schlüsselname.
- Schlüssel exportieren: gpg --armor --export SCHLUSSEL_NAME > SCHLUSSEL_DATEI
- SCHLUSSEL_DATEI zum Download bereitstellen (z.B. im conf-Verzeichnis, s.u.)
- Verzeichnisstruktur anlegen:
$DEBIAN/ conf/ distributions
- Inhalt von distributions:
Origin : VENDOR Label : PROJEKT Codename : RELEASE Architectures : i386 amd64 Components : main Description : DESCRIPTION SignWith : SCHLUSSEL_NAME
Dieser Block tritt für mehrere Releases (z.B. testing, stable ) mehrfach auf.
Will man ein Paket in mehreren Varianten (z.B. mit verschiedenen Perl-Abhängigkeiten) veröffentlichen, legt man dafür weitere Komponenten an.
- Paket hinzufügen: reprepro [-C COMPONENT] includedeb RELEASE DEB_FILE
- Weitere reprepro-Befehle:
- Alle Pakete eines RELEASE anzeigen: reprepro list RELEASE
- Vorhandene Versionen eines Pakets anzeigen: reprepro ls PAKET
- Paket entfernen: reprepro remove RELEASE PAKET
- Paket von einem Release zu einem anderen kopieren: reprepro copy ZIEL QUELLE PAKET
Letzte Aktualisierung: 19.9.2024