Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Update Node-js V4.x auf V6.x

    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

    Update Node-js V4.x auf V6.x

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

      Hey,

      aaaalso: Im Rahmen der Adapter-Tests wissen wir das fast alles auf node 6.x läuft. Es gab mal kurz Probleme mit einigen Adaptern die den Seriellen-Port verwenden auf Macs, die sollten aber (zumindestens bei den Standardadaptern) erledigt sein.

      Ansonsten ist 4.x so gut wie 6.x an der Stelle. 6.x soll im Speichermanagement besser sein.

      Ich hatte in einem anderen Thread gelesen das man ggf die genutzten Adapter neu installieren muss … also ob es nur mit dem node-Upgrade geht weiss ich nicht. Das müsste man mal im Detail testen!

      Was History/SQL/Influxdb angeht: Admin 1.6.10 ist auf Github ... und ist Abhängigkeit ... müsste bald offiziell da sein.

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

        @apollon77:

        Ansonsten ist 4.x so gut wie 6.x an der Stelle. 6.x soll im Speichermanagement besser sein. `
        Heisst das ich muss mal zwei gleiche Installationen auf zwei gleichen rechnern nur mit 4er bzw 6er nodejs aufziehen?

        Gruß

        Rainer

        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Wenn Du es vergleichen willst … jöpp :-))

          1 Reply Last reply Reply Quote 0
          • frankjoke
            frankjoke last edited by

            Hallo mitsammen!

            Habe 'ne 6er und ne 4rer version für Testzwecke laufen meiner Adapter laufen und hab auf dem Testsystem auch schon zwischen den Versionen hin- und her-geschaltet.

            Leider ist das nicht immer so einfach da man bestimmte Module die einige Adapter verwenden neu laden/installieren muss wenn man die nodejs-Version ändert! von meinen 20 Adaptern waren 3 betroffen (in beide Richtungen). Der Grund mag daran liegen dass Module unterschiedliche sub-Module laden wenn sie verscheidenen nodejs-Versionen sehen aber auch dass kompilierter Hilfscode mit anderen Parametern kompiliert werden muss.

            Ich versuche nur code zu schreiben die auf 4 (4.7.2 momentane Version) läuft. Es ist verlockend und man gewöhnt sich zu schnell an Dinge die bei 6 anstandslos funktionieren (Beispiel: Klassen, rest-parameter …x, parameter mit default-Werten) aber ich denke dass man nicht alle zwingen soll auf 6 zu gehen.

            Die Teile die mit 4 funktionieren sind aber für mich sehr wichtig geworden (Promises, const/let, =>).

            Ach übrigens, die ungeraden (ganzen) Zahlen der Versionen (also 7 oder 5) sind nur entwicklungsstufen und wenn sie aus dem Beta-Stadium heraus suind werden sie zu den nächsten geraden Versionen und offiziell supported.

            Auf http://node.green/ köönt ihr sehen was in den einzelnen Versionen funktioniert oder nicht.

            p.s.: Einiges funktioniert auch schon auf 0.12 aber eben nur im 'harmony' oder mit 'strict mode' im script aber leider funktioniert das nicht im Javascript-Adapter -scripts (nur im Adapter selbst). Übrigens, alles unter 0.12 wird sowieso nicht mehr supported, nach Erscheinen von 8 dieses Jahr wird auch der support von 0.12 eingestellt.

            Auf https://benchmarking.nodejs.org/ könnt ihr Benchmarks sehen die beleuchten was schneller ist oder weniger speicher verwendet.

            Übrigens, unterschiedliche nodejs installieren auf manchen plattformen auch gleichzeitig irgendeine Version von npm.

            Ich setzte meist npm auf den Letztstand (momentan 4.1.1) mit

            (sudo) npm install npm@latest -g

            wobei bei Linux das sudo notwendig ist und bei manchen Windows-Installationen alle -g npm's als admin laufen sollen.

            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              @fsjoke:

              Leider ist das nicht immer so einfach da man bestimmte Module die einige Adapter verwenden neu laden/installieren muss wenn man die nodejs-Version ändert! von meinen 20 Adaptern waren 3 betroffen (in beide Richtungen). Der Grund mag daran liegen dass Module unterschiedliche sub-Module laden wenn sie verscheidenen nodejs-Versionen sehen aber auch dass kompilierter Hilfscode mit anderen Parametern kompiliert werden muss. `

              Es sind eher "Native" teile (also zusätzlich comilierte Teile eines node Moduls) die probleme machen. Und damit wird ein "neu kompulieren" = neu installieren fällig.

              Wie genau machst Du das denn (Kommandozeile) gehtst Du einfach ins node-modules Verzeichnis bei iobroker und machst "npm install <modulname>–production --prefix ..." oder wie?

              Ich könnte mir grundsätzlich gut vorstellen im Rahmen vom js-controller ein Shellscript/bat.Datei beizulegen wie "reinstall-all.sh" was jeder einfach aufrufen kann und dann wird automagisch alles was installiert ist neu gebaut und fertig.</modulname>

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 last edited by

                @fsjoke:

                Ich versuche nur code zu schreiben die auf 4 (4.7.2 momentane Version) läuft. Es ist verlockend und man gewöhnt sich zu schnell an Dinge die bei 6 anstandslos funktionieren (Beispiel: Klassen, rest-parameter …x, parameter mit default-Werten) aber ich denke dass man nicht alle zwingen soll auf 6 zu gehen. `

                Sehe ich auch so

                Neue Adapter können in meinen Augen problemlos ab 4.x funktionieren. Bestehende Adapter müssen schon einen seeeeehr guten Grund haben die Abwärtskompatibilität zu brechen.

                Ich denke ein Adapter zu haben der nur unter 6.x läuft bedeutet das Ihn aktuell fast niemand nutzen kann/nutzt, damit istdie Frage ob der ENtwickler damit zufrieden ist 🙂 Ich glaube es ist noch zu früh.

                https://github.com/nodejs/LTS

                Also danach ist node 4.x bis April 2017 noch im "kriegt regelmäßige Updates"-Modus und dann bis April 2018 noch im Maintenance (=Bugfixing) Support.

                Die 0.xer Versionen sind auch schon aus dem Bugfix-Support raus … also hier kann das Ziel nur sein: Upgrade!!! (leider meistens inklusive OS drunter)

                Ich denke ab April sollten wir die 6.x als "Empfehlung" setzen und die 4.x als "geht auch noch für mind 1 Jahr) 🙂

                Ingo F

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

                  @apollon77:

                  Ich denke ab April sollten wir die 6.x als "Empfehlung" setzen und die 4.x als "geht auch noch für mind 1 Jahr) 🙂 `
                  ich werde weiter mit 6.x testen und auch schon Images erstellen (das aktuelle BPi Image ist mit nodejs 6.x!)

                  Kannst du mal sagen, bei welchen Adaptern es deiner Meinung nach zu Problemen kommen könnte?

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • Jeeper.at
                    Jeeper.at last edited by

                    Hallo,

                    ein Step by Step wäre nicht schlecht.

                    ich bin noch auf 4.x, würde aber zwecks Zukunftsicherheit gerne auf 6.x umsteigen.

                    Da das aber mein Produktivsystem ist will ich vorher die Risiken abklären.

                    Lg

                    Günther

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

                      @Jeeper.at:

                      ein Step by Step wäre nicht schlecht. `
                      sieh mal in die ersten Posts dieses Threads

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • Jeeper.at
                        Jeeper.at last edited by

                        Ok, ich präzisiere. 🙂

                        Ein Step by Step für Windows Installationen.

                        Lg

                        Günther

                        1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 last edited by

                          @Homoran:

                          @Jeeper.at:

                          ein Step by Step wäre nicht schlecht. sieh mal in die ersten Posts dieses Threads

                          … es fehlt aber genau "Pakete neu installieren" Schritt 😞

                          1 Reply Last reply Reply Quote 0
                          • Blackmike
                            Blackmike last edited by

                            Hmm, das wüsste ich dann auch gerne, ob und was dann neu installiert werden müsste.

                            Ich denke mal, zumindest für die offiziellen Adapter müsste die Aussage zu treffen sein, geht oder benötigen manuellen Eingriff.

                            An der Möglichkeit eines bash-scriptes für Upgrade 4.x.x auf 6.x.x wäre ich dann auch interessiert.

                            1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 last edited by

                              Ich würde einfach (sicherheitshalber) alle Module reinstallieren … dann ist es sicher und man muss es nicht von der Liste der Adapter abhängig machen.

                              Laut Bluefox reicht das hier aus:

                              https://github.com/ioBroker/ioBroker.js ... install.sh

                              Müsste an sich in jeder Installation irgendwo sein ... müsste man mal testen 🙂 Und dann ne Windows-Version bauen 🙂

                              1 Reply Last reply Reply Quote 0
                              • Jeeper.at
                                Jeeper.at last edited by

                                Interessant in dem Zusammenhang wäre für mich, wenn ich die Adapter neu installiere ob dann die Einstellungen weg sind?

                                Lg

                                Günther

                                1 Reply Last reply Reply Quote 0
                                • apollon77
                                  apollon77 last edited by

                                  Ne, das installiert nur "den Code" neu (so als wenn er ein Adapter-Update installieren würde nur das er halt die gleiche version drüberinstalliert) … Alle Werte und Einstellungen bleiben da unangetastet

                                  1 Reply Last reply Reply Quote 0
                                  • O
                                    olifre last edited by

                                    @apollon77:

                                    Laut Bluefox reicht das hier aus:

                                    https://github.com/ioBroker/ioBroker.js … install.sh

                                    Müsste an sich in jeder Installation irgendwo sein ... müsste man mal testen 🙂 Und dann ne Windows-Version bauen 🙂 `

                                    Danke für den Tipp…

                                    an sich eine gute Idee, bei mir ist nur die re-Installation eines Adapters fehlgeschlagen. Da das Script keinerlei Fehlerbehandlung macht, stand das System dann am Ende in "/" und hat dort

                                    chmod 777 * -R
                                    

                                    ausgeführt, rekursiv auf alle Dateien im gesamten Dateisystem.

                                    Super Idee, jetzt darf ich mein Raspbian neu aufsetzen…

                                    Ich hab' meine Lektion gelernt: Nicht blind das Skript ausführen, sondern in Zukunft lieber per Hand die Adapter reinstallieren.

                                    1 Reply Last reply Reply Quote 0
                                    • apollon77
                                      apollon77 last edited by

                                      Uuups … dann muss man da wohl nochmal ran 😞

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

                                        Das liegt IMHO daran, dass dieses skript als reinstall.sh im Ordner/ opt/iobroker liegt. Wenn es da ausgeführt wird geht das -R nur innerhalb von iobroker.

                                        Gruß

                                        Rainer

                                        1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 last edited by

                                          ne nicht ganz.

                                          wenn in dem Skript ein "npm install" fehlschlägt und damit auch das Verzeichnis "node_modules" nicht existiert dann schlägt das "cd node_modules" fehl. Damit bleibt man im gleichen verzeichnis. Dann macht das Skript aber ein "cd .." … und das macht dann gaaaanz dumme dinge

                                          1 Reply Last reply Reply Quote 0
                                          • O
                                            olifre last edited by

                                            @Homoran:

                                            Das liegt IMHO daran, dass dieses skript als reinstall.sh im Ordner/ opt/iobroker liegt. Wenn es da ausgeführt wird geht das -R nur innerhalb von iobroker. `
                                            Genau da liegt es bei mir. Und da habe ich es auch ausgeführt.

                                            Im Skript steht:

                                            while read in; do npm install $in --production; cd node_modules/$in/; npm install --production; cd ../..; done < list.txt
                                            

                                            Der Haken: Wennnpm install $in --productionfür einen Adapter fehlschlägt, wird der Unterordner````
                                            node_modules/$in/

                                            
                                            Daraufhin klappt das````
                                            cd node_modules/$in/
                                            ````nicht, das````
                                            npm install --production;
                                            ````tut nichts, und das````
                                            cd ../..
                                            ````, das ja dennoch ausgeführt wird,
                                            
                                            wechselt in den toplevel, also````
                                            /
                                            ````.
                                            
                                            Die Schleife läuft munter weiter. Weitere Adapter werden also jetzt statt in````
                                            /opt/iobroker/node_modules
                                            ````lustig in````
                                            /node_modules
                                            ````installiert.
                                            
                                            Und zu guter Letzt läuft dann````
                                            chmod 777 * -R
                                            ````auf das ganze Dateisystem.
                                            
                                            Habe mein System erstmal kurz repariert, indem ich die ssh-Host-Keys mit ordenlichen Permissions versehen habe, und reinstalliere jetzt alles.
                                            
                                            Meiner Meinung nach sollte:
                                            

                                            while read in; do npm install $in --production && cd node_modules/$in/ && npm install --production && cd ../..; done < list.txt

                                            gehen, dann wird das jeweils nächste Kommando nur dann ausgeführt, wenn das davor geklappt hat.
                                            
                                            Das kann natürlich immer noch schief gehen, wenn das````
                                            npm install --production
                                            ````fehlschlägt. Ein ordentlicheres Error-Handling evtl. mit trap, oder mit pushd / popd wäre sicher besser, wenn jemand Zeit und Lust hat, das mal zu reparieren…
                                            
                                            Oder sich vorher PWD merken und immer dahin zurückgehen, statt "cd ../.." zu benutzen.
                                            
                                            Mein Problem war übrigens, dass sich der Adapter "iobroker.js-controller" nicht installieren ließ, gleiches Problem wie hier:
                                            
                                            [http://forum.iobroker.net/viewtopic.php?t=3345](http://forum.iobroker.net/viewtopic.php?t=3345)
                                            
                                            Abhilfe hätte ein:
                                            

                                            cd /opt/iobroker
                                            sudo chmod 777 * -R

                                            ****vorher**** gebracht. Das sollte man also auch ins Skript vorher einbauen, zusätzlich zum "nachher".
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            803
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            21
                                            98
                                            19587
                                            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