Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [HowTo][Anleitung] Install von ioBroker auf Debian (Wheezy) in einer VM

    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

    [HowTo][Anleitung] Install von ioBroker auf Debian (Wheezy) in einer VM

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

      Hallo zusammen,

      hier einmal meine Erfahrung bei der Installation von ioBroker.

      Das ganze habe ich auf einer VMware installiert.

      Rechner mit Win7 64Bit

      VM-Player installiert

      Die Netzinstallation von Debian geladen (debian-7.8.0-amd64-netinst.iso)

      Neue VM erstellt und von der "debian-7.8.0-amd64-netinst.iso" gestartet.

      Für die Installation gibt es wohl schon genug "HowTo's

      Bei der Auswahl des Systems habe ich mich auf den ssh-Server und die standard-Tools beschränkt. Den Rechner habe ich "ioBroker" genannt

      Je nach Internetanbindung ist die Installation rasch erledigt und man hat ein Debian-System zum testen von ioBroker.

      nun geht es an die Installation

      mit Putty via SSH auf das System verbinden.

      ! ` > Using username "root".

      root@192.168.102.110's password:

      Linux ioBroker 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64

      The programs included with the Debian GNU/Linux system are free software;

      the exact distribution terms for each program are described in the

      individual files in /usr/share/doc/*/copyright.

      Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

      permitted by applicable law.

      Last login: Wed Feb 25 21:02:37 2015 from 192.168.102.101

      root@ioBroker:~# `

      Wir sind nun auf dem System und können mit der Installation beginnen:

      ! ` > root@ioBroker:~# ##### Update der Linux-Module #####

      root@ioBroker:~# apt-get update

      root@ioBroker:~# apt-get upgrade -y `

      Nun benötigen wir das nodejs-Paket

      ! ````
      root@ioBroker:~# ##### Vorbereitung der ioBroker Installation #####
      root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~# apt-get install curl
      Die folgenden zusätzlichen Pakete werden installiert:
      libcurl3 librtmp0 libssh2-1
      Die folgenden NEUEN Pakete werden installiert:
      curl libcurl3 librtmp0 libssh2-1
      0 aktualisiert, 4 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
      Es müssen 797 kB an Archiven heruntergeladen werden.
      Nach dieser Operation werden 1.406 kB Plattenplatz zusätzlich benutzt.
      Möchten Sie fortfahren [J/n]?
      ! Entpacken von librtmp0:amd64 (aus .../librtmp0_2.4+20111222.git4e06e21-1_amd64.deb) ...
      Vormals nicht ausgewähltes Paket libssh2-1:amd64 wird gewählt.
      Entpacken von libssh2-1:amd64 (aus .../libssh2-1_1.4.2-1.1_amd64.deb) ...
      Vormals nicht ausgewähltes Paket libcurl3:amd64 wird gewählt.
      Entpacken von libcurl3:amd64 (aus .../libcurl3_7.26.0-1+wheezy12_amd64.deb) ...
      Vormals nicht ausgewähltes Paket curl wird gewählt.
      Entpacken von curl (aus .../curl_7.26.0-1+wheezy12_amd64.deb) ...
      Trigger für man-db werden verarbeitet ...
      librtmp0:amd64 (2.4+20111222.git4e06e21-1) wird eingerichtet ...
      libssh2-1:amd64 (1.4.2-1.1) wird eingerichtet ...
      libcurl3:amd64 (7.26.0-1+wheezy12) wird eingerichtet ...
      curl (7.26.0-1+wheezy12) wird eingerichtet ...
      root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~# curl -sL https://deb.nodesource.com/setup | bash -

      Populating apt-get cache...

      • apt-get update

      Installing packages required for setup: apt-transport-https...

      • apt-get install -y apt-transport-https 2>&1 > /dev/null

      Confirming "wheezy" is supported...

      • curl -sLf -o /dev/null 'https://deb.nodesource.com/node/dists/wheezy/Release'

      Adding the NodeSource signing key to your keyring...

      • curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
        OK

      Creating apt sources list file for the NodeSource repo...

      • echo 'deb https://deb.nodesource.com/node wheezy main' > /etc/apt/sources.list.d/nodesource.list
      • echo 'deb-src https://deb.nodesource.com/node wheezy main' >> /etc/apt/sources.list.d/nodesource.list

      Running apt-get update for you...

      • apt-get update

      ! ## Run apt-get install nodejs (as root) to install Node.js and npm
      ! root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~#
      root@ioBroker:~# apt-get install -y nodejs
      ! Die folgenden zusätzlichen Pakete werden installiert:
      rlwrap
      Die folgenden NEUEN Pakete werden installiert:
      nodejs rlwrap
      0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
      Es müssen 6.174 kB an Archiven heruntergeladen werden.
      Nach dieser Operation werden 20,3 MB Plattenplatz zusätzlich benutzt.
      ! Entpacken von rlwrap (aus .../rlwrap_0.37-3_amd64.deb) ...
      Vormals nicht ausgewähltes Paket nodejs wird gewählt.
      Entpacken von nodejs (aus .../nodejs_0.10.36-1nodesource1~wheezy1_amd64.deb) ...
      Trigger für man-db werden verarbeitet ...
      rlwrap (0.37-3) wird eingerichtet ...
      update-alternatives: /usr/bin/rlwrap wird verwendet, um /usr/bin/readline-editor (readline-editor) im Auto-Modus bereitzustellen
      nodejs (0.10.36-1nodesource1~wheezy1) wird eingerichtet ...
      root@ioBroker:~#
      root@ioBroker:~#
      ! ````

      Nun die Installation von ioBroker (Update 01.03.2015)

      ! ` > root@ioBroker:~# ### Install

      root@ioBroker:~# mkdir /opt/iobroker

      root@ioBroker:~# cd /opt/iobroker

      root@ioBroker:/opt/iobroker# npm install iobroker

      /

      iobroker@0.5.1 install /opt/iobroker/node_modules/iobroker

      node lib/setup.js

      npm install iobroker.js-controller –production --silent --prefix "/opt/iobroker/node_modules/iobroker/lib/../../../"

      npm install iobroker.admin --production --silent --prefix "/opt/iobroker/node_modules/iobroker/lib/../../../"

      Write "./iobroker start" to start the ioBroker

      Auto-start was enabled. Write "update-rc.d -f iobroker.sh remove" to disable auto-start

      iobroker is started. Go to "http://ip-addr:8081" to open the admin UI.

      iobroker@0.5.1 node_modules/iobroker

      └── yargs@1.2.6 (minimist@0.1.0)

      root@ioBroker:/opt/iobroker#

      root@ioBroker:/opt/iobroker# `

      Nun ist es geschafft.

      Go to "http://ip-addr:8081" to open the admin UI.

      Auf euer Feedback für Ergänzungen / Erfahrungen / Anpassungen bin ich gespannt

      Gruß

      derAuge

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

        Bekannte Probleme:

        • ioBroker startet nicht automatisch. muss über "./iobroker start" gestartet werden. Sobald ich hier eine Lösung habe werde ich es Berichten.
          Update 01.03.2015
        • iobroker@0.5.1 install

        Nun werden alle Pathde richtig gesetzt und ioBroker wird auch beim neustart gestartet 
        

        ` > BlueFox habe iobroker Packet upgedated:

        • (bluefox) create environment variable IOBROKER_HOME

        • (bluefox) iobroker command is accessible from everywhere

        • (bluefox) detect nodejs path with 'which node'

        Das heißt, man kann jetzt in scripts $IOBROKER_HOME variable verwenden: z.b.

        cd $IOBROKER_HOME

        Und iobroker kann man jetzt überall aufrufen und nicht unbedingt aus "/opt/iobroker".

        Das haben aber nur neue Installationen. Bei älteren muss es manuell eingetragen werden.

        Und dass bei der Installation node Pfad auch berücksichtigt wird. `

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

          @Bluefox

          nach der Installation erscheint:

          Auto-start was enabled.

          Das ist leider nicht der Fall. Ist das in dem Install-Script für dieses System nicht vorgesehen?

          Gruß

          deerAuge

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

            Hallo "derAuge",

            interessanter Beitrag…wäre auch eine schlanke VM Lösung wie Docker eine Alternative für Dich? Man könnte dieses Docker Image viel leichter sharen. Hab' das schon mal mit ioBroker 0.39 ausprobiert. Die meisten neuen LINUX Distributionen sind dockerfähig.

            cu

            Steve

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

              Hi Steve,

              habe mich mit "Docker" noch nicht beschäftigt. Passt das in das "Gesamt-Konzept" von ioBroker?

              Gruß

              derAuge

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

                Hallo,

                ich denke sehr gut, denn:

                • Gerade die ioBroker Architektur bietet sich an Teile (Adapter?) davon auf anderen Devices (oder virtualisierte Devices) laufen zu lassen.

                • Die ARM Device werden immer stärker (8 Cores mit 2 GB RAM sind schon verfügbar wie Odroid XU3)

                • ioBroker reicht ja nicht aus…ein anderes Docker Image hat bei mir "homegear" installiert.

                • Das alles auf einem Raspi2.

                • Details auf homegear.eu verfügbar.

                Einen richtigen PC Server (mit ESXi oder VM player) kommt für mich nicht mehr in Frage, schon allein wegen des Energieverbrauchs.

                Steve

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

                  @derAuge:

                  @Bluefox

                  nach der Installation erscheint:

                  Auto-start was enabled.

                  Das ist leider nicht der Fall. Ist das in dem Install-Script für dieses System nicht vorgesehen?

                  Gruß

                  deerAuge `
                  Na ja… Ich habe auch nur mit debian ausprobiert.

                  Man kann aber die zwei Skripts anschauen:

                  • https://github.com/ioBroker/ioBroker/bl ... obroker.sh

                  Nachdem ersetzen von @@PATH @@lib @@user

                  sieht es so aus:

                  ! ````
                  #!/bin/bash

                  BEGIN INIT INFO

                  Provides: iobroker.sh

                  Required-Start: $network $local_fs $remote_fs

                  Required-Stop:: $network $local_fs $remote_fs

                  Default-Start: 2 3 4 5

                  Default-Stop: 0 1 6

                  Short-Description: starts ioBroker

                  Description: starts ioBroker

                  END INIT INFO

                  (( EUID )) && echo .You need to have root privileges.. && exit 1
                  PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid
                  NODECMD=/usr/local/bin/node
                  IOBROKERCMD=/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js
                  RETVAL=0
                  IOBROKERUSER=root

                  ! start() {
                  echo -n "Starting ioBroker"
                  sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD start
                  RETVAL=$?
                  }
                  ! stop() {
                  echo -n "Stopping ioBroker"
                  sudo -u ${IOBROKERUSER} $NODECMD $IOBROKERCMD stop
                  RETVAL=$?
                  }
                  case "$1" in
                  start)
                  start
                  ;;
                  stop)
                  stop
                  ;;
                  restart)
                  stop
                  start
                  ;;
                  *)
                  echo "Usage: iobroker {start|stop|restart}"
                  exit 1
                  ;;
                  esac
                  exit $RETVAL

                  
                  - und
                  
                  [https://github.com/ioBroker/ioBroker/bl … install.sh](https://github.com/ioBroker/ioBroker/blob/master/install/linux/install.sh)
                  
                  Nach dem ersetzen von @@PATH sieht die so aus.
                  
                  >! ````
                  #!/bin/bash
                  #Create empty directories
                  IO_USER=$USER
                  >! #Find out if user "iobroker" exists
                  if [ $(cat /etc/passwd | grep "/home" |cut -d: -f1 | grep '^iobroker/r> | wc -l) -eq 0 ]
                  then
                      IO_USER=$USER
                  else
                      IO_USER=iobroker
                  fi
                  >! #Set rights
                  echo "Set permissions..."
                  chmod 777 /etc/init.d/iobroker.sh
                  #Replace user pi with current user
                  sed -i -e "s/IOBROKERUSER=.*/IOBROKERUSER=$IO_USER/" /etc/init.d/iobroker.sh
                  chown root:root /etc/init.d/iobroker.sh
                  update-rc.d iobroker.sh defaults
                  >! # Start the service!
                  echo "Start iobroker..."
                  cd /opt/iobroker/node_modules/iobroker.js-controller/
                  #chmod 777 * -R
                  ./iobroker start
                  echo "call http://ip_address:8081/ in browser to get the AdminUI of ioBroker"
                  

                  iobroker.sh wird in "/etc/init.d/" kopiert und danach wird ein mal install.sh ausgeführt.

                  Kann es sein, dass irgendwelche Pfade nicht stimmen? Z.B. "/usr/local/bin/node"

                  oder /etc/init.d/

                  Existiert in deine Installation "/etc/init.d/iobroker.sh"?

                  Hat die Rechte?

                  root:/opt/iobroker/node_modules/iobroker/install/linux# ls -l /etc/init.d/iobroker.sh
                  -rwxrwxrwx 1 root root 1058 Jan 27 15:06 /etc/init.d/iobroker.sh
                  

                  Was passiert wenn du "/usr/local/bin/node" startest?

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

                    iobroker.sh wird in "/etc/init.d/" kopiert und danach wird ein mal install.sh ausgeführt.

                    Kann es sein, dass irgendwelche Pfade nicht stimmen? Z.B. "/usr/local/bin/node"

                    oder /etc/init.d/

                    root@ioBroker:~# ls -l /usr/local/bin/
                    insgesamt 0
                    
                    
                    root@ioBroker:~# ls -l  /etc/init.d/iobroker.sh
                    -rwxrwxrwx 1 root root 1058 Feb 25 21:21 /etc/init.d/iobroker.sh
                    
                    

                    = JA, es sieht so aus, dass die node-installation wo anders liegt
                    ` > root@ioBroker:~# node -v

                    v0.10.36

                    root@ioBroker:~# /usr/bin/nodejs -v

                    v0.10.36

                    root@ioBroker:~# `

                    Existiert in deine Installation "/etc/init.d/iobroker.sh"?

                    root@ioBroker:~# ls -l /etc/init.d/iobroker.sh
                    -rwxrwxrwx 1 root root 1058 Feb 25 21:21 /etc/init.d/iobroker.sh
                    
                    

                    Ich habe ja die Installation NODE nicht von dir genommen

                    sondern:

                    https://github.com/joyent/node/wiki/ins … ge-manager

                    Setup with Debian (as root):
                    
                    apt-get install curl
                    curl -sL https://deb.nodesource.com/setup | bash -
                    
                    Then install with Debian (as root):
                    
                    apt-get install -y nodejs
                    
                    

                    <u>Habe zwei Fehler (Anpassungen) gefunden</u>

                    1.) Install-Path

                    Zum testen habe ich die iobroker.sh angepasst

                    root@ioBroker:~# nano /etc/init.d/iobroker.sh

                    # NODECMD=/usr/local/bin/node
                    NODECMD=node
                    
                    

                    2.) sudo-Paket fehlt

                    root@ioBroker:~# /etc/init.d/iobroker.sh
                    Usage: iobroker {start|stop|restart}
                    root@ioBroker:~# /etc/init.d/iobroker.sh restart
                    Stopping ioBroker/etc/init.d/iobroker.sh: Zeile 27: sudo: Kommando nicht gefunden.
                    Starting ioBroker/etc/init.d/iobroker.sh: Zeile 21: sudo: Kommando nicht gefunden.
                    root@ioBroker:~# nano /etc/init.d/iobroker.sh
                    root@ioBroker:~# apt-get install sudo
                    Paketlisten werden gelesen... Fertig
                    Abhängigkeitsbaum wird aufgebaut.
                    Statusinformationen werden eingelesen.... Fertig
                    Die folgenden NEUEN Pakete werden installiert:
                      sudo
                    0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
                    Es müssen 848 kB an Archiven heruntergeladen werden.
                    Nach dieser Operation werden 1.881 kB Plattenplatz zusätzlich benutzt.
                    Holen: 1 http://security.debian.org/ wheezy/updates/main sudo amd64 1.8.5p2-1+nmu2 [848 kB]
                    Es wurden 848 kB in 0 s geholt (1.273 kB/s).
                    Vormals nicht ausgewähltes Paket sudo wird gewählt.
                    (Lese Datenbank ... 31719 Dateien und Verzeichnisse sind derzeit installiert.)
                    Entpacken von sudo (aus .../sudo_1.8.5p2-1+nmu2_amd64.deb) ...
                    Trigger für man-db werden verarbeitet ...
                    sudo (1.8.5p2-1+nmu2) wird eingerichtet ...
                    root@ioBroker:~#
                    root@ioBroker:~#
                    root@ioBroker:~#
                    root@ioBroker:~# /etc/init.d/iobroker.sh restart
                    Stopping ioBrokerioBroker controller daemon is not running
                    Starting ioBrokerStarting ioBroker controller daemon...
                    ioBroker controller daemon started. PID: 3790
                    root@ioBroker:~#
                    
                    

                    Danach wird ioBroker auch nach einem Neustart ausgeführt

                    Gruß

                    derAuge

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

                      @derAuge:

                      <u>Habe zwei Fehler (Anpassungen) gefunden</u>

                      1.) Install-Path

                      Zum testen habe ich die iobroker.sh angepasst

                      root@ioBroker:~# nano /etc/init.d/iobroker.sh

                      # NODECMD=/usr/local/bin/node
                      NODECMD=node
                      
                      

                      2.) sudo-Paket fehlt `
                      Man muss in iobroker.sh Fullpath benutzen, weil es sein kann dass die Pfade nur für einen Anwender gesetzt sind. Mindestens bei Raspi bei Neustart hat es (glaube ich) nicht funktioniert, wenn ich einfach "node" reinschreibe.

                      Wo liegt dein node.js Installation? Und wie konnte man das rausfinden?

                      Kannst du deine Anleitung anpassen mit "sudo"?

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

                        @Bluefox:

                        Wo liegt dein node.js Installation? Und wie konnte man das rausfinden? `

                        root@bananapi:~# which node
                        /usr/local/bin/node
                        
                        

                        Gruß

                        Rainer

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

                          @Homoran:

                          @Bluefox:

                          Wo liegt dein node.js Installation? Und wie konnte man das rausfinden? `

                          root@bananapi:~# which node
                          /usr/local/bin/node
                          
                          

                          Gruß

                          Rainer `
                          Cool. Danke 🙂

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

                            ` > Using username "root".

                            root@'s password:

                            Linux ioBroker 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.7-ckt4-3~bpo70+1 (2015-02 -12) x86_64

                            The programs included with the Debian GNU/Linux system are free software;

                            the exact distribution terms for each program are described in the

                            individual files in /usr/share/doc/*/copyright.

                            Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

                            permitted by applicable law.

                            Last login: Fri Feb 27 17:46:23 2015

                            root@ioBroker:~#

                            root@ioBroker:~# which node

                            /usr/bin/node

                            root@ioBroker:~# `

                            ` > Using username "root".

                            root@'s password:

                            Linux pi2 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l

                            The programs included with the Debian GNU/Linux system are free software;

                            the exact distribution terms for each program are described in the

                            individual files in /usr/share/doc/*/copyright.

                            Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

                            permitted by applicable law.

                            Last login: Wed Feb 25 18:53:38 2015 from 192.168.28.201

                            root@pi2:~#

                            root@pi2:~# which node

                            /usr/local/bin/node

                            root@pi2:~# `

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

                              habe mir den Kopf zubrochen…..

                              leider bekomme ich es nicht hin

                              Vorhaben:

                              die Datei "/etc/init.d/iobroker.sh" per script anpassen (damit es auch unter docker funktioniert)

                              Wir wissen (Dank Homoran) das wir mit "which node" den Path der NODE-Installation erhalten

                              1.) Problem

                              den möchte ich in eine Variabe speichen

                                NOTE_PATH=$(which node)
                              ````= :cry: geht leider nicht
                              
                              2.) Warum das?
                              
                              mit einem weiteren Befehl möchte ich die Datei "/etc/init.d/iobroker.sh" anpassen
                              

                              sed -i -e "s/NODECMD=.*/NODECMD=$NODE_PATH/" /etc/init.d/iobroker.sh

                              
                              Das ganze soll dann "ungefär so" aussehen:
                              

                              NOTE_PATH=$(which node) && sed -i -e "s/NODECMD=.*/NODECMD=$NODE_PATH/" /etc/init.d/iobroker.sh

                              
                              um es dass (als workaround) im Dockerfile zu nutzen
                              
                              Das Dockerfile könnte dann folgendermassen aussehen:
                              
                              >! #
                              >! # VERSION 0.0.2
                              >! #
                              >! FROM debian
                              >! MAINTAINER derAuge
                              >! #
                              >! RUN apt-get update
                              >! RUN apt-get upgrade -y
                              >! #
                              >! #
                              >! # Installation von NODE vorbereiten
                              >! #
                              >! RUN apt-get install -y curl
                              >! RUN curl -sL [https://deb.nodesource.com/setup](https://deb.nodesource.com/setup) | bash -
                              >! RUN apt-get install -y nodejs
                              >! #
                              >! # in "/etc/init.d/iobroker.sh" wird sudo benötigt
                              >! RUN apt-get install -y sudo
                              >! #
                              >! ##### Official installation way is #####
                              >! #
                              >! RUN mkdir /opt/iobroker
                              >! WORKDIR /opt/iobroker
                              >! RUN npm install iobroker
                              >! #
                              >! # ioBroker erwartet NODE in /usr/local/bin/node
                              >! # Debian (z.B.x64) installiert nach /usr/bin/node
                              >! # hier muss die "/etc/init.d/iobroker.sh" angepasst werden
                              >! #
                              >! # Test
                              >! RUN NOTE_PATH=$(which node) && sed -i -e "s/NODECMD=.*/NODECMD=$NODE_PATH/" /etc/init.d/iobroker.sh
                              >! #
                              
                              Leider scheitert es schon an den ersten Punkten. Wer kann da weiter helfen?
                              
                              Gruß
                              
                              derAuge
                              1 Reply Last reply Reply Quote 0
                              • S
                                StefSign last edited by

                                Hallo,

                                probier doch mal NODE_PATH=which node

                                Dabei wird durch die Backticks "which node" ausgeführt und das Ergebnis NODE_PATH zugewiesen. Backticks (nicht mit Singleticks verwechseln) gehen auch für andere UNIX Befehle.

                                Docker:

                                • Na da bin ich auch dran interessiert! 🙂

                                Steve

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

                                  …ähm, eine Frage noch...warum kein fertiges Docker Image mit NodeJS nehmen?

                                  Oder habe ich da was falsch verstanden?

                                  Steve

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

                                    @StefSign:

                                    Hallo,

                                    probier doch mal NODE_PATH=which node

                                    Dabei wird durch die Backticks "which node" ausgeführt und das Ergebnis NODE_PATH zugewiesen. Backticks (nicht mit Singleticks verwechseln) gehen auch für andere UNIX Befehle.

                                    Docker:

                                    • Na da bin ich auch dran interessiert! 🙂

                                    Steve `

                                    Das war der erste Schritt. Passt

                                    root@pi2:~# NODE_PATH=`which node`
                                    root@pi2:~# echo $NODE_PATH
                                    /usr/local/bin/node
                                    

                                    Die Var wird gesetzt

                                    Nun zum nächsten Problem

                                    Da in der Var ein "/" ist, wird dieser als Komando gewertet und es kommt zu einer Fehlermeldung

                                    root@pi2:~# sed -i -e "s/NODECMD=.*/NODECMD=$NODE_PATH/" /etc/init.d/iobroker.sh
                                    sed: -e Ausdruck #1, Zeichen 23: Unbekannte Option für `s'
                                    
                                    

                                    Lösung ist : "\ Hebt die spezielle Bedeutung des nächsten Zeichens auf. "

                                    Da ich aber mehrere "/" in meiner Var habe funktioniert das nicht

                                    Mein Test ohne Var (mit händischen Daten) sieht so aus:

                                    root@pi2:~# sed -i -e "s/NODECMD=.*/NODECMD=\/usr\/bin\/node/" /etc/init.d/iobroker.sh
                                    
                                    

                                    Durch \ werden die spezielle Bedeutung der nächsten Zeichen aufgehoben. Ergebniss ist dann OK

                                    Aber es soll/muss ja mit der Var funktionieren.

                                    Suchen…. Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen....

                                    Und endlich gefunden:

                                    • Du verwendest gleich zwei Zeichen in dem Ausdruck, die von sed als

                                    > reserviert betrachtet werden.
                                    
                                    >
                                    
                                    > "Normalerweise" verwendet sed "/" als Trennzeichen. Also z.B.
                                    
                                    > "s/alt/neu/". Das geht nicht, weil "/" im Pfad vorkommen kann. Deswegen
                                    
                                    > weicht man auf "#" als Trennzeichen aus. Das geht natürlich in dem
                                    
                                    > Moment nicht mehr, wo Du "#" in dem Ausdruck verwenden willst. 
                                    

                                    Also sieht es nun folgendermassen aus:

                                    root@pi2:~# NODE_PATH=`which node`
                                    root@pi2:~# echo $NODE_PATH
                                    /usr/local/bin/node
                                    root@pi2:~#
                                    root@pi2:~# sed -i -e "s#NODECMD=.*#NODECMD=$NODE_PATH#" /etc/init.d/iobroker.sh
                                    root@pi2:~#
                                    
                                    

                                    Sooo einfach kann Linux sein

                                    Nun erst mal Frühstück und dann weiter mit dem Docker 🙂 … werde berichten

                                    Gruß

                                    derAuge

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

                                      @derAuge:

                                      @StefSign:

                                      Hallo,

                                      probier doch mal NODE_PATH=which node

                                      Dabei wird durch die Backticks "which node" ausgeführt und das Ergebnis NODE_PATH zugewiesen. Backticks (nicht mit Singleticks verwechseln) gehen auch für andere UNIX Befehle.

                                      Docker:

                                      • Na da bin ich auch dran interessiert! 🙂

                                      Steve `

                                      Das war der erste Schritt. Passt

                                      root@pi2:~# NODE_PATH=`which node`
                                      root@pi2:~# echo $NODE_PATH
                                      /usr/local/bin/node
                                      

                                      Die Var wird gesetzt

                                      Nun zum nächsten Problem

                                      Da in der Var ein "/" ist, wird dieser als Komando gewertet und es kommt zu einer Fehlermeldung

                                      root@pi2:~# sed -i -e "s/NODECMD=.*/NODECMD=$NODE_PATH/" /etc/init.d/iobroker.sh
                                      sed: -e Ausdruck #1, Zeichen 23: Unbekannte Option für `s'
                                      
                                      

                                      Lösung ist : "\ Hebt die spezielle Bedeutung des nächsten Zeichens auf. "

                                      Da ich aber mehrere "/" in meiner Var habe funktioniert das nicht

                                      Mein Test ohne Var (mit händischen Daten) sieht so aus:

                                      root@pi2:~# sed -i -e "s/NODECMD=.*/NODECMD=\/usr\/bin\/node/" /etc/init.d/iobroker.sh
                                      
                                      

                                      Durch \ werden die spezielle Bedeutung der nächsten Zeichen aufgehoben. Ergebniss ist dann OK

                                      Aber es soll/muss ja mit der Var funktionieren.

                                      Suchen…. Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen.... Suchen....

                                      Und endlich gefunden:

                                      • Du verwendest gleich zwei Zeichen in dem Ausdruck, die von sed als

                                      > reserviert betrachtet werden.
                                      
                                      >
                                      
                                      > "Normalerweise" verwendet sed "/" als Trennzeichen. Also z.B.
                                      
                                      > "s/alt/neu/". Das geht nicht, weil "/" im Pfad vorkommen kann. Deswegen
                                      
                                      > weicht man auf "#" als Trennzeichen aus. Das geht natürlich in dem
                                      
                                      > Moment nicht mehr, wo Du "#" in dem Ausdruck verwenden willst. 
                                      

                                      Also sieht es nun folgendermassen aus:

                                      root@pi2:~# NODE_PATH=`which node`
                                      root@pi2:~# echo $NODE_PATH
                                      /usr/local/bin/node
                                      root@pi2:~#
                                      root@pi2:~# sed -i -e "s#NODECMD=.*#NODECMD=$NODE_PATH#" /etc/init.d/iobroker.sh
                                      root@pi2:~#
                                      
                                      

                                      Sooo einfach kann Linux sein

                                      Nun erst mal Frühstück und dann weiter mit dem Docker 🙂 … werde berichten

                                      Gruß

                                      derAuge `
                                      ich habe iobroker Packet upgedated:

                                      • (bluefox) create environment variable IOBROKER_HOME

                                      • (bluefox) iobroker command is accessible from everywhere

                                      ***** (bluefox) detect nodejs path with 'which node'****

                                      Das heißt, man kann jetzt in scripts $IOBROKER_HOME variable verwenden: z.b.````
                                      cd $IOBROKER_HOME

                                      Und ****__iobroker__**** kann man jetzt überall aufrufen und nicht unbedingt aus "/opt/iobroker".
                                      
                                      Das haben aber nur neue Installationen. Bei älteren muss es manuell eingetragen werden.
                                      
                                      Und dass bei der Installation node Pfad auch berücksichtigt wird.
                                      1 Reply Last reply Reply Quote 0
                                      • derAuge
                                        derAuge last edited by

                                        Sauber!

                                        Nun läuft der Dienst auch nach Neustart

                                        Gruß

                                        derAuge

                                        1 Reply Last reply Reply Quote 0
                                        • K
                                          Kev0 last edited by

                                          Hi,

                                          habe mit einen debian server aufgesetzt und bekomme nun ein Problem beim Neustart:

                                          Der Adapter Teil lädt nicht und im log von iobroker steht:

                                          ioBroker	2015-05-25 17:47:23	error	host.ioBroker Invalid request getInstalled. "callback" or "from" is null
                                          ioBroker	2015-05-25 17:47:23	error	host.ioBroker Invalid request getRepository. "callback" or "from" is null
                                          ioBroker	2015-05-25 17:47:23	info	host.ioBroker instance system.adapter.admin.0 started with pid 720
                                          

                                          beim manuellen Start über das bootscript kommt (weiss nicht ob das von Relevanz ist)

                                          root@ioBroker:/etc/init.d# sh iobroker.sh start
                                          iobroker.sh: 11: iobroker.sh: EUID: not found
                                          Starting ioBrokerStarting ioBroker controller daemon...
                                          ioBroker controller daemon started. PID: 796
                                          
                                          

                                          den node Pfad habe ich zu /usr/bin/node angepasst.

                                          nach dem händischen Starten geht alles wie es soll…

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

                                            @Kev0:

                                            Hi,

                                            habe mit einen debian server aufgesetzt und bekomme nun ein Problem beim Neustart:

                                            Der Adapter Teil lädt nicht und im log von iobroker steht:

                                            ioBroker	2015-05-25 17:47:23	error	host.ioBroker Invalid request getInstalled. "callback" or "from" is null
                                            ioBroker	2015-05-25 17:47:23	error	host.ioBroker Invalid request getRepository. "callback" or "from" is null
                                            ioBroker	2015-05-25 17:47:23	info	host.ioBroker instance system.adapter.admin.0 started with pid 720
                                            

                                            beim manuellen Start über das bootscript kommt (weiss nicht ob das von Relevanz ist)

                                            root@ioBroker:/etc/init.d# sh iobroker.sh start
                                            iobroker.sh: 11: iobroker.sh: EUID: not found
                                            Starting ioBrokerStarting ioBroker controller daemon...
                                            ioBroker controller daemon started. PID: 796
                                            
                                            

                                            den node Pfad habe ich zu /usr/bin/node angepasst.

                                            nach dem händischen Starten geht alles wie es soll… `

                                            Hallo Kev0

                                            willkommen im Forum

                                            HAst du mit "root" im "Verzeichniss" installiert?

                                            root@ioBroker:~# ### Install
                                            root@ioBroker:~# mkdir /opt/iobroker
                                            root@ioBroker:~# cd /opt/iobroker
                                            root@ioBroker:/opt/iobroker# npm install iobroker
                                            

                                            Gruß

                                            derAuge

                                            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

                                            636
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            27
                                            15708
                                            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