Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. node js update ohne adapter neu zu installieren?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    SOLVED node js update ohne adapter neu zu installieren?

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      schroedinger last edited by

      Hi,

      Ich habe ein gut funktionierendes System (auf Raspberry Pi 3b, mit iobroker, homegear, homebridge, ....)

      Leider verwende ich nach wie vor Node v6.11.5.
      Ich würde aber gerne updaten auf min. Node v8 , da einige Adapter min. Node v8 benötigen.

      Grundsätzlich weiss ich wie ich Node update. ich mache dies auf die folgende Art:

      curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
      sudo apt install -y nodejs
      

      Das Updaten funktioniert auf diese Weise sehr gut , nur funktionieren anschließend die folgenden Adapter nicht mehr:

      • YAHKA
      • HAM (homebridge)
      • ZWAVE

      Irgendwo glaube ich gelesen zu haben, dass man nach dem Update von Node die betroffenen Adapter löschen und wieder installieren muss.
      Ist dies richtig?

      Besonders beim YAHKA würde mich dies sehr stören, da ich sehr viele Geräte dort konfiguriert habe und es super-aufwendig wäre dies nochmals zu konfigurieren.

      -> hat jemand einen Vorschlag wie man Node JS updaten kann ohne die nicht-funktionierenden Adapter anschließend neu installieren zu müssen (sofern dies überhaupt hilft diese Adapter anschließend wieder zum Laufen zu bringen)

      Ich freue mich über alle Vorschläge von euch

      cu
      schroedinger

      Homoran 1 Reply Last reply Reply Quote 0
      • S
        schroedinger last edited by

        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

        AlCalzone 1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active last edited by

          mit rebuild gehts auch

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @schroedinger last edited by Homoran

            @schroedinger sagte in node js update ohne adapter neu zu installieren?:

            Irgendwo glaube ich gelesen zu haben, dass man nach dem Update von Node die betroffenen Adapter löschen und wieder installieren muss.
            Ist dies richtig?

            Nein!

            @schroedinger sagte in node js update ohne adapter neu zu installieren?:

            -> hat jemand einen Vorschlag wie man Node JS updaten kann ohne die nicht-funktionierenden Adapter anschließend neu installieren zu müssen

            Ja!

            Spaß beiseite:
            es muss erst das alte node deinstalliert werden (wie in der Installationsvorschrift beschrieben)

            Nach der Installation von node und am besten VOR dem Start von ioBroker muss ein

            sudo npm -H rebuild
            

            im ioBroker installationsverzeichnis (meist /opt/iobroker) ausgeführt werden

            1 Reply Last reply Reply Quote 0
            • S
              schroedinger last edited by schroedinger

              Hi,

              danke für die rasche Antwort.

              Also ich habe
              iobroker beendet mit

              iobroker stop
              

              node entfernt mit:

              sudo apt-get remove nodejs
              

              die neue (v11) Version von node installiert mit:

              curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
              sudo apt install -y nodejs
              

              bin in das Verzeichnis opt/iobroker gegangen und habe dort ausgeführt:

              sudo npm -H rebuild
              

              Und habe daraufhin nur Folgendes erhalten:

              npm rebuild [[<@scope>/<name>]...]
              
              alias: rb
              

              danach einen reboot des Raspi durchgeführt

              -> und leider , die 3 genannten Adapter (yahka, ham, zwave) starten nicht.

              Ich vermute, dass irgendetwas mit dem "sudo npm -H rebuild" nicht funktioniert hat.
              Hätte ich vielleicht nach dem deinstallieren von node js auch "npm" neu installieren müssen.
              (und falls "ja" wie? 🤔

              Aber andererseits: wenn ich "npm -v" eingebe , erhalte ich "6.5.0" -> npm sollte also installiert sein.

              AlCalzone 1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @schroedinger last edited by

                @schroedinger sagte in node js update ohne adapter neu zu installieren?:

                Ich vermute, dass irgendetwas mit dem "sudo npm -H rebuild" nicht funktioniert hat.

                Ja, @Homoran hat da die Reihenfolge der Argumente vertauscht. -H gehört zu sudo:

                sudo -H npm rebuild
                

                die neue (v11) Version von node installiert mit:

                Bloß nicht! Ungerade Versionen sind Entwicklerversionen und werden von uns nicht unterstützt. Es sollte maximal die aktuelle LTS-Version (v10) installiert werden - und mit der gibts aktuell auch noch ein paar kleinere Probleme. Empfohlen ist v8.

                1 Reply Last reply Reply Quote 0
                • S
                  schroedinger last edited by Jey Cee

                  Hi,

                  danke -
                  Ich bin nochmals vorgegangen wie oben beschrieben (ich starte übrigens immer mit einem funktionierenden System, da ich nach jeden nicht-funktionierenden Versuch mit einem image mein vorheriges System wiederherstelle)
                  nur dass ich dieses Mal Node v8 installiert habe.

                  danach ich habe

                  sudo -H npm rebuild
                  

                  ausführt -> allerdings habe ich ein Unmenge an Fehlermeldungen erhalten.
                  Siehe hier:
                  log.txt

                  EIn Berechtigungsfehler?
                  Sorry, will nicht nerven und ich könnte natürlich auch bei node v6 bleiben, aber ich würde doch gerne die neuen adapter ausprobieren, die eben nur ab v8 gehen.

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @schroedinger last edited by Homoran

                    @schroedinger sagte in node js update ohne adapter neu zu installieren?:

                    allerdings habe ich ein Unmenge an Fehlermeldungen erhalten.

                    nicht wirklich:
                    WARN
                    Es handelt sich hier um buildtools, die keinen zugriff auf root haben (EACCESS) und dann das Ganze in ein temporäres Verzeichnis verlagern

                    SORRY!
                    unten geht es ja noch viel weiter - da muss jemand anderes noch was zu sagen. @AlCalzone

                    1 Reply Last reply Reply Quote 0
                    • S
                      schroedinger last edited by

                      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 mit

                      sudo -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?

                      AlCalzone 1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @schroedinger last edited by

                        @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.

                        1 Reply Last reply Reply Quote 0
                        • arteck
                          arteck Developer Most Active last edited by

                          war da mal nicht was

                          sudo chmod +x reinstall.sh
                          

                          erstmal ausführbar machen

                          1 Reply Last reply Reply Quote 0
                          • S
                            schroedinger last edited by

                            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

                            Homoran 1 Reply Last reply Reply Quote 0
                            • arteck
                              arteck Developer Most Active last edited by arteck

                              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
                              
                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @schroedinger last edited by

                                @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 reingestellt

                                Gruß
                                Rainer

                                1 Reply Last reply Reply Quote 0
                                • S
                                  schroedinger last edited by

                                  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.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    schroedinger last edited by

                                    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.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      schroedinger last edited by

                                      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

                                      AlCalzone 1 Reply Last reply Reply Quote 0
                                      • AlCalzone
                                        AlCalzone Developer @schroedinger last edited by

                                        @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.

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        814
                                        Online

                                        31.7k
                                        Users

                                        79.9k
                                        Topics

                                        1.3m
                                        Posts

                                        homebridge update node js yahka z-wave
                                        4
                                        17
                                        5213
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo