Start
Computer
Turris Omnia
Turris Omnia: Eigenes PKG Repo
Für Turris OS ≥ 3.9
Alle gewünschten .ipk Dateien irgendwo lokal speichern und dann mit
localrepo add /pfad/zum/package.ipk
zum lokalen Repo hinzufügen (es wird unter /usr/share/updater/localrepo abgelegt).
Danach fügt man die Packages in die /etc/updater/conf.d/user.lua wie folgt ein:
/etc/updater/conf.d/user.lua
Install("package", {repository = {"localrepo-user"}})
Lokales Repo für Turris OS < 3.9
Ein Verzeichnis erstellen in dem die Pakete liegen, z.B. /srv/repo.
Die gewünschten Pakete (.ipk Dateien) dort ablegen.
Die Datei ipkg-make-index.sh ins gleiche Verzeichnis.
Ein wrapper script namens makeindex.sh erstellen und ausführbar setzen:
cat makeindex.sh <<EOF
#!/bin/sh
DIR="/root/repo"
cd "$DIR"
sh ./ipkg-make-index.sh . | gzip > Packages.gz
EOF
chmod +x makeindex.sh
Das wrapper script muss jedes Mal aufgerufen werden, wenn Pakete im Verzeichnis hinzugefügt/entfernt/geändert werden.
Eine respository definiton in die Datei /etc/updater/user.lua aufnehmen, zusammen mit den Installationsbefehlen für die gewünschten Pakete:
/etc/updater/user.lua
Repository("local","file:///srv/repo", {verification = "none"})
Install("myownpackage")
Das script pkgupdate (Ältere Versionen: updater.sh) aufrufen. Es sollte das neue Repository erkennen und alle gewünschten Pakete installieren.
Remote Repo für Turris OS < 3.9
Im Grunde gleich wie oben, empfehlenswert ist hier aber Signaturen zu erzwingen:
/etc/updater/conf.d/user.lua
Repository("meinrepo","http://meinserver.domain/repo", {verification="sig", ocsp=false, pubkey="file:///etc/updater/keys/blip.key"})
Install("myownpackage")
oder (mit dem public key embedded - bitte das Komma und %0a beachten)
/etc/updater/conf.d/user.lua
Repository("meinrepo","http://meinserver.domain/repo", {verification="sig", ocsp=false, pubkey="data:,%0aRWQ2DdeqFY/T86Cv/TRXnKq9hEZOYFQaTGmGIgHpc3fJZ/uo1nz+CZwk"})
Install("myownpackage")
Siehe auch die Dokumentation des Updaters .
Signaturen
Um die Datei Packages.gz zu signieren, wird das Tool usign verwendet.
Den Source dazu findet man auf git.openwrt.org
usign -S -m Packages -s /pfad/zu/mein_secret.key
Es wird die ungepackte Datei Packages signiert, erst danach die Packages.gz
erstellt.