NEWS
SOLVED node js update ohne adapter neu zu installieren?
-
Hi,
ich habe verstanden, dass ich nach der Installation von node v6 auf node v8 die bereits installierten Adapter für diese geänderte node-Version neu kompilieren muss.
Offensichtlicht hat dies bei mir mitsudo -H npm rebuild
nicht geklappt sondern zu den obigen Fehlern geführt.
An anderer Stelle habe ich jetzt gelesen, dass man Folgendes machen muss:cd /opt/iobroker sudo ./reinstall.sh
(habe geprüft - die datei reinstall.sh ist in dem Verzeichnis auch vorhanden)
leider erhalte ich hier wieder den folgenden Fehler
sudo: unable to execute ./reinstall.sh: No such file or directory
Es ist zumausderHautfahren; ich gebe ja ungern auf und etwas möchte ich schon noch versuchen die Adapter neuzukompilieren.
Vielleicht hat ja doch noch jemand einen Tipp?
-
Hi,
okay - Problem gelöst. *****
Danke an jeden der zur Lösung beigetragen hat.
Zusammenfassend stelle ich nochmals die Lösungsschritte dar.Ziel: Node von v6 auf v8 aktualisieren und die Adapter neukomplieren
Lösungsschritte:
sudo iobroker stopp sudo apt-get --purge remove node sudo apt-get --purge remove nodejs sudo apt-get autoremove curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs node -v sudo npm install -g npm@4 npm -v
anschließend in /opt/iobroker die Datei reinstall.sh repariert
(= in einem Editor alle "^M" am Ende jeder Zeile entfernt.anschließend
sudo chmod +x reinstall.sh sudo ./reinstall.sh
und schließend ein reboot
-> läuft das System tadellos mit node v8.
cu
schroedinger -
@schroedinger sagte in node js update ohne adapter neu zu installieren?:
sudo: unable to execute ./reinstall.sh: No such file or directory
Probiere mal
sudo bash ./reinstall.sh
. -
war da mal nicht was
sudo chmod +x reinstall.sh
erstmal ausführbar machen
-
Hi,
zunächst mal "danke", dass ihr euch der Sache annehmt.
Ich habe eure Tipps ausgeführt:
sudo chmod +x reinstall.sh sudo bash ./reinstall.sh
Und dies hat zu folgenden Ergebnis geführt (Idee: vielleicht hat die .sh-Datei ja einen Fehler):
pi@raspberrypi:/opt/iobroker $ sudo bash ./reinstall.sh Commands: iobroker setup [--objects <host>] [--states <host>] [custom] iobroker start iobroker stop iobroker start <adapter> iobroker stop <adapter> iobroker start all iobroker restart iobroker restart <adapter> iobroker add <adapter> [--enabled] [--host <host>] [--port <port>] iobroker install <adapter> iobroker url <url> [<name>] iobroker del <adapter> iobroker del <adapter>.<instance> iobroker update [repository url] [--updatable/--u] [--installed/--i] iobroker upgrade [repository url] iobroker upgrade self [repository url] iobroker upgrade <adapter> [repository url] iobroker upload <pathToLocalFile> <pathIniobroker> iobroker upload all iobroker upload <adapter> iobroker object get <id> iobroker object del <id> iobroker object chmod <object-mode> [state-mode] <id> iobroker object chown <user> <group> <id> iobroker object list <id> iobroker state get <id> iobroker state getplain <id> iobroker state set <id> <value> [ack] iobroker state del <id> iobroker message <adapter>[.instanceid] <command> [<message>] iobroker list <type> [filter] iobroker chmod <mode> <file> iobroker chown <user> <group> <file> iobroker touch <file> iobroker rm <file> iobroker file read <iobroker-path-to-read> [<filesystem-path-to-write>] iobroker file write <filesystem-path-to-read> <iobroker-path-to-read> iobroker user add <user> [--ingroup group] [--password pass] iobroker user del <user> iobroker user passwd <user> [--password pass] iobroker user enable <user> iobroker user disable <user> iobroker user get <user> iobroker user check <user> [--password pass] iobroker group add <group> iobroker group del <group> iobroker group list <group> iobroker group enable <group> iobroker group disable <group> iobroker group get <group> iobroker group adduser <group> <user> iobroker group deluser <group> <user> iobroker set <adapter>.<instance> [--port port] [--ip address] [--ssl true|false] iobroker clean iobroker backup iobroker restore <backup name or path> iobroker <command> --timeout 5000 iobroker status iobroker repo [name] iobroker uuid iobroker unsetup iobroker multihost <enable|disable> [--secure true|false] iobroker multihost browse iobroker multihost connect iobroker version [adapter] iobroker [adapter] -v Optionen: --objects [Standard: "127.0.0.1"] --states [Standard: "127.0.0.1"] --lang [Standard: "en"] ./reinstall.sh: Zeile 4: $'\r': Kommando nicht gefunden. ./reinstall.sh: Zeile 29: Syntaxfehler beim unerwarteten Wort `done' '/reinstall.sh: Zeile 29: ` done < "$BASE/reinstall.list.txt"
Und um zu klären, ob ev. "reinstall.sh" einen Fehler enthält, hier der Inhalt dieser Datei:
#!/bin/bash iobroker stop BASE=$(pwd) if [ ! -f "$BASE/iobroker" ] then echo "Script needs to be started in the iobroker base directory (normally /opt/iobroker on linux)" exit fi if [ -d ./node_modules ] then ls -1 ./node_modules | grep iobroker. > reinstall.list.txt chmod -R 777 * cd node_modules rm -R * pwd while read IN do npm install $IN --production --prefix $BASE if [ $? -eq 0 ] then echo "DONE $IN" else echo "FAIL $IN" fi done < "$BASE/reinstall.list.txt" chmod -R 777 * rm "$BASE/reinstall.list.txt" iobroker upload all fi
Idee: irgendwo habe was diesbezüglich was gelesen, dass die 1. Zeile diesser Datei betrifft und zwar "#!/bin/bash"
Jedenfalls bis ich nach wie vor froh über eine Tipps
-
die Datei ist auf jedem system gleich
deine Formatierung der Datei stimmt nicht
in Zeile 4 ist ein carriage return was nicht sein darf...schau mal ob die Datei erzeugt wurde
reinstall.list.txt
-
@schroedinger
leider hast du nach dem chmod nicht mal ohne bash versucht (da hast du wohl zu viele Optionen gehabt )Wenn dann eine Meldung mit einem ^M kommt hast du ein bekanntes Problem, zu dem auch das von @arteck passt.
Es gab mal eine Zeit, da war die Datei wohl mit einem Windows Programm editiert worden.
Irgendwo hatte @paul53 dazu eine lösung gepostet - und ich hatte irgendwo die richtige Datei zum Download reingestelltGruß
Rainer -
Hi,
- die Datei "reinstall.list.txt" exisitert nicht.
Habe mir dann ein paar der Posts von Paul ansehen.
paul53 schreibt:
Wenn die Datei ca. 654 Byte groß ist, ist sie im Linux-Format; ist sie mehr als 680 Byte groß, muss sie erst in das Linux-Format gebracht werden, z.B. mit Notepad++. Dann ausführen
-> ich habe die Datei in nano geöffnet und alle Leerzeichen entfernt -> die Datei ist jetzt genau 680 Bytes gross -> also muss ich diese ins Linuxformat bringen.
Aber wie? Denn ich habe die Datei ja doch mit nano bearbeitet und abgespeichert -> das sollte doch dann Linux-Format sein?Vielleicht wäre es wirklich das beste eine funktionierende reinstall.sh downzuloaden.
Aber auch mit "advanced search" (alle Posts von paul53 mit "reinstall.sh") konnte ich keinen Link finden um diese Datei downzulaoden. -
Hey,
*** erster Meilenstein erreicht ***
sudo ./reinstall.sh
funktioniert jetzt.
Was habe ich getan?
Ich habe reinstall.sh in einem anderen Editor geöffnet. Dort habe ich festgestellt, dass am Ende jeder Zeile ein "^M" stand.
diese "^M"s habe ich alle entfernt und dann den Befehl ausgeführt.
-> funktioniert.Ich werde jetzt versuchen nochmals ein Update auf node v8 zu machen (habe ich jetzt noch nicht), dann berichten ob die Adapter funktionieren .
Falls "ja" werde dich diesen thread als "gelöst" bezeichen. -
Hi,
okay - Problem gelöst. *****
Danke an jeden der zur Lösung beigetragen hat.
Zusammenfassend stelle ich nochmals die Lösungsschritte dar.Ziel: Node von v6 auf v8 aktualisieren und die Adapter neukomplieren
Lösungsschritte:
sudo iobroker stopp sudo apt-get --purge remove node sudo apt-get --purge remove nodejs sudo apt-get autoremove curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs node -v sudo npm install -g npm@4 npm -v
anschließend in /opt/iobroker die Datei reinstall.sh repariert
(= in einem Editor alle "^M" am Ende jeder Zeile entfernt.anschließend
sudo chmod +x reinstall.sh sudo ./reinstall.sh
und schließend ein reboot
-> läuft das System tadellos mit node v8.
cu
schroedinger -
@schroedinger sagte in node js update ohne adapter neu zu installieren?:
sudo npm install -g npm@4
Version 4 ist mittlerweile relativ alt. Der Downgrade war nur nötig, da einige 5er-Versionen sehr buggy waren. Version 6+ kann ohne Bedenken eingesetzt werden, wenn man sich an einige Regeln hält.