Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:lokales_repository

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:lokales_repository [2018/03/07 13:43] – [[lokales Repository]] hinzugefügt ckolblinux:lokales_repository [2018/09/24 13:41] (aktuell) – [signiertes Repository erzeugen] ckolb
Zeile 1: Zeile 1:
 ====== lokales Repository ====== ====== lokales Repository ======
  
-Um Debian-Pakete zu installieren, die sich in keinem Repository befinden, verwende ich ein einfaches eigenes Repository. Sofern man keine Ansprüche hat, funktioniert das so wunderbar.+Um Debian-Pakete zu installieren, die sich in keinem Repository befinden, kann man ein einfaches eigenes Repository verwenden. Sofern man keine Ansprüche hat, funktioniert das so wunderbar.
  
 ===== lokales Repository erstellen ===== ===== lokales Repository erstellen =====
Zeile 10: Zeile 10:
 Anschließend erstellt man mit folgendem Kommando die Indexdatei ''Packages.gz''. Exakt diesen Namen verwenden! Dieses Kommando muss im Repository-Verzeichnis (''/srv/packages/'') ausgeführt werden. Anschließend erstellt man mit folgendem Kommando die Indexdatei ''Packages.gz''. Exakt diesen Namen verwenden! Dieses Kommando muss im Repository-Verzeichnis (''/srv/packages/'') ausgeführt werden.
 <code bash>dpkg-scanpackages . /dev/null | gzip -c >  Packages.gz</code> <code bash>dpkg-scanpackages . /dev/null | gzip -c >  Packages.gz</code>
 +Falls das Kommando ''dpkg-scanpackages'' nicht vorhanden ist, muss das Paket ''dpkg-dev'' installiert werden.
 +
 Wenn man weitere .deb-Pakete hinzufügt und/oder alte entfernt, ist dieses Kommando erneut auszuführen. Wenn man weitere .deb-Pakete hinzufügt und/oder alte entfernt, ist dieses Kommando erneut auszuführen.
 Hiermit ist bereits das supersimpel-Repository erstellt. Hiermit ist bereits das supersimpel-Repository erstellt.
Zeile 32: Zeile 34:
 Anschließend erstelle ich mit folgendem Kommando die Indexdatei ''Packages.gz''. Exakt diesen Namen verwenden! Dieses Kommando muss im Repository-Verzeichnis (''/var/www/html/packages/'') ausgeführt werden. Anschließend erstelle ich mit folgendem Kommando die Indexdatei ''Packages.gz''. Exakt diesen Namen verwenden! Dieses Kommando muss im Repository-Verzeichnis (''/var/www/html/packages/'') ausgeführt werden.
 <code bash>dpkg-scanpackages . /dev/null | gzip -c >  Packages.gz</code> <code bash>dpkg-scanpackages . /dev/null | gzip -c >  Packages.gz</code>
 +Falls das Kommando ''dpkg-scanpackages'' nicht vorhanden ist, muss das Paket ''dpkg-dev'' installiert werden.
 +
 Wenn man weitere .deb-Pakete hinzufügt und/oder alte entfernt, ist dieses Kommando erneut auszuführen. Wenn man weitere .deb-Pakete hinzufügt und/oder alte entfernt, ist dieses Kommando erneut auszuführen.
 Hiermit ist bereits das supersimpel-Repository erstellt. Hiermit ist bereits das supersimpel-Repository erstellt.
Zeile 42: Zeile 46:
  
 Abschließend ein ''apt update'', um die Paketlisten zu aktualisieren. Dann können die Pakete ganz normal mit apt installiert werden. Abschließend ein ''apt update'', um die Paketlisten zu aktualisieren. Dann können die Pakete ganz normal mit apt installiert werden.
 +
 +====== Repository signieren ======
 +Da neuere APT-Versionen sich weigern, Pakete aus unsignierten Repositorys herunterzuladen, sollte auch das eigene Repository signiert werden. Dadurch kann man weiterhin problemlos eigene Pakete installieren.
 +
 +===== GPG vorbereiten =====
 +Das Repository wird mit einem GPG-Schlüssel signiert. Dazu muss zunächst ein Schlüsselpaar erzeugt werden.
 +Dazu führt man folgendes Kommando aus und folgt den Anweisungen:
 +<code bash>gpg --full-gen-key</code>
 +
 +Alle Schlüssel auflisten
 +<code bash>gpg --list-secret-keys</code>
 +
 +Öffentlichen Schlüssel exportieren (Mailadresse durch die bei der Schlüsselerzeugung angegebene Mailadresse ersetzen):
 +<code bash>gpg --output eigene_packages.gpg --export mailadresse@provider.com</code>
 +Die erzeugte Datei ''eigene_packages.gpg'' enthält den öffentlichen Schlüssel des Repositorys und muss auf allen Rechnern, auf denen es eingebunden werden soll, installiert werden.
 +
 +===== signiertes Repository erzeugen =====
 +Hierfür müssen folgende Kommandos ausgeführt werden, die sich wunderbar in ein kleines Bash-Script packen lassen. Dieses muss nach jeder Änderung des Repositorys ausgeführt werden!
 +Ggf. den Pfad anpassen (/var/www/html/packages)
 +<code bash>#!/bin/bash
 +rm /var/www/html/packages/Release.gpg
 +rm /var/www/html/packages/InRelease
 +cd /var/www/html/packages && dpkg-scanpackages . /dev/null > /var/www/html/packages/Packages && cd -
 +apt-ftparchive release /var/www/html/packages > /var/www/html/packages/Release
 +gpg --clearsign -o /var/www/html/packages/InRelease /var/www/html/packages/Release
 +gpg -abs -o /var/www/html/packages/Release.gpg /var/www/html/packages/Release</code>
 +
 +
 +===== Schlüssel auf Clients installieren =====
 +<code bash>apt-key add eigene_packages.pgp</code>
 +
 +Abschließend kann das Repository wie gewohnt verwendet werden.
linux/lokales_repository.1520430220.txt.gz · Zuletzt geändert: 2018/03/07 13:43 von ckolb

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki