Signiertes APT Repository erstellen

Aus Gemini-Wiki
Zur Navigation springen Zur Suche springen
Deutsch.png - in Deutsch English.png - in English
Ambox attention.png Dieser Artikel erfordert mehr Erfahrung im Umgang mit der Dreambox / Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Wenn jemand erfolgreich ein Dreambox SDK eingerichtet hat, z.B. für OE 2.2, dann ist dieser Artikel sicherlich interessant. Er beschreibt das einrichten eines signierten APT Repositories. So könnt ihr eure gebauten Pakete via Paketverwaltung (APT) der Dreambox installieren.

Basis des hier beschriebenen Artikels ist eine DEB basierende Distribution (z.B. Ubuntu, Mint, Debian, usw.) die auf eurem Rechner mit dem Dreambox SDK läuft. Eine Webserver brauchen wir auch, welcher die Daten für die Dreambox bereitstellen wird.

Repository erstellen

Abhängigkeiten installieren

sudo apt-get install dpkg-dev apache2 dpkg-sig

GPG Schlüssel erstellen

Jetzt erstellen wir einen GPG Schlüssel für das signieren der Pakete und des Repositories.

 gpg --gen-key

Die einzelnen Abfragen werde ich hier nicht genauer beschreiben. Funktioniert mit den Standard Abfragen. Gebt am Schluss eine Passphrase ein und wartet bis das erzeugen erfolgreich abgeschlossen ist. Einfach geduldig sein und mit der Maus / Keyboard ein bisschen herumfuchteln.

Abfragen des Schlüssels

Informationen über den erstellen Schlüssel könnt ihr mit folgendem Befehl abfragen.

gpg --list-keys

Public Key exportieren/speichern

Erstellt nun den Öffentlichen Schlüssel mit dem folgenden Befehl. Der Schlüssel (keyFile.key) muss im root Verzeichnis des Webservers platziert werden und wird später von den Client-Dreamboxen geladen, damit Pakete installiert werden können.

gpg --output keyFile.key --armor --export eureid_oder_name

Webserver einrichten

Die Dateistruktur des Webservers habe ich wie folgt eingerichtet für eine DM 8000 HD PVR. Beim Erstellen der Pakete via Dreambox SDK erhält man z.B folgende Verzeichnisse all, dm8000, mips32el. So habe ich hier unter dem vorkonfiguriertem Webroot Verzeichnis des Webservers die Pakete abgelegt. Z.B. unter:

/var/www/html/repository/dm8000/all
/var/www/html/repository/dm8000/dm8000
/var/www/html/repository/dm8000/mip32el

Pakete signieren

Die Pakete in den Verzeichnissen könnt ihr mit dem folgenden Befehl signieren.

dpkg-sig --sign *.deb

Repository Index-Dateien erzeugen

Erstellt mit den folgenden Befehlen die benötigte Packages Index-Datei und komprimiert sie. Eine unkomprimierte Datei muss auch enthalten sein.

apt-ftparchive packages . > Packages
gzip -c Packages > Packages.gz

Release, InRelease, and Release.gpg Datei erstellen

Release Dateien erstellen.

apt-ftparchive release . > Release
gpg --clearsign -o InRelease Release
gpg -abs -o Release.gpg Release

Dreambox einrichten

Public Key imporieren

Auf der Dreambox muss der Öffentliche Schlüssel importiert werden mit dem folgenden Befehl. Server Ip-Adresse und Verzeichniss muss sicherlich angepasst werden.

wget -O - http://server_ip/mein_public.key | apt-key add -

Paketlisten anpassen

Nun müsst ihr auf der Dreambox im Verzeichnis /etc/apt/sources.list drei Dateien erstellen für die verfügbaren Feeds (z.B. all, dm8000, mips32el). Die folgenden Befehlen zeigen den Inhalt der Dateien.

root@dm8000:~# cat /etc/apt/sources.list.d/all-feed.list 
deb http://server_ip/repository/dm8000/all ./
root@dm8000:~# cat /etc/apt/sources.list.d/dm8000-feed.list 
deb http://server_ip/repository/dm8000/dm8000 ./
root@dm8000:~# cat /etc/apt/sources.list.d/mips32el-feed.list 
deb http://server_ip/repository/dm8000/mips32el ./
root@dm8000:~#

Paketliste aktualisieren / Pakete installieren

Ist alles eingerichtet könnt ihr von der Dreambox die Paketlisten aktualisieren mit dem Befehl:

apt-get update

Anschliessend könnt ihr die verfügbaren Pakete vom Feed installieren, usw.

Weblinks