NEWS
[HowTo][Anleitung] Install von ioBroker auf Debian (Wheezy) in einer VM
-
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
-
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. `
- ioBroker startet nicht automatisch. muss über "./iobroker start" gestartet werden. Sobald ich hier eine Lösung habe werde ich es Berichten.
-
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
-
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
-
Hi Steve,
habe mich mit "Docker" noch nicht beschäftigt. Passt das in das "Gesamt-Konzept" von ioBroker?
Gruß
derAuge
-
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
-
-
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:
Nachdem ersetzen von @@PATH @@lib @@user
sieht es so aus:
! ````
#!/bin/bashBEGIN 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?
-
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 -vv0.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
-
<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"?
-
Wo liegt dein node.js Installation? Und wie konnte man das rausfinden? `
root@bananapi:~# which node /usr/local/bin/node
Gruß
Rainer
-
-
` > 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:~# `
-
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
-
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
-
…ähm, eine Frage noch...warum kein fertiges Docker Image mit NodeJS nehmen?
Oder habe ich da was falsch verstanden?
Steve
-
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
-
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_HOMEUnd ****__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.
-
Sauber!
Nun läuft der Dienst auch nach Neustart
Gruß
derAuge
-
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…
-
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