Linux Schnellstart (auch für Raspberry Pi)

Allgemein


Achtung! Diese Anleitung nicht verwenden, wenn ein fertiges Image aus dem Download-Bereich dieser Seite verwendet wurde. Unsere Images aus dem Download-Bereich sind komplett fertig – also inkl. installiertem ioBroker. Eine erneute Installation nach dieser Anleitung ist also nicht mehr notwendig (und hat schon zu Problemen geführt).

Hinweise zur Nutzung von Images befinden sich auf den zugehörigen Readme Seiten (siehe Download-Tabelle, vorletzte Spalte – ReadMe) und auf dieser Seite.


Hier findet Ihr eine Installationsanleitung für ioBroker auf Linux am Beispiel vom Raspberry PI mit dem System Jessie. Die eigentliche Anleitung zur Installation von nodejs und ioBroker kann für sehr viele andere Linux-Systeme verwendet werden.

Es kann bei der Installation immer wieder zu Besonderheiten kommen auf Grund von Abhängigkeiten zu anderen Paketen oder zusätzlichen Installationen.

Wenn Ihr nicht mehr weiterkommt, dann postet bitte eure Fragen im Forum.

Bei der hier veröffentlichen Anleitung wird bei jedem Kernel Update wenn vorhanden auch automatisch die node.js Versionen aktualisiert.


benötigte Hardware

  • Raspberry PI
  • Netzteil (es ist wichtig ein gutes Netzteil zu haben. Mit schwachem Netzteil sind Stabilitätsprobleme zu erwarten)
  • Speicherkarte

Oder jede andere beliebige Hardware mit einem gängigen Linux (Debian, Ubuntu, usw.), oder auch einem Mac.

benötigte / wichtige Links


Installationsanleitung

Installation Raspbian

  1. Download Image (aktuelles RASPBIAN oder RASPBIAN LITE)
  2. Image auf die Karte installieren (Win32Diskimager)
  3. Raspberry starten
  4. Über Putty am Raspberry anmelden. Login: pi, Kennwort: raspberry
  5. mit sudo raspi-config die nötige Grundkonfiguration durchführen
  6. Root Zugang freischalten (NUR wenn root-Zugang per SSH oder sftp unbedingt benötigt wird)
    1. sudo nano /etc/ssh/sshd_config
    2. Datei anpassen: PermitRootLogin without-password in PermitRootLogin yes ändern und speichern
    3. SSH neu starten: sudo /etc/init.d/ssh restart
    4. sudo su (jetzt ist der Root Modus gestartet)
    5. mit passwd ein Passwort vergeben
  7. Ausloggen und als Root über Putty anmelden

Installation Node.js

—————————————————————————————————————-
Hinweis: Die untenstehende Anleitung bezieht sich auf nodejs 8.x

Die Nutzung von Nodejs 6.x ist ebenfalls möglich (dazu in Schritt 4.1 die 8 gegen eine 6 austauschen),

anschließend das dort mitgelieferte npm 3.x nach der Installation  auf v4.x upgraden mit

sudo npm install -g npm@4
————————————————————————————————-

  1. Kernel Update: sudo apt-get update && sudo apt-get upgrade
  2. Auf bereits vorhandene Versionen von nodejs und npm testen.
    1. node -v
    2. nodejs -v
    3. npm -v
  3. nur wenn ALLE diese Befehle kein Ergebnis bringen unter 4. (bei RaspberryPi1 unter 5.) weitermachen, sonst
    1. Die alten node & node.js Versionen deinstallieren
      1. sudo apt-get --purge remove node
      2. sudo apt-get --purge remove nodejs
      3. sudo apt-get autoremove
      4. sudo reboot
  4. Node.js neu installieren für Linux und Raspberry 2/3
    1. curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    2. sudo apt-get install -y build-essential libavahi-compat-libdnssd-dev libudev-dev libpam0g-dev nodejs
    3. reboot
  5. das mitglieferte npm 5.6.0 npm unbedingt downgraden mit sudo npm install -g npm@4 npm 5.x enthält noch einen Bug, der bei ioBroker zu massiven Problemen führt.
  6. Node.js neu installieren nur für Raspberry Pi1 (sollte es beim download zu einer Fehlermeldung kommen, bitte unter http://nodejs.org/dist/latest-v8.x/ die aktuelle Versionsnummer heraussuchen und in den Befehlen 1-3 ersetzen)
    1. wget http://nodejs.org/dist/latest-v8.x/node-v8.11.3-linux-armv6l.tar.gz
    2. tar -xvf node-v8.11.3-linux-armv6l.tar.gz
    3. cd node-v8.11.3-linux-armv6l
    4. sudo cp -R * /usr/local/
    5. sudo ln -s /usr/local/bin/node /usr/bin/nodejs
  7. das mitglieferte npm 5.6.0 npm unbedingt downgraden mit sudo npm install -g npm@4 npm 5.x enthält noch einen Bug, der bei ioBroker zu massiven Problemen führt.
  8. als Root über Putty anmelden
  9. Nach der Installation muss das Kommando “node -v” die Version von node.js zurückgeben. Falls es nicht passiert, dann sollte noch ein Alias erzeugt werden:
    sudo ln -s /usr/local/bin/nodejs /usr/bin/node

Bei einer bestehenden ioBroker-Installation müssen beim Wechsel der Masterversion von nodejs (4.x, 6.x, 8.x, 10.x) anschließend unbedingt die bereits installierten Adapter für diese geänderte node-Version neu kompiliert werden.

Dies geschieht mit dem Befehl: sudo ./reinstall.sh


In sehr alten Installationen gab es zwei Bugs bei dieser Datei.

Deshalb sollten erst die Eigenschaften Dateigröße und Ausführbarkeit überprüft werden:


 

der korrekte Output sollte so aussehen:


je nachdem wo node installiert wurde kann die Datei auch 6 bis 8 Byte größer sein.

Die Datei war damals irrtümlich im Windows-Format abgespeichert worden.

Dies äußert sich in einer Dateigröße von > 670 Byte oder beim Aufruf der Datei darin, dass ein Zeichen ^M als Fehler bemerkt wird.Um diesen Bug zu beheben, bitte über die Konsole ausführen:

Den letzten Befehl auch dann ausführen, wenn die Datei zwar im Linux-Format vorliegt (< 670 Byte), aber nicht ausführbar ist, was sich sich beim Aufruf der Datei in der Antwort “Befehl nicht gefunden” äußert.


Installation ioBroker

  1. ioBroker installieren
    1. sudo mkdir /opt/iobroker
    2. sudo chmod 777 /opt/iobroker
    3. cd /opt/iobroker
    4. sudo npm install iobroker --unsafe-perm
  2. je nach OS muss ioBroker evtl. noch mit sudo iobroker start gestertet werden
  3. ioBroker über IP im Webbrowser aufrufen: http://IP-Adresse:8081

weiter geht es Hier!


Upgrade von nodejs und npm

Hier am Beispiel eines Upgrades von Node 6 & npm 3 — auf Node 8 & npm 4

VORHER BACKUP MACHEN!!

Wenn ihr nicht als Root angemeldet seid, “sudo” vor die Befehle stellen..

Folgende Befehle sind auszuführen

iobroker stop

apt-get --purge remove node nodejs

apt-get autoremove

reboot

 

Nach dem Reboot geht es mit diesen Befehlen weiter:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

apt-get install -y build-essential libavahi-compat-libdnssd-dev libudev-dev libpam0g-dev nodejs

reboot

 

Nach dem erneuten Reboot geht es mit diesen Befehlen weiter:

npm i -g npm@4

Die zum Schluss erscheinende Meldung Update available 5.6.0 → 6.0.0 │ Run npm i -g npm to update einfach ignorieren!

 

cd /opt/iobroker

dann:

sudo chmod +x reinstall.sh

./reinstall.sh

.. endet mit Meldung
— ./reinstall.sh: Zeile 34: Dateiende beim Suchen nach `”‘ erreicht.
— ./reinstall.sh: Zeile 37: Syntax Fehler: Unerwartetes Dateiende.
Dies ist kein Grund zur Sorge.

 

sollte jedoch eine Meldung kommen

-bash: ./reinstall.sh: /bin/bash^M: bad interpreter: No such file or directory

muss die Datei reinstall.sh auf Linux-Zeilenende umgewandelt werden.
Das geht mit Notepad++ oder auf der Kommandozeile mit diesen Befehlen (danke an paul53)

mv /opt/iobroker/reinstall.sh /opt/iobroker/reinstall.dos

tr -d '\r' < /opt/iobroker/reinstall.dos > /opt/iobroker/reinstall.sh

Jetzt noch ein

iobroker start

Und ioBroker läuft mit Node 8..


feste IP vergeben (optional)

sudo nano /etc/dhcpcd.conf

Pro interface anfügen (Beispiel):

interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

letzte Änderung: 17.02.2018