NEWS
IoBroker adapter update #alle
-
Systemdata Bitte Ausfüllen Hardwaresystem: Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz Arbeitsspeicher: 31.94 GB Festplattenart: SSD/HDD Betriebssystem: Windows Server 2019 Node-Version: 14.17.5 Nodejs-Version: 14.17.5 NPM-Version: 6.14.14 Installationsart: Skript/Manuell Image genutzt: Nein Ort/Name der Imagedatei: Link Guten morgen zusammen,
habe auf meinem Windows Server den IoBroker laufen und kann schon seit langem nur noch die Adapter updaten wenn ich die Instancen manuell stoppe!
Ansonsten kommt dieser Fehler:$ iobroker upgrade netatmo@1.5.0 Update netatmo from @1.4.4 to @1.5.0 NPM version: 6.14.14 npm install iobroker.netatmo@1.5.0 --loglevel error (System call) npm ERR! code EBUSY npm ERR! syscall rmdir npm ERR! path C:\Program Files\iobroker\ProperSmartHome\node_modules\iobroker.netatmo npm ERR! errno -4082 npm ERR! EBUSY: resource busy or locked, rmdir 'C:\Program Files\iobroker\ProperSmartHome\node_modules\iobroker.netatmo' npm ERR! A complete log of this run can be found in: npm ERR! C:\Program Files\iobroker\SmartHomeProper\env\npm-cache\_logs\2022-03-09T09_54_33_058Z-debug.log host.Server(ProperSmartHome) Cannot install iobroker.netatmo@1.5.0: 4294963214 ERROR: Process exited with code 25
kann mir jemand helfen?
-
@proper0912 sagte in IoBroker adapter update #alle:
kann mir jemand helfen?
Kann man leider nix machen. JS-Controller 4.x started und stoppt Adapter jetzt beim Update immerhin automatisch auf Windows.
-
@proper0912 sagte in IoBroker adapter update #alle:
kann mir jemand helfen?
Installier einen Linux-Server. Da haste das Problem nicht.
-
@proper0912
das ist der grund warum windows so oft neustarts bei updates benötigt.
dateien von laufenden prozessen können nicht gelöscht oder überschrieben werden.
daher muss der prozess zuvor beendet werden, bevor die datei aktualisiert werden kann.EBUSY: resource busy or locked
-
@oliverio sagte in IoBroker adapter update #alle:
@proper0912
das ist der grund warum windows so oft neustarts bei updates benötigt.
dateien von laufenden prozessen können nicht gelöscht oder überschrieben werden.
daher muss der prozess zuvor beendet werden, bevor die datei aktualisiert werden kann.Was ich eigentlich auch total ok finde mir ist es oft unheimlich das da unter Linux die Dateien im laufenden Betrieb überschrieben werden.
-
@bananajoe sagte in IoBroker adapter update #alle:
@oliverio sagte in IoBroker adapter update #alle:
@proper0912
das ist der grund warum windows so oft neustarts bei updates benötigt.
dateien von laufenden prozessen können nicht gelöscht oder überschrieben werden.
daher muss der prozess zuvor beendet werden, bevor die datei aktualisiert werden kann.Was ich eigentlich auch total ok finde mir ist es oft unheimlich das da unter Linux die Dateien im laufenden Betrieb überschrieben werden.
Naja, aber der laufende Prozess macht mit den Dateien doch sowieso nichts, das läuft doch alles im Speicher, oder?
-
@andreas-5 sagte in IoBroker adapter update #alle:
Naja, aber der laufende Prozess macht mit den Dateien doch sowieso nichts, das läuft doch alles im Speicher, oder?
Kann ja sein das das unter Linux der Fall ist. Unter Windows jedenfalls nicht. Es kann zum Beispiel sein das .exe ein paar GByte groß ist. Und wenn nicht dann gibt es Ressourcendateien (z.B. .dll) die können z.B. Bilder enthalten oder auch Funktionen.
Ziel ist das du ein Programm mit einem Umfang von zig Gbyte haben kannst, es aber schnell startet weil es erst einmal nur lädt was es braucht. Und dadurch auch weniger Arbeitsspeicher wegnimmt.Wenn du nun dem Programm zur Laufzeit die Dateien unterm dem hintern änderst passt z.B. ggf. ein Zeiger auf eine Ressource oder Funktion nicht mehr.
Wenn ein Programm so etwas nicht tut ... ok. Unter Windows ist das Standard.
Deshalb die Sperren und Abhängigkeiten in Windows, z.B. auch bei den Diensten.Ich stoppe deshalb unter Linux oft alles bevor ich Updates einspiele. Sonst passt z.B. bei meiner Monitoring Software Zabbix das Webinterface zeitweise nicht mehr zum Programm und Datenbank
-
@bananajoe
Dafür gibt es Swap.
Programme die so groß sind, das sie nicht komplett in den Speicher passen sind aber auch nicht gut designed oder der Speicher ist zu klein.
Im laufenden Betrieb werden an Programmdateien ja keine Änderungen durchgeführt, ausser bei Update. Wenn Update fertig ist, dann muss Prozess neu gestartet werden.Bei Windows wäre das ja auch Möglich, aber es befinden sich sehr viele Dateien im system-kontext und nicht im Anwendungskontext (in Linux nennt sich das glaube ich kernel space und user space).
Um diesen Prozess neu zu starten, muss der komplette Rechner neu gestartet werden.In Linux läuft das Programm halt solange weiter und beim nächsten Start wird einfach die neue Version geladen.
Da finde ich persönlich das Linux-verhalten viel angenehmer.
Auf Linux kam es bisher auch noch nie vor, das man bei Update einfach erzwungener maßen den Rechner neu starten muss, alle Dateien schließen, etc.. -
Danke für die Info Leute!
Wenn das ich richtig lese sollte ich mal den js-controller mal auf Version 4.x updaten und den Rest auch? -
Ja, man hält sein System auf Stand.
Inbesondere, wenn du im latest-Repository als Beta-Tester unterwegs bist. Macht ja überhaupt keinen Sinn alte Versionen zu testen.
-
@oliverio sagte in IoBroker adapter update #alle:
@bananajoe
Auf Linux kam es bisher auch noch nie vor, das man bei Update einfach erzwungener maßen den Rechner neu starten muss, alle Dateien schließen, etc..Neustart nach Update wäre vielleicht ein gutes Feature für Ex-Windows-Nutzer, damit sie sich heimisch fühlen!
-
Du wirst lachen, aber ich mache das bei meinen Linux-Kisten bei größeren Updates auch immer. Bei Kernel-Updates und Firmware-Updates ohnehin.
-
@thomas-braun sagte in IoBroker adapter update #alle:
Du wirst lachen, aber ich mache das bei meinen Linux-Kisten bei größeren Updates auch immer. Bei Kernel-Updates und Firmware-Updates ohnehin.