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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Update Node-js V4.x auf V6.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                            • frankjoke
                              frankjoke last edited by

                              Ich habe das original-script für Linux etwas abgeändert:

                              Zuerst gehe ich natürlich ins /opt/iobroker oder wo ihr das sonst habt

                              Dann erzeuge ich mit````
                              ls -1 ./node_modules | grep iobroker. > list.txt

                              eine Liste der Adapter. Kann sie dann noch bearbeiten um etwaige Adapter die ich nur für tests drinnen hatte wieder zu entfernen.
                              
                              Dann starte ich das script mit:
                              

                              sudo iobroker stop
                              sudo rm node_modules/* -R
                              sudo rm iobroker
                              sudo npm install iobroker --unsafe-perm
                              chmod 777 * -R
                              while read in; do npm install $in --production ; done < list.txt
                              chmod 777 * -R
                              iobroker upload all
                              sudo iobroker start

                              
                              Vielleicht ist ein chmod überfällig aber sonst hat es bis jetzt funktioniert. Leider werden die original npm-versionen geladen aber man kann ja list.txt ändern um sie durch git-versionen zu ersetzten.
                              
                              Wenn ein adapter mucken macht dann versuch ich ihn mit sudo npm nachzuinstallieren aber sonst installiere ich nur iobroker selbst als sudo.
                              
                              In Windows mach ich im Prinzip das selbe aber ohne sudo und und chmod, habe mir 'ne Liste mit adapter-npm-commandos (npm install adapter xxxx –production) angelegt anstatt die list.txt zu erzeugen.
                              1 Reply Last reply Reply Quote 0
                              • apollon77
                                apollon77 last edited by

                                @olifre:

                                Meiner Meinung nach sollte: `

                                Super Ideen. Vor allem auch anstelle dem "cd .." kram direkt den Pfad zu merken, das chmod am Anfang ist auch sinnvoll.

                                Wenn Du magst pass es an und liefere es als Pull-Request ein oder schreib es im Forum, dann übernehme ich es.

                                Ich würde Sonntag da nochmal reinschauen (bin jetzt 2 Tage unterwegs) oder Bluefox ist schneller. 🙂

                                Ingo F

                                1 Reply Last reply Reply Quote 0
                                • A
                                  aquapro last edited by

                                  EDIT sagt: Frage nicht mehr relevant.

                                  Gruß

                                  Tino

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    Fitti last edited by

                                    Jaja, die immer und überall geführten Diskussionen… 8-)
                                    @apollon77:

                                    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. `
                                    Das sehe ich genauso.
                                    @apollon77:

                                    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. `
                                    Und selbst danach… viele nutzen überhaupt nicht die aktuellsten Patche, da auch überhaupt nicht notwendig. Wer sein System frei macht ist selber schuld. Mein ioBroker läuft stark abgeschirmt.
                                    @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) 🙂 `
                                    Macht mir natürlich sorgen. Mein ioBroker will einfach nicht vernünftig auf einem Raspi, Banana oder Cubi laufen. Wahrscheinlich zu viel drauf. Vor allem Speichernutzung und CPU Takt sind Primärprobleme. Aber auch schlechte Images von Herstellern.

                                    I. d. Tat habe ich noch nie eine solch problemlose Installation wie auf der Synolgie gehabt. Hier bin ich aber eingeschränkter in den Versionen.

                                    Und dennoch laufen große Videokonverter, CMS-Systeme, Datenbanken usw.. Und ein ioBroker Adapter, der zumeist nur einfache Aufgaben erledigt, benötigt nun das allerneueste?

                                    Aus wirtschaftlichen Gründen ist es auch ideal,da diese die ganze Zeit läuft.

                                    Ich bitte es nochmal wirklich zu durchdenken, ob nun der eine neue gute Befehl, der mit 10 weiteren Codezeilen auch so erledigt werden kann, das rechtfertigt. Es steigt auch nicht jeder gleich auf Windows 10 um.

                                    Oft ist es doch nur die Detailverliebtheit von Programmierern und nicht die technische Notwendigkeit. Das kenne ich aus vielen beruflichen Situationen genauso. Admins und Entwicklung streiten oft über die Ansichten.

                                    Letztendlich verliert immer nur der User/Kunde.

                                    Ich wollte einfach mal eine andere Sichtweise aufbringen.

                                    Fitti

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

                                      @Fitti:

                                      @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) 🙂 `
                                      Macht mir natürlich sorgen.

                                      …

                                      Ich bitte es nochmal wirklich zu durchdenken, ob nun der eine neue gute Befehl, der mit 10 weiteren Codezeilen auch so erledigt werden kann, das rechtfertigt. Es steigt auch nicht jeder gleich auf Windows 10 um.

                                      Oft ist es doch nur die Detailverliebtheit von Programmierern und nicht die technische Notwendigkeit. Das kenne ich aus vielen beruflichen Situationen genauso. Admins und Entwicklung streiten oft über die Ansichten.

                                      Letztendlich verliert immer nur der User/Kunde. `

                                      Valide Sichtweise und ich kann Dir versichern das denke keiner der Entwickler absichtlich Nutzer aussperren wird - vor allem nicht für bestehende Funktionen. Auch wenn die "Empfehlung für neue Installation" (so bezeichne ich es mal) höher ist ändert sich nicht so viel.

                                      Man muss aber auch sagen das halt node 0.x im Speichermanagement einige Probleme hatte, es mit 4.x besser ist und 6.x nochmal besser sein soll.

                                      Als Entwickler im nodejs-Umfeld muss man aber auch die Abhängigkeiten berücksichtigen. Man baut nicht alles selbst sondern nutzt Libraries. Wenn man also Funktionen nicht selbst bauen will und eine Library findet kann es sein das diese schon eine node-Limitierung vorgibt. Ich baue gerade einen Adapter um Smartmeter per SML auszulesen und da gibt es eine Library die ich nutzen kann für das Protokoll. Diese ist aber erst ab node 4.x funktionsfähig … und schon ist das Limit da ... entweder ich baue das jetzt selbst nochmal nach oder ich überzeuge den Library-Entwickler das umzubauen oder ich akzeptiere es ... Schwierig ... 🙂

                                      Naja, wir schauen einfach mal wie es weitergeht und nehmen jedes Feedback von "falschen" Abhängigkeiten und versuchen Sie weg zu machen ,,,

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

                                        @fsjoke:

                                        Ich habe das original-script für Linux etwas abgeändert: `

                                        Ich habe auch mal ein bissl gespielt und komme mit den Ideen aus dem Thread hier zu folgendem:

                                        iobroker stop
                                        BASE=$(pwd)
                                        
                                        if [ -d ./node_modules ]
                                        then
                                            ls -1 ./node_modules | grep iobroker. > reinstall.list.txt
                                            chmod 777 * -R
                                            cd node_modules
                                            rm -R *
                                            pwd
                                        
                                            while read IN
                                            do
                                                npm install $IN --production
                                                if [ $? -eq 0 ]
                                                then
                                                    if [ -d ./node_modules/$IN ]
                                                    then
                                                        cd node_modules/$IN/
                                                        npm install --production
                                                        cd "$PWD"
                                                    fi
                                                    echo "DONE $IN"
                                        
                                                else
                                                    echo "FAIL $IN"
                                                fi
                                        
                                            done < "$BASE/reinstall.list.txt"
                                            chmod 777 * -R
                                            rm "$BASE/reinstall.list.txt"
                                            iobroker upload all
                                        fi
                                        
                                        

                                        bisher trocken auf meinem Rechner mit nem projekt getestet … muss ich heute Abend mal auf meinen iobroker-Testhost loslassen.

                                        Andere Tester wilkommen 🙂

                                        Ingo F

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

                                          Nur 'ne Frage Ingo,

                                          warum rufst du install 2x auf?

                                          ! ````
                                          npm install $IN --production
                                          if [ $? -eq 0 ]
                                          then
                                          if [ -d ./node_modules/$IN ]
                                          then
                                          cd node_modules/$IN/
                                          npm install --production

                                          
                                          Das 1\. install installiert schon alles und man muss nicht nochmal ins Verzeichnis des Modules reingehen um es nochmal zu installieren!
                                          
                                          Der effekt (bei älteren npm's) ist nur dass module 2x heruntergeladen werden, einmal in ioboker/node_modules und einmal in iobroker/node_modules/iobroker.adapter/node_modules
                                          
                                          Der Sinn von Node/npm ist alle Modulversionen in einem Projekt nur einmal lokal zu speichern.
                                          
                                          Egal, ich weiß nicht wann damit angefangen wurde, aber es war wahrscheinlich als jemand Probleme hatte unterschiedliche Versionen auf unterschiedliche Weise zu installieren (einmnal im iobroker Hauptverzeichnis und einmal im Adapter) was dann dazu führt dass die falschen Module geladen werden!
                                          
                                          Deshalb verwende ich falls ich in einem anderen Verzeichnis als /opt/iobroker installiere immer  ` > –prefix "/opt/iobroker" `  um nicht ein neues node_modules anzufangen.
                                          1 Reply Last reply Reply Quote 0
                                          • apollon77
                                            apollon77 last edited by

                                            Diese Frage kann wohl nur Bluefox beantworten. Ich hab an der Stelle das gleiche gemacht wie das Skript davor. Ich habe es nur etwas "Fehlersicherer" gemacht … Die Frage ist aber komplett gerechtfertigt. Ich sehe es auch eher unnötig das doppelt zu machen.

                                            @Bluefox: Any comment to this?

                                            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

                                            879
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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