NEWS
[SOLVED] Instal.auf FreeBSD funktioniert nicht.
-
@mrMuppet Sorry, meine Abende und Wochenenden sind derzeit komplett verplant Ggf. Montag.
-
@mrMuppet Was lange währt... Ich habe gerade nochmal einen potentiellen Fix gepusht.
Hast du noch Zeit und Lust den zu testen? -
@AlCalzone gerne morgen. Gerade noch ne Hochzeit...
-
@AlCalzone Leider immer immer noch ohne Erfolg.
root@iobroker_v2:~ # rm -rf /opt/iobroker root@iobroker_v2:~ # curl -sL https://raw.githubusercontent.com/ioBroker/ioBroker/freebsd-fix/installer.sh | bash - + INSTALLER_VERSION=2019-05-21 + [[ 0 -eq 0 ]] + IS_ROOT=true + ROOT_GROUP=root ++ uname + unamestr=FreeBSD + '[' FreeBSD = Linux ']' + '[' FreeBSD = Darwin ']' + '[' FreeBSD = FreeBSD ']' + HOST_PLATFORM=freebsd + ROOT_GROUP=wheel + IOB_DIR=/opt/iobroker + '[' freebsd = osx ']' + CONTROLLER_DIR=/opt/iobroker/node_modules/iobroker.js-controller + INSTALLER_INFO_FILE=/opt/iobroker/INSTALLER_INFO.txt + INSTALL_TARGET=iobroker + IOB_USER=iobroker + '[' freebsd = osx ']' + test -t 1 ++ which tput ++ tput colors + ncolors=294 + test -n 294 + test 294 -ge 8 ++ tput cols + termcols=294 ++ tput bold + bold= ++ tput smul + underline= ++ tput smso + standout= ++ tput sgr0 + normal= ++ tput setaf 0 + black='' ++ tput setaf 1 + red='' ++ tput setaf 2 + green='' ++ tput setaf 3 + yellow='' ++ tput setaf 4 + blue='' ++ tput setaf 5 + magenta='' ++ tput setaf 6 + cyan='' ++ tput setaf 7 + white='' + HLINE=========================================================================== + print_bold 'Welcome to the ioBroker installer!' 'Installer version: 2019-05-21' '' 'You might need to enter your password a couple of times.' + title='Welcome to the ioBroker installer!' + echo + echo ========================================================================== ========================================================================== + echo + echo ' Welcome to the ioBroker installer!' Welcome to the ioBroker installer! + for text in "${@:2}" + echo ' Installer version: 2019-05-21' Installer version: 2019-05-21 + for text in "${@:2}" + echo ' ' + for text in "${@:2}" + echo ' You might need to enter your password a couple of times.' You might need to enter your password a couple of times. + echo + echo ========================================================================== ========================================================================== + echo + export AUTOMATED_INSTALLER=true + AUTOMATED_INSTALLER=true + NUM_STEPS=4 + print_step 'Installing prerequisites' 1 4 + stepname='Installing prerequisites' + stepnr=1 + steptotal=4 + echo + echo ========================================================================== ========================================================================== + echo ' Installing prerequisites (1/4)' Installing prerequisites (1/4) + echo ========================================================================== ========================================================================== + echo + case "$HOST_PLATFORM" in + packages=("sudo" "git" "curl" "bash" "unzip" "avahi-libdns" "dbus" "nss_mdns" "gcc" "python") + declare -a packages + for pkg in "${packages[@]}" + install_package_freebsd sudo + package=sudo + pkg info sudo + for pkg in "${packages[@]}" + install_package_freebsd git + package=git + pkg info git + for pkg in "${packages[@]}" + install_package_freebsd curl + package=curl + pkg info curl + for pkg in "${packages[@]}" + install_package_freebsd bash + package=bash + pkg info bash + for pkg in "${packages[@]}" + install_package_freebsd unzip + package=unzip + pkg info unzip + for pkg in "${packages[@]}" + install_package_freebsd avahi-libdns + package=avahi-libdns + pkg info avahi-libdns + for pkg in "${packages[@]}" + install_package_freebsd dbus + package=dbus + pkg info dbus + for pkg in "${packages[@]}" + install_package_freebsd nss_mdns + package=nss_mdns + pkg info nss_mdns + for pkg in "${packages[@]}" + install_package_freebsd gcc + package=gcc + pkg info gcc + for pkg in "${packages[@]}" + install_package_freebsd python + package=python + pkg info python + ln -s /usr/local/include/avahi-compat-libdns_sd/dns_sd.h /usr/include/dns_sd.h ln: /usr/include/dns_sd.h: File exists + sed -i -e s/#enable-dbus/enable-dbus/ /usr/local/etc/avahi/avahi-daemon.conf + sed -i -e 's/hosts: file dns/hosts: file dns mdns/' /etc/nsswitch.conf + sysrc -f /etc/rc.conf dbus_enable=YES dbus_enable: YES -> YES + sysrc -f /etc/rc.conf avahi_daemon_enable=YES avahi_daemon_enable: YES -> YES + service dbus start Starting dbus. + service avahi-daemon start Starting avahi-daemon. + print_step 'Creating ioBroker user and directory' 2 4 + stepname='Creating ioBroker user and directory' + stepnr=2 + steptotal=4 + echo + echo ========================================================================== ========================================================================== + echo ' Creating ioBroker user and directory (2/4)' Creating ioBroker user and directory (2/4) + echo ========================================================================== ========================================================================== + echo + '[' freebsd = linux ']' + '[' freebsd = freebsd ']' + create_user_freebsd iobroker + username=iobroker + id iobroker + '[' 0 -ne 0 ']' + groups=(audio bluetooth dialout gpio i2c redis tty) + declare -a groups + for grp in "${groups[@]}" + '[' true = true ']' + getent group audio + for grp in "${groups[@]}" + '[' true = true ']' + getent group bluetooth + for grp in "${groups[@]}" + '[' true = true ']' + getent group dialout + for grp in "${groups[@]}" + '[' true = true ']' + getent group gpio + for grp in "${groups[@]}" + '[' true = true ']' + getent group i2c + for grp in "${groups[@]}" + '[' true = true ']' + getent group redis + for grp in "${groups[@]}" + '[' true = true ']' + getent group tty tty:*:4:iobroker + pw group mod tty -m iobroker + '[' true = true ']' + mkdir -p /opt/iobroker + cd /opt/iobroker + echo 'Directory /opt/iobroker created' Directory /opt/iobroker created + touch /opt/iobroker/INSTALLER_INFO.txt + chmod 777 /opt/iobroker/INSTALLER_INFO.txt + echo 'Installer version: 2019-05-21' ++ date +%F + echo 'Installation date 2019-06-30' + echo 'Platform: freebsd' + print_step 'Installing ioBroker' 3 4 + stepname='Installing ioBroker' + stepnr=3 + steptotal=4 + echo + echo ========================================================================== ========================================================================== + echo ' Installing ioBroker (3/4)' Installing ioBroker (3/4) + echo ========================================================================== ========================================================================== + echo + '[' true = true ']' + echo 'Installed as root' + npm i iobroker --loglevel error --unsafe-perm + npm i --production --loglevel error --unsafe-perm ../src/unix_dgram.cc:53:13: warning: unused function 'SetNonBlock' [-Wunused-function] inline void SetNonBlock(int fd) { ^ ../src/unix_dgram.cc:65:13: warning: unused function 'SetCloExec' [-Wunused-function] inline void SetCloExec(int fd) { ^ 2 warnings generated. ../src/serialport.cpp:95:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ ../src/serialport.cpp:150:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ ../src/serialport.cpp:188:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ ../src/serialport.cpp:231:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ ../src/serialport.cpp:285:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ ../src/serialport.cpp:336:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ ../src/serialport.cpp:383:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ ../src/serialport.cpp:424:18: warning: 'Call' is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ 8 warnings generated. ../src/serialport_unix.cpp:384:20: warning: variable 'outbaud' is uninitialized when used here [-Wuninitialized] data->baudRate = outbaud; ^~~~~~~ ../src/serialport_unix.cpp:369:14: note: initialize the variable 'outbaud' to silence this warning int outbaud; ^ = 0 1 warning generated. ../src/poller.cpp:69:17: warning: 'Call' is deprecated [-Wdeprecated-declarations] obj->callback.Call(2, argv); ^ ../../nan/nan.h:1739:3: note: 'Call' has been explicitly marked deprecated here NAN_DEPRECATED inline v8::Local<v8::Value> ^ ../../nan/nan.h:104:40: note: expanded from macro 'NAN_DEPRECATED' # define NAN_DEPRECATED __attribute__((deprecated)) ^ 1 warning generated. + print_step 'Finalizing installation' 4 4 + stepname='Finalizing installation' + stepnr=4 + steptotal=4 + echo + echo ========================================================================== ========================================================================== + echo ' Finalizing installation (4/4)' Finalizing installation (4/4) + echo ========================================================================== ========================================================================== + echo + INITSYSTEM=unknown + [[ freebsd = \f\r\e\e\b\s\d ]] + [[ -d /usr/local/etc/rc.d ]] + INITSYSTEM=rc.d + [[ -n '' ]] + echo 'init system: rc.d' + IOB_NODE_CMDLINE=node ++ which bash + BASH_CMDLINE=/usr/local/bin/bash + '[' iobroker '!=' root ']' + IOB_NODE_CMDLINE='sudo -H -u iobroker node' + '[' rc.d = systemd ']' + '[' rc.d = launchctl ']' ++ cat + IOB_EXECUTABLE='#!/usr/local/bin/bash sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js $@' + '[' freebsd = linux ']' + '[' freebsd = freebsd ']' + IOB_BIN_PATH=/usr/local/bin + '[' true = true ']' + ln -sfn /opt/iobroker/iobroker /usr/local/bin/iobroker + ln -sfn /opt/iobroker/iobroker /usr/local/bin/iob + '[' true = true ']' + ln -sfn /opt/iobroker/iobroker /opt/iobroker/iob + echo '#!/usr/local/bin/bash sudo -H -u iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js $@' + make_executable /opt/iobroker/iobroker + file=/opt/iobroker/iobroker + '[' true = true ']' + chmod 755 /opt/iobroker/iobroker + [[ rc.d = \i\n\i\t\.\d ]] + '[' rc.d = systemd ']' + '[' rc.d = rc.d ']' + echo 'Enabling autostart...' Enabling autostart... ++ cat + RCD_FILE='#!/bin/sh # # PROVIDE: iobroker # REQUIRE: DAEMON # KEYWORD: shutdown . /etc/rc.subr name="iobroker" rcvar="iobroker_enable" load_rc_config $name iobroker_enable=${iobroker_enable-"NO"} iobroker_pidfile=${iobroker_pidfile-"/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid"} PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid NODECMD=$(which node) iobroker_start () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start" } iobroker_stop () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js stop" } iobroker_status () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js status" } PATH="${PATH}:/usr/local/bin" pidfile="${iobroker_pidfile}" start_cmd=iobroker_start stop_cmd=iobroker_stop status_cmd=iobroker_status run_rc_command "$1"' + SERVICE_FILENAME=/usr/local/etc/rc.d/iobroker + '[' true = true ']' + echo '#!/bin/sh # # PROVIDE: iobroker # REQUIRE: DAEMON # KEYWORD: shutdown . /etc/rc.subr name="iobroker" rcvar="iobroker_enable" load_rc_config $name iobroker_enable=${iobroker_enable-"NO"} iobroker_pidfile=${iobroker_pidfile-"/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid"} PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid NODECMD=$(which node) iobroker_start () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start" } iobroker_stop () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js stop" } iobroker_status () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js status" } PATH="${PATH}:/usr/local/bin" pidfile="${iobroker_pidfile}" start_cmd=iobroker_start stop_cmd=iobroker_stop status_cmd=iobroker_status run_rc_command "$1"' + set_root_permissions /usr/local/etc/rc.d/iobroker + file=/usr/local/etc/rc.d/iobroker + '[' true = true ']' + chown root:wheel /usr/local/etc/rc.d/iobroker + chmod 755 /usr/local/etc/rc.d/iobroker + sysrc iobroker_enable=YES iobroker_enable: YES -> YES + service iobroker start Illegal variable name. + echo 'Autostart enabled!' Autostart enabled! + echo 'Autostart: rc.d'
-
@mrMuppet Es könnte sein, dass FreeBSD über eine Variable im Startup-Skript stolpert. Kannst du bitte folgendes mal häppchenweise (Code-Block für Code-Block) ausführen und schauen wo es einen Fehler (bestenfalls "illegal variable name") gibt?
name="iobroker"
rcvar="iobroker_enable"
iobroker_enable=${iobroker_enable-"NO"}
iobroker_pidfile=${iobroker_pidfile-"/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid"}
PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid
NODECMD=$(which node)
iobroker_start () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start" }
iobroker_stop () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js stop" }
iobroker_status () { su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js status" }
PATH="${PATH}:/usr/local/bin"
pidfile="${iobroker_pidfile}"
start_cmd=iobroker_start
stop_cmd=iobroker_stop
status_cmd=iobroker_status
-
@AlCalzone sagte in Neue Installation auf FreeBSD/FreeNAS 11.2 funktioniert nicht.:
Es könnte sein, dass FreeBSD über eine Variable im Startup-Skript stolpert. Kannst du bitte folgendes mal häppchenweise (Code-Block für Code-Block) ausführen
Em... klein Frage: wie mache ich denn das? Wenn ich die Zeilen so eingebe, dann kommt nur:
rcvar=iobroker_enable: Command not found.
oder soll ich jeweils ne .sh datei machen und das reinschreiben? Ich probier das mal eben...
Edit: Bekomme ich irgendwie nicht hin... Please help!
-
@mrMuppet Wichtig ist, dass du sie exakt eingibst - am besten kopieren. In deinem Beispiel fehlen die Anführungszeichen. Eine eigene .sh-Datei sollte nicht nötig sein.
-
@AlCalzone aber das sind doch immer noch keinen funktionierenden Befehle oder?
root@iobroker_v2:~ # name="iobroker" name=iobroker: Command not found
-
root@iobroker_v2:~ # rcvar="iobroker_enable" rcvar=iobroker_enable: Command not found. root@iobroker_v2:~ # iobroker_enable=${iobroker_enable-"NO"} Missing '}'. root@iobroker_v2:~ # iobroker_pidfile=${iobroker_pidfile-"/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid"} Missing '}'.
-
root@iobroker_v2:~ # PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid PIDF=/opt/iobroker/node_modules/iobroker.js-controller/lib/iobroker.pid: Command not found. root@iobroker_v2:~ # NODECMD=$(which node) Illegal variable name. root@iobroker_v2:~ # iobroker_start () Badly placed ()'s. root@iobroker_v2:~ # { {: Command not found. root@iobroker_v2:~ # su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start" NODECMD: Undefined variable. root@iobroker_v2:~ # } }: Command not found.
-
jetzt hab ich sie glaube ich durch:
root@iobroker_v2:~ # su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js start" NODECMD: Undefined variable. root@iobroker_v2:~ # } }: Command not found. root@iobroker_v2:~ # iobroker_stop () Badly placed ()'s. root@iobroker_v2:~ # { {: Command not found. root@iobroker_v2:~ # su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js stop" NODECMD: Undefined variable. root@iobroker_v2:~ # } }: Command not found. root@iobroker_v2:~ # iobroker_status () Badly placed ()'s. root@iobroker_v2:~ # { {: Command not found. root@iobroker_v2:~ # su -m iobroker -s "/usr/local/bin/bash" -c "${NODECMD} /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js status" NODECMD: Undefined variable. root@iobroker_v2:~ # } }: Command not found. root@iobroker_v2:~ # PATH="${PATH}:/usr/local/bin" PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin:/usr/local/bin: Command not found. root@iobroker_v2:~ # pidfile="${iobroker_pidfile}" iobroker_pidfile: Undefined variable. root@iobroker_v2:~ # start_cmd=iobroker_start start_cmd=iobroker_start: Command not found. root@iobroker_v2:~ # stop_cmd=iobroker_stop stop_cmd=iobroker_stop: Command not found. root@iobroker_v2:~ # status_cmd=iobroker_status status_cmd=iobroker_status: Command not found.
-
@mrMuppet sagte in Neue Installation auf FreeBSD/FreeNAS 11.2 funktioniert nicht.:
Illegal variable name.
Das ist es möglicherweise!
aber das sind doch immer noch keinen funktionierenden Befehle oder?
Die sollten Variablen setzen, aber möglicherweise geht das auf FreeBSD doch nur in Skripten?!
-
Ich hab da eine Idee... Das Skript soll mit
/bin/sh
ausgeführt werden, FreeBSD scheint es möglicherweise mit einer alternativen Shell auszuführen, die$(...befehle...)
nicht versteht. -
@mrMuppet Habe die Änderungen gemerged. Bitte mit dem offiziellen Installationsbefehl probieren:
curl -sL https://iobroker.net/install.sh | bash -
-
@AlCalzone Hallo, hab die neue routine gerade ausprobiert, es kommt immer noch der fehler mit dem pidfile
-
@joehackerz Ok, kannst du bitte einen vollständigen Log der Installation posten?
-
Hab grad nochmal dann den kompletten JAil neu gemacht, hier ist das Protokoll der Installation
-
@joehackerz sagte in Neue Installation auf FreeBSD/FreeNAS 11.2 funktioniert nicht.:
Illegal variable name.
Verdammt - das war es dann wohl doch nicht.
-
@joehackerz @mrMuppet
Bitte nochmal versuchen, diesmal mit einem neuen Branch:curl -sL https://raw.githubusercontent.com/ioBroker/ioBroker/freebsd-fix-2/installer.sh | bash -
-
@AlCalzone scheint immer noch der selbe Fehler zu sein.
Pastebin