Verwaltung Debian-Repository

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