Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:lokales_repository

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:lokales_repository [2018/03/07 13:08] – angelegt ckolblinux:lokales_repository [2018/09/24 13:41] (aktuell) – [signiertes Repository erzeugen] ckolb
Zeile 1: Zeile 1:
-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.+====== lokales Repository ====== 
 + 
 +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 ===== 
 +Zunächst erstellt man ein Verzeichnis, in dem man das Repository anlegen möchte. Z.B. ''/srv/packages''
 + 
 +Dort legt man alle .deb-Pakete ab, die das Repository enthalten soll. 
 + 
 +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> 
 +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. 
 +Hiermit ist bereits das supersimpel-Repository erstellt. 
 + 
 +===== lokales Repository einbinden ===== 
 +Das eigene Repository muss natürlich noch eingebunden werden, damit es verwendet werden kann. 
 +Wenn das Repository so erstellt wurde, wie oben beschrieben, muss folgende Zeile in ''/etc/apt/sources.list'' hinzugefügt werden: 
 +<code>deb file:/srv/packages ./</code> 
 + 
 +Abschließend ein ''apt update'', um die Paketlisten zu aktualisieren. Dann können die Pakete ganz normal mit apt installiert werden. 
 + 
 + 
 +====== Eigenes zentrales Repository ====== 
 +Dies ist nützlich, wenn man das supersimpel-Repository auf mehreren Rechnern verwenden möchte. Man kann dann ein Repository z.B. über einen kleinen lokalen Server oder NAS zur Verfügung stellen.
  
-====== lokales Repository erstellen ====== 
 Zunächst benötigt man einen funktionierenden Webserver. Ich verwende hierfür Apache. Zunächst benötigt man einen funktionierenden Webserver. Ich verwende hierfür Apache.
  
Zeile 10: 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.
  
-====== lokales Repository einbinden ======+===== Repository einbinden =====
 Das eigene Repository muss natürlich noch eingebunden werden, damit es verwendet werden kann. Das eigene Repository muss natürlich noch eingebunden werden, damit es verwendet werden kann.
 Wenn das Repository so erstellt wurde, wie oben beschrieben, muss folgende Zeile in ''/etc/apt/sources.list'' hinzugefügt werden: Wenn das Repository so erstellt wurde, wie oben beschrieben, muss folgende Zeile in ''/etc/apt/sources.list'' hinzugefügt werden:
Zeile 20: 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.1520428126.txt.gz · Zuletzt geändert: 2018/03/07 13:08 von ckolb

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki