Wie zusätzliche Pakete auf Router upgradesicher installieren?

Hallo,

ich habe mit opkg update und opkg install mc das Paket mc auf meinem Futro installiert. Der Futro hatte eine IPv4-Adresse aus dem lokalen Netz und konnte so das Paket aus dem OpenWRT-Archiv über das Internet laden.

Nach einem sysupgrade mit einem neuen Image war das Paket wieder weg.

Was muss man machen, damit zusätzlich installierte Software nach einem sysupgrade bestehen bleibt?

Gruß

Paul

Ich vermute mal, da hilft nur, es ins Image direkt mit einzubacken.

Siehe hier:
https://lede-project.org/docs/guide-quick-start/standardflashinginstructions#installing_lede_sysupgrade

You must install again all the packages you installed before the
sysupgrade, also enable them again if they added system services.

Ich hab jetzt so langsam auch 5-6 Knoten und nach jedem Update kippe ich ein:

opkg update
opkg install snmpd

Ich persönlich habe mir überlegt, ob es nicht die Möglichkeit gibt diese Befehle einfach via cron (dann auch update-fest) Täglich um 5 oder 6 Uhr auszuführen. Noch schöner wäre natürlich immer direkt nach dem Ausführen des autoupdaters…
Hat damit mal schon jemand gebastelt?

Ansonsten: cssh und fertig… :wink:

Bedenke, dass der Platz zumindest in den 4MB-Geräten gerade panisch knapp wird.
das AR-tiny-Target wird aller voraussicht nach beim 2017-release weder opkg enthalten, noch wird überhaupt Platz sein für voluminöse dinge wie snmpd.

Einfachste Möglichkeit ist wirklich, es mit einzukompilieren und daraus einen eigenen Releasezweig (parallel zu „stable“, „experimental“ zu machen, also z.B. „stablesnmp“ und „expeimentalsnmp“)
Das ist dann zwar extra Aufwand für den Build-Prozess, braucht auch extra Speicherplatz, ist aber wirklich das Stabilste.

Naja, außer mir braucht niemand snmpd, weshalb dann 1000 Knoten damit bestücken?! Und extra build Aufwand…
Abgesehen davon: ich habe keinen einzigen Node mit 4MB, alle 8, 16 oder mehrere GB (die offloader), da tun die paar KB für snmpd nicht weh… :wink:

Ich habe eine Möglichkeit gefunden, wie man Pakete upgradesicher installieren kann. Zumindest funktioniert dies, wenn man eine Image mit sysupgrade installiert.

In der Datei /etc/sysupgrade.conf kann man festlegen, welche Dateien oder Ordner behalten werden sollen:

## This file contains files and directories that should
## be preserved during an upgrade.

# /etc/example.conf
# /etc/openvpn/

Hier muss man jedoch alle Dateien angeben, die bei einem Paket installiert werden, also auch Libraries und config files.

Das wird nicht ganz so funktionieren wie du willst.
Wenn sich die kernelversion, der branch oder andere breaking changes der ABI/API von Gluon/Openwrt/Lede ergeben, wird es dir wohl damit das System ausseinanderhauen.(ich gebe zu, dass kommt nicht oft vor, aber wenn es das tut, dann ist es tödlich)
Dann eher ein upgradeskript bauen, das die packete nach dem upgrade wieder einbaut.
Es klappt bei kleineren Updates, aber es ist absolut nocht zu empfehlen, aus meiner sicht!
Man verliert vermutlich auch die verwaltung durch opkg - so übernommene packete sind dann zombies… Nicht installiert und installiert zugleich.

Ja, da hast du wohl recht.
Zumindest ist es aber so möglich, z. B. eigene Scripte oder Daten vorm Überschreiben zu schützen.

Ich weiß jedoch nicht, ob das auch bei einem autoupdate funktioniert.

genau, dafür ist es gedacht.
alles andere: eigene firmware bauen, eigener autoupdater.

1 Like