NEWS
Fehler während der Installation
-
Ich versuche ioBroker auf einem Proxmox LXC zu installieren. Hierbei habe ich Debian 10 und Ubuntu 20.10 ausprobiert.
Während der Installation des ioBroker werden einige Fehler ausgeworfen bei denen ich leider nicht weiß ob diese ignoriert werden können:In file included from ../../nan/nan.h:56, from ../src/main.cpp:3: /root/.cache/node-gyp/10.23.0/include/node/node.h:573:43: warning: cast between incompatible function types from 'void (*)(v8::Local<v8::Object>)' to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /root/.cache/node-gyp/10.23.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X' NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/main.cpp:42:1: note: in expansion of macro 'NODE_MODULE' NODE_MODULE(diskusage, Init) ^~~~~~~~~~~ In file included from /root/.cache/node-gyp/10.23.0/include/node/node.h:63, from ../../nan/nan.h:56, from ../src/main.cpp:3: /root/.cache/node-gyp/10.23.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]': /root/.cache/node-gyp/10.23.0/include/node/node_object_wrap.h:84:78: required from here /root/.cache/node-gyp/10.23.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /root/.cache/node-gyp/10.23.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]': ../../nan/nan_object_wrap.h:65:61: required from here /root/.cache/node-gyp/10.23.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type] In file included from ../../nan/nan.h:56, from ../src/unix_dgram.cc:5: /root/.cache/node-gyp/10.23.0/include/node/node.h:573:43: warning: cast between incompatible function types from 'void (*)(v8::Local<v8::Object>)' to 'node::addon_register_func' {aka 'void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)'} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /root/.cache/node-gyp/10.23.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X' NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/unix_dgram.cc:404:1: note: in expansion of macro 'NODE_MODULE' NODE_MODULE(unix_dgram, Initialize) ^~~~~~~~~~~ In file included from /root/.cache/node-gyp/10.23.0/include/node/node.h:63, from ../../nan/nan.h:56, from ../src/unix_dgram.cc:5: /root/.cache/node-gyp/10.23.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]': /root/.cache/node-gyp/10.23.0/include/node/node_object_wrap.h:84:78: required from here /root/.cache/node-gyp/10.23.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<node::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /root/.cache/node-gyp/10.23.0/include/node/v8.h: In instantiation of 'void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]': ../../nan/nan_object_wrap.h:65:61: required from here /root/.cache/node-gyp/10.23.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from 'v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback' {aka 'void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)'} to 'Callback' {aka 'void (*)(const v8::WeakCallbackInfo<void>&)'} [-Wcast-function-type]
-
@xadox sagte in Fehler während der Installation:
Proxmox LXC zu installieren. Hierbei habe ich Debian 10 und Ubuntu 20.10 ausprobiert.
Ist es nun LXC oder eines der erwähnten Betriebssysteme? Wenn du LXC benutzen willst, dann solltest du das Docker Image von buanet verwenden.
Wenn du aber eine VM gemacht hast (Debian oder Ubuntu), dann wäre interessant zu wissen, was du gemacht hast, bevor der Fehler auftrat (und vielleicht auch mehr als nur genau die Fehlermeldung). Grundsätzlich geht dir Installation mit dem magischen Einzeiler am einfachsten:
curl -sL https://iobroker.net/install.sh | bash -
Mehr musst du vorher nicht machen.
-
@xadox Und auch nicht als root rumhampeln.
-
@UncleSam In der Regel werden unter Proxmox LXC bzw. Container über ein Template erzeugt.
Hierbei habe ich sowohl Debian 10 als auch Ubuntu 20.10 als Template ausprobiert.
Die Systeme sind hierbei ziemlich nackt. Bis auf folgenden Befehl wurde nichts installiert:apt-get update && apt-get upgrade && apt-get dist-upgrade
Bei der Installation von ioBroker habe ich mich strikt an die Anleitung gehalten:
https://www.iobroker.net/#de/documentation/install/linux.mdIm Vorfeld wurde Node und Nodejs installiert und anschließend das ioBroker Setup über folgenden Befehl gestartet:
curl -sL https://iobroker.net/install.sh | bash -
Und hierbei kommt es zu den erwähnten Fehlern.
ioBroker ist nutzbar ich wollte nur abklären ob die erwähnten Fehler Konsequenzen haben. -
@xadox sagte in Fehler während der Installation:
In der Regel werden unter Proxmox LXC bzw. Container über ein Template erzeugt.
Genau, allerdings war mir nicht bewusst, dass es Images auf Basis von Ubuntu gibt. Ich kannte nur Debian und Alpine.
Aber wie gesagt, spar dir die Mühe und nimm das als Basis: https://hub.docker.com/r/buanet/iobroker
"Von Hand" ioBroker in Docker sauber zum laufen zu bringen ist nicht ganz ohne; insbesondere weil sich der Hostname bei jedem build Schritt ändert.
-
@UncleSam Proxmox ist hierbei nicht direkt kompatibel mit Docker Images.
Zumindest nicht im default. Daher ja der Weg über die Templates.
Für meine Zwecke wäre dies auch ein zu großer Umweg.Letztendlich ist es aber auch Wurst ob Proxmox Template oder Docker Image.
Die Kernfrage ist ja viel mehr warum kommt es zu den Meldung und viel wichtiger muss man diese beachten. -
@xadox sagte in Fehler während der Installation:
Die Kernfrage ist ja viel mehr warum kommt es zu den Meldung und viel wichtiger muss man diese beachten.
Nein, gut ist es nicht. Das Problem ist: du hast dann ein System, das keiner hier versteht und wenn du Probleme hast (und das beginnt nun schon bei der Installation), wird dir auch keiner helfen können. Es ist wie gesagt auch viel komplizierter, einen sauberen Container (egal ob LXC oder Docker) für ioBroker zu machen als einfach nur die Installationszeile auszuführen. Ich habe das auch mal versucht; das Resultat war nicht schön.
Soviel ich weiss, hat es einige hier, die ioBroker mit buanet als LXC unter Proxmox verwenden. Es sollte also machbar sein.
-
@UncleSam Es ist nicht unmöglich Docker auf Proxmox zu betreiben. Aber halt ein Umweg.
Wenn das Docker Image zu bevorzugen ist sollte die Anleitung wohl angepasst werden.
Da dort zu Beginn nach noch darauf hingewiesen wird:...Die manuelle Installation ist jedoch einem Image gegenüber zu bevorzugen...
-
@xadox
Der Hinweis bezieht sich nicht auf docker-Images sondern auf die dort verlinkten vorgekochten System-Images. -
@xadox Danke, da habe ich noch was gelernt. Ich bin immer davon ausgegangen, dass LXC und Docker äquivalent sind; dem ist jedoch nicht so. Bei LXC muss man tatsächlich ein ganzes OS im Container laufen lassen.
Damit erübrigen sich meine Ratschläge. Damit bleibt @xadox nur eine Möglichkeit: Installation mit dem erwähnen Einzeiler. Mir scheint aber, dass das alles nur Warnungen sind, die du wohl ignorieren kannst.
-
@UncleSam sagte in Fehler während der Installation:
@xadox sagte in Fehler während der Installation:
In der Regel werden unter Proxmox LXC bzw. Container über ein Template erzeugt.
Genau, allerdings war mir nicht bewusst, dass es Images auf Basis von Ubuntu gibt. Ich kannte nur Debian und Alpine.
Aber wie gesagt, spar dir die Mühe und nimm das als Basis: https://hub.docker.com/r/buanet/iobroker
"Von Hand" ioBroker in Docker sauber zum laufen zu bringen ist nicht ganz ohne; insbesondere weil sich der Hostname bei jedem build Schritt ändert.
Also ich habe iobroker als LXC unter Proxmox. Sowohl den Master, als auch den Slave. Und ich habe folgendes Template: ubuntu-20.04-standard_20.04-1_amd64.tar.gz. Und es gab da keinerlei Probleme, auch die Installation von iobroker lief mit dem Einzeiler. Ich hatte nur vorher mal nach den Node und NPM-Versionen geschaut, ob es da Handarbeit benötigt und was altes mitkommt. Weiss aber gar nicht mehr, ob ich da was machen musste. Aber zu einer VM mit Ubuntu server sehe ich da, von den Ressourcen abgesehen, im betrieb keinen Unterschied mehr. Läuft einfach.
Gruss, Jürgen
-
@Wildbill Vielen Dank für die Bestätigung.