Jedoch müssen diese zwingend eine bestimmte Grund-Struktur enthalten:
* Das Unterverzeichnis temp_inst/ctrl, welches die Scripte preinstall.sh und postinstall.sh enthalten kann.
Sind diese Scripte vorhanden, wird preinstall.sh vor dem Installieren des Paketes ausgeführt und postinstall.sh danach. So lassen sich zum Beispiel Daemons zuerst stoppen und dann wieder starten.
* Das Unterverzeichnis temp_inst/inst, welches die zu installierenden Dateien enthält. Hier muss bereits die nötige Verzeichnisstruktur des Ziels mit angegeben werden.
Erstellen wir nun also mal ein solches tar-Archiv. Beispielhaft wird es die Senderlisten enthalten.
Zuerst erstellen wir die nötige Grund-Struktur. Wir arbeiten in /tmp/package:
Code: Alles auswählen
cd /tmp
mkdir package
cd package
mkdir temp_inst
cd temp_inst
mkdir ctrl
mkdir inst
Code: Alles auswählen
cd ctrl
echo -e "#!/bin/sh\n#" > preinstall.sh
chmod +x preinstall.sh
echo -e "#!/bin/sh\n#" > postinstall.sh
chmod +x postinstall.sh
cd ..
Code: Alles auswählen
cd inst
mkdir -p var/tuxbox/config/zapit
cp /var/tuxbox/config/zapit/services.xml var/tuxbox/config/zapit/
cp /var/tuxbox/config/zapit/bouquets.xml var/tuxbox/config/zapit/
cp /var/tuxbox/config/zapit/ubouquets.xml var/tuxbox/config/zapit/
cd ..
Code: Alles auswählen
cd /tmp/package
tar -czf chanlists.bin temp_inst
Diese Datei muss nun noch im Online-Update einer anderen Box erscheinen.
Dazu ist eine einfache Textdatei nötig, die jedoch auch wieder einer bestimmten Struktur folgen muss. Der Dateiname ist irrelevant. Wir nennen sie hier internal_update.txt.
Wir legen diese Datei an:
Code: Alles auswählen
touch /tmp/package/internal_update.txt
internal_update.txt enthält für jedes Update-Package eine Zeile mit folgendem Aufbau:
<url> <typ><version><timestamp> <md5sum> <name>
url: Vollständiger URL zur Datei. Wenn die Box mit der IP 192.168.178.20 im Netzwerk erreichbar ist, also:
Code: Alles auswählen
http://192.168.178.20/tmp/packages/chanlists.bin
Code: Alles auswählen
0 = "Release"
1 = "Beta"
2 = "Internal"
L = "Locale"
S = "Settings"
A = "Addon"
T = "Text"
Code: Alles auswählen
270
timestamp: Bezeichnet den Zeitstempel des Packages (zwölfstellig). Den erhält man mit:
Code: Alles auswählen
[zee²] /tmp/package # date +%Y%m%d%H%M -r chanlists.bin
201410241224
Code: Alles auswählen
[zee²] /tmp/package # md5sum chanlists.bin
093ea47f78f4e182edb996dda5b767a5 chanlists.bin
Code: Alles auswählen
Senderlisten von 192.1678.178.20
Code: Alles auswählen
echo "http://192.168.178.20/tmp/packages/chanlists.bin S270201410241224 093ea47f78f4e182edb996dda5b767a5 Senderlisten von 192.1678.178.20" >> /tmp/package/internal_update.txt
Code: Alles auswählen
echo "http://192.168.178.20/tmp/package/internal_update.txt" >> /var/etc/update.urls
Ich hoffe, nun etwas Licht in das Dunkel des Online-Updates gebracht zu haben. Wenn noch Fragen offen sind, so stellt sie hier. Viel Spaß.