NEWS
ioBroker Installation macOS Mojave
-
Hallo und guten Abend.
Ich habe heute mal versucht eine ioBroker Instanz auf meinem MacMini mit macOS Mojave zu installieren und bin bisher nach mehreren Versuchen kläglich gescheitert.
Anscheinend gibt es seit wenigen Tagen eine neue Installationsroutine für ioBroker auf Apples Betriebssystem. Hier mal der Link, den ich nach Ewigkeiten neben den "gängigen" Anleitungen hier im Forum und im Wiki zufällig im Logtext der npm-Installation gefunden habe, nachdem ich das Terminal nach Fehlern abgesucht habe.
https://github.com/ioBroker/ioBroker/wiki/Installation
Allerdings ist dies, wenn denn auch der neue Weg ioBroker auf den Mac zu bekommen, nicht von Erfolg gekrönt, da ioBroker nicht wie erwartet startet und auch in der Konsole nicht gestartet werden kann. Irgendwas fehlt anscheinend.
Hat dies schon jemand durchgespielt und hat hier mal eine überschaubare Doku dazu? Es ist überaus verwirrend, wenn mittlerweile 3 völlig überalterte Installations-Anleitungen rumschwirren und selbst die neueste nicht funktioniert.
Homebrew und Xcode sind installiert, Node habe ich sowohl die 10, als auch die 8er Version probiert, npm war bisher jedesmal 6.4.1
Zum guten Schluß habe sogar macOS neu aufgesetzt und ganz frisch von vorn begonnen. Keine Chance.
Und ich weiß, dass ich es unter High Sierra bereits laufen hatte und nichts weiter machen musste, als über Homebrew Node zu installieren und anschließend über npm Install iobroker --unsafe-perm
iobroker in den selbst angelegten Ordner nachgeschossen habe. "iobroker start" und schon lief es.Mit dem curl Befehl und der Installation in 4 Schritten aus dem Link wird nun zwar der Ordner erstellt, aber anscheinend funktioniert es nicht bei mir.
Wie gesagt, wenn da mal jemand das schon durchgespielt hat, gerne auch mit der Installation von Node über Homebrew, der möge sich mir bitte erbarmen.
-
Habe den ganzen Weg nun noch einmal durchlaufen, wobei ich meinen Benutzer zum Admin gemacht habe. Hier funktioniert die Installation.
Allerdings ist das kein schöner Weg, denn den Mac Admin mag ich weder angemeldet haben, noch will ich mit diesem Benutzerkonto arbeiten. Ich teste das gleich mal aus, was passiert, wenn ich den Admin, der nun die ioBroker Instanz im Bauch hat abmelde und mit einem neuen Standardbenutzer das Webinterface von ioBroker öffnen möchte.Allerdings, auch bei dieser Installation über System-Admin.
Enabling autostart... bash: line 766: /Users/netzwerkzugriff/Library/LaunchAgents/org.ioBroker.LaunchAtLogin.plist: No such file or directory /Users/netzwerkzugriff/Library/LaunchAgents/org.ioBroker.LaunchAtLogin.plist: No such file or directory Autostart enabled!
Das ist meiner Meinung nach auch die falsche Library. LaunchAgents und die plist darin liegen nicht in der Benutzer-Library, sondern eine Ebene höher, denn ich will ja den Prozess bei jedem Systemstart gestartet haben und nicht nur, wenn ein bestimmter Benutzer angemeldet ist.
Daher bekomme ich natürlich bei einem Konsolenstart auch diese Fehlermeldung.
Es geht dann mit "iobroker restart".
Nun läuft die Instanz erstmal, aber schön ist halt anders.
Problem ist aber auch noch, dass reinstall.sh nicht ausführbar sind und ich den Host nicht geändert bekomme. Die Fehlermeldungen hänge ich gleich mal hier aus dem ioBroker Admin an, wenn ich meine Sicherung eingespielt habe. -
Danke für die Hinweise. Mangels OSX konnte ich den neuen Installer nicht selbst auf OSX testen und bin daher auf solche Tips angewiesen. Der Autostart unter OSX wurde als PR von einem User bereitgestellt. Scheinbar ist da Korrekturbedarf.
Ich stehe da vor folgender Problematik: Unter Linux legen wir einfach einen dedizierten User für ioBroker an, der genau das darf, was wir ihm erlauben. Unter OSX würde der laut meiner Info aber in der Benutzeranmeldung erscheinen, deswegen wollten wir das vermeiden. Als Folge wird ioBroker als der User ausgeführt, der ihn installiert hat.
Da ich mich mit OSX nicht auskenne, wäre es vllt. gut, wenn du kurz die Benutzer-Struktur erklärst.
-
Ich habe mal ein Issue erstellt. Wenn du weitere Ideen hast, bitte posten:
https://github.com/ioBroker/ioBroker/issues/127 -
Ich werde vermutlich heute (spätestens aber morgen) Abend noch einmal die ganze Prozedur durchlaufen und versuchen an den Stellen zu dokumentieren wo es hakt, bzw. was man nachträglich tun muss, damit die Prozedur so durchläuft wie von Euch gewünscht.
Ich bin leider nicht fit genug, um selbst einen Installer zu generieren, aber ich denke, wenn Ihr die Hinweise habt, was systemseitig an macOS nachträglich gemacht werden muss, könnt Ihr das vielleicht ableiten.Unschön ist eben vornehmlich die Tatsache, dass man Admin sein muss um überhaupt einrichten zu können und die Instanz laufen lassen zu können. Das mag vielleicht vielen macOS Nutzern nicht bewusst sein, aber das Admin-Konto sollte kein produktives Arbeitskonto sein und auch eher abgemeldet sein. macOS bietet die Möglichkeit von jedem anderen Standard-User aus Benutzer und Passwort des Admin zur Verifizierung z. B. von Systemänderungen eingeben zu können und somit braucht man eigentlich überhaupt keinen angemeldeten Admin.
Mit den plist ist es zumindest bei mir so, dass ich ja Installationen aus dem Standard-Benutzer tätige und mit dem Admin nur die Erlaubnis gebe. Somit installiere ich Programme, Dienste, Treiber etc. nicht ausschließlich für einen Benutzer, sondern für alle Benutzer. Damit landen die plist eben auch in der übergeordneten Library und nicht in der Benutzer-Library. Hier ist entweder ein Denkfehler von mir, oder aber der bereitgestellte Autostart kann bei fremden Systemen nicht angelegt werden.
Momentan habe ich auch noch ein Problem mit dem Restore eines Backups von meiner Docker Installation. Die Fehlermeldung habe ich nicht parat, aber über die Konsole kann ich es selbst als Admin nicht einspielen, weil (und jetzt weiß ich es nicht genau) das extrahierte File unter Files in einer Backup json nicht gefunden wurde.
Ich vermute, dass dieser Ordner in /usr/local/iobroker keine entsprechenden Rechte hat, um die Backup.tar.gz zu entpacken.
Mit dem backitup Adapter erstellte Backups aus der neuen Instanz, lassen sich hingegen problemlos in der Konsole über "iobroker restore X" zurückspielen.
Da habe ich gestern aber nicht mehr weiter forschen können und es erstmal vertagt. -
@AlCalzone said in ioBroker Installation macOS Mojave:
Ich habe mal ein Issue erstellt. Wenn du weitere Ideen hast, bitte posten:
https://github.com/ioBroker/ioBroker/issues/127Habe mir das Dokument von Apple gerade mal angeschaut. Durchlesen und verstehen kann ich es auch erst heute Abend.
Was mir aber direkt durch den Kopf geschossen ist, Ihr legt einen Benutzer "ioBroker" an um die Prozesse zu generieren. Ich habe aber schon einen Benutzer "ioBroker" auf der Maschine, mit dem ich außerhalb meines Standardbenutzers, der permanent angemeldet ist um die ioBroker Instanz und weitere Dienste (iCal, iTunes-Server, Mamp, Mailserver, FTP-Server usw.) bereitzustellen und außerhalb des Admins, der nie angemeldet ist, meine VIS auf einem Touchscreen Monitor realisieren möchte. Der hat bis auf einen geführten Zugriff auf die Webseite der VIS keinerlei Berechtigungen. Da beißt sich wahrscheinlich auch etwas.Spätestens morgen Abend bin ich aber schlauer und kann Dich hoffentlich tatkräftig (und eigennützig) unterstützen.
-
@mehrwiedu sagte in ioBroker Installation macOS Mojave:
Unschön ist eben vornehmlich die Tatsache, dass man Admin sein muss um überhaupt einrichten zu können und die Instanz laufen lassen zu können.
Das ist so nicht gedacht. Unter Linux führt der Installer an den entsprechenden Stellen die Befehle per
sudo
aus, um temporär Admin-Rechte zu erlangen. Ich habe jedoch gelesen, dass das auf OSX von einem normalen User aus nur geht, wenn er Admin-Rechte hat?!Damit landen die plist eben auch in der übergeordneten Library und nicht in der Benutzer-Library. Hier ist entweder ein Denkfehler von mir, oder aber der bereitgestellte Autostart kann bei fremden Systemen nicht angelegt werden.
Macht auch Sinn, daher mein Kommentar im verlinkten Issue.
Ich vermute, dass dieser Ordner in /usr/local/iobroker keine entsprechenden Rechte hat, um die Backup.tar.gz zu entpacken.
Aktuell ist es so, dass der User mit dem installiert wurde, als Owner für diesen Ordner gesetzt wird.
Da beißt sich wahrscheinlich auch etwas.
Da müsste man entsprechend die Rechte erhöhen auf das nötigste zum Ausführen von ioBroker. Auch da ist mir aber noch nicht klar, wie es genau geht.
-
@AlCalzone said in ioBroker Installation macOS Mojave:
Ich habe jedoch gelesen, dass das auf OSX von einem normalen User aus nur geht, wenn er Admin-Rechte hat?!
Richtig. der Benutzer muss in der Sudoer Liste auftauchen, damit man sudo ausführen kann. Man kann sich aber von jedem Benutzer aus im Terminal mit dem Admin anmelden und dann damit die Befehle ausführen. Auf Berechtigungsebene ist dann allerdings der Admin der Owner und vom Standardbenutzer ist dann der Prozess nicht ausführbar.
Aktuell ist es so, dass der User mit dem installiert wurde, als Owner für diesen Ordner gesetzt wird.
Damit wird klar, dass ein Standardbenutzer nichts in Ordner schreiben darf. Bei mir ist es allerdings so, dass ich meinen Standardbenutzer "netzwerkzugriff" zum zusätzlichen Admin gemacht habe und dennoch nach der Erstellung der Ordner in "usr/local/ioBroker" wahrscheinlich nicht schreiben darf. Das muss ich aber klären. Es kann genauso gut sein, dass zum Restore des im Docker erstellten Backup über backitup etwas nicht in Ordnung ist. Ich habe das nur herauskopiert und in den Ordner backups von der neuen Instanz kopiert. Über "iobroker restore 0" findet er es auch anstandslos, startet den Restore auch, kann es aber dann anscheinend nicht entpacken.
Die fehelende Berechtigung war jetzt nur geraten. Ich habe auch die Fehlermeldung aus dem Terminal nicht genau im Kopf. Nachher poste ich sie hier und dann kann ich auch zu den Berechtigungen genaues sagen. -
Hier mal wie versprochen, der Weg den ich gegangen bin und die Hindernisse, auf die ich stoße.
Anbei das Terminal-Log während der Installation von ioBroker mit einem Benutzer mit Admin Rechten
Hier muss ich anschließend über das Terminal in den neu erstellten Ordner unter /usr/local/iobroker gehen und iobroker mit "restart" starten. "Start" gibt folgende Fehlermeldung aus:
MacMinis-Mini:/ netzwerkzugriff$ cd /usr/local/iobroker MacMinis-Mini:iobroker netzwerkzugriff$ iobroker start /Users/netzwerkzugriff/Library/LaunchAgents/org.ioBroker.LaunchAtLogin.plist: No such file or directory MacMinis-Mini:iobroker netzwerkzugriff$
Mit "restart" geht es aber und dann habe ich eine jungfräuliche iobroker Installation auf dem Mac. Zwar noch ohne Autostart, aber immerhin.
Nun möchte ich mein Backup der zweiten Instanz einspielen.
Dazu kopiere ich das Backup in den Ordner /usr/local/iobroker/backupsDie Datei 2019_02_17-23-23... ist von dem in der neuen Instanz angefertigten Backup aus dem Backitup Adapter und lässt sich sowohl über "iobroker Restore" im Terminal, wie auch über den Backitup Adapter problemlos wieder zurückspielen.
Die zweite Datei mit "Total..." am Anfang ist die kopierte Datei von der NAS. Diese lässt sich weder über den Backitup Adapter, noch über das Terminal zurückspielen.Folgende Ausgabe im Terminal:
MacMinis-Mini:iobroker netzwerkzugriff$ iobroker stop /Users/netzwerkzugriff/Library/LaunchAgents/org.ioBroker.LaunchAtLogin.plist: No such file or directory Stopping iobroker controller daemon... iobroker controller daemon stopped. Password: Exit code for "killall.sh": 0 MacMinis-Mini:iobroker netzwerkzugriff$ iobroker restore Please specify one of the backup names: total_2019_02_17-14_27_57_backupiobroker.tar.gz or total_2019_02_17-14_27_57 or 0 2019_02_17-23_23_26_backupiobroker.tar.gz or 2019_02_17-23_23_26 or 1 MacMinis-Mini:iobroker netzwerkzugriff$ iobroker restore 0 host.MacMinis-Mini.fritz.box Using backup file total_2019_02_17-14_27_57_backupiobroker.tar.gz host.MacMinis-Mini.fritz.box Cannot find extracted file from file "/usr/local/iobroker/node_modules/iobroker.js-controller/tmp/backup/backup.json" MacMinis-Mini:iobroker netzwerkzugriff$
Der Backitup Adapter sagt gar nichts, sondern bleibt im Zustand "gestartet" einfach stehen.
Ok, eine laufende Instanz bekomme ich so hin, ein Backup nicht.
Nun einmal die Variante, wenn der Benutzer am Mac kein Admin ist:
Es wird hierbei kein Ordner erstellt und auch nichts installiert, weil der Benutzer kein sudo kann und die Installationsroutine das Passwort vom Admin nicht akzeptiert.
Ich habe gestern halt noch Dateien von ioBroker gehabt, weil ich vorher ja den "alten" Weg gegangen bin über npm Install.Ich hoffe, Du kannst damit etwas anfangen.
-
@AlCalzone
Ich habe nochmal eine Variante hinterher geschoben.
Da gibt es jetzt ein wenig Entwarnung, wenn man das so nennen darf.Ich habe nun allen meinen Benutzern mal die Adminrechte entzogen und nur noch das Admin-Konto "MacMini" belassen, welches noch nie angemeldet war.
Eine Installation mit curl.... gelingt klaglos, wenn man unter dem Standardbenutzer in macOS im Terminal den Admin anmeldet.
Terminal öffnen und anschließend "login Adminkonto" eingeben. Dann wird das Passwort verlangt und man benutzt das Terminal als Admin.
Hier das Log von der Installation. Lediglich der Autostart funktioniert nicht, da er immer noch in die Benutzer-Library schreiben will. Allerdings sieht hier die Fehlermeldung etwas anders aus als vorhin. Hier heißt es jetzt "Could not find domain for.."
Die Instanz lässt sich dann aber auch wieder mit "iobroker restart" starten und läuft auch. Habe bereits Adapter installiert und Einstellungen geändert, etc.
Restore probiere ich nachher auch mal.(Was hier stand war Blödsinn)Bleibt also nur noch der Autostart als eigentliches Problem, denn ich habe keinen Admin angemeldet und arbeite in ioBroker mit einem beschnittenen Standardbenutzer.
Demnach müsste man also erstmal nur der Doku hinzufügen, dass man zur Installation entweder nur einen Benutzer unter macOS haben darf und dieser entsprechend auch Admin sein muss, was er ja als einziger Benutzer zwangsläufig ist.
Oder man muss sich im Terminal vom Standardbenutzer vorher mit dem Admin anmelden über "login Adminname".Das war ja eine schwere Geburt.
Meine Gedanken zum Autostart bleiben aber immer noch dabei, dass die falsche Library genutzt wird. Es gibt eine im Benutzerordner
und eine im Systemordner auf der obersten Ebene
Und darin befinden sich auch die plist im Ordner LaunchAgents. In meinem Fall z. B. die Touch-Base Treiber für den Touchscreen. Die habe ich für alle Benutzer installiert und die sollen dementsprechend auch bei jedem Benutzer automatisch geladen werden.
Hoffe, wir können das Strukturproblem damit lösen.
-
Für das Restore Problem habe ich nun auch eine Erklärung.
Normale Backups werden ja auch zurückgespielt, aber komplette Backups nicht.
Die Erklärung habe ich in der Adapterbeschreibung vom Backitup Adapter gefunden.Dort steht, dass komplette Backups ins root/ Verzeichnis kopiert werden sollen und von dort mit entsprechendem Befehl:
sudo tar -xzvf Backupname.tar.gz -C /
wieder zurückgespielt werden. Klingt logisch, da ja das gesamte ioBroker Verzeichnis wiederhergestellt wird. Jetzt meine Frage. Was ist für mich in macOS das root-Verzeichnis, wenn iobroker unter Volume/usr/local/iobroker liegt?
Und die noch bessere Frage: Brauche ich bei dem Umzug ein komplettes Backup, oder tut es auch das "normale" Backup? Was passiert genau nach dem zurückspielen? Muss ich erst in der Instanz die Adapter alle installieren, oder kommen die automatisch mit? Was ist mit VIS? Sind die Views auch gesichert?
-
Die Backup-Fragen kann dir wohl nur @simatec beantworten. Bei den Launch-Agents bin ich deiner Meinung. Irgendwie sollte man das auch hinbekommen, dass es systemweit ausgeführt wird mit einem dedizierten User (iobroker).
-
@AlCalzone said in ioBroker Installation macOS Mojave:
Die Backup-Fragen kann dir wohl nur @simatec beantworten. Bei den Launch-Agents bin ich deiner Meinung. Irgendwie sollte man das auch hinbekommen, dass es systemweit ausgeführt wird mit einem dedizierten User (iobroker).
Das Backup-Thema ist schon sehr komplex, denn es kommt hier wirklich darauf an, welcher Benutzer das Backup erstellt hat, denn der Ordner Backups und auch die übergeordneten Ordner in /usr/local haben für andere Benutzer als den Ersteller nur Leserechte.
Mein Problem ist es momentan noch, dass ich kein komplettes Backup, sprich den Austausch des gesamten iobroker Ordners hinkriege.Das liegt aber an meiner Vorgehensweise bei der Installation. Für brew und die anschliessende Installation von node benötigt man keine Adminrechte. Das habe ich also unter dem Standardbenutzer eingerichtet. Für den curl Befehl zur Installation von iobroker braucht es allerdings wieder Adminrechte und das habe ich ja gestern mit dem Adminlogin im Terminal vom Standardbenutzer durchgeführt. Damit hat aber wiederum nur der Admin die Berechtigung, in dem /usr/local/iobroker Ordner etwas zu ändern.
Wenn man nun iobroker mit dem Standardbenutzer bedient liegen die normalen Backups ja im Backups Ordner und sind völlig unkritisch, weil die über den Adapter auch wieder zurückgespielt werden können. Ein komplettes Backup hingegen muss über die Konsole zurückgespielt werden und da ist eben der Adapter für eine macOS Installation unbrauchbar, weil iobroker eben nicht in /opt liegt, sondern in /usr/local.
Abgesehen vom Rechteinhaber, wird also immer ein /opt Ordner zusätzlich erstellt und man muss händisch die Verzeichnisse hin und her kopieren. Und wenn nun noch der Besitzer von usr/local/iobroker der Admin ist und der Besitzer der Backupdaten der Standardbenutzer, ist das Chaos perfekt, weil keiner von beiden die jeweilige Berechtigung hat die Datei überhaupt zu entpacken oder die entpackten Files nicht in den Ordner schieben darf.Da breche ich mir gerade noch die Finger, denn ich will ja erstmal nur ein einziges komplettes Backup meiner alten Instanz über die neue bügeln. Das geht eben grad noch nicht, weil node über den Standardnutzer kam und iobroker über den Admin kommen musste. Daher funktioniert auch bei mir kein "host this", weil der Admin das nicht ausführen darf.
Wenn ich das raus habe, wie das funktioniert, mache ich eine Doku fertig. Ich gehe jetzt erstmal davon aus, dass alle Vorbereitungen (brew, node, npm und iobroker) über den Admin laufen müssen und man anschließend die Bedienung (inkl. normaler Backups über den Adapter) dann mit dem Standardbenutzer machen kann. -
Ich würde für ein neues System immer das Standard Backup nehmen.
Das total ist eher als Notfallsystem gedacht.Ich muss die Doku noch fixen.
Wenn du das total per Konsole wiederherstellen willst, muss es im iobroker Ordner bereits liegen.
Also Standard /opt/iobrokerDort auch den Befehl ausführen ...
-
So, nun habe ich es erstmal geschafft und würde ab hier eine Anleitung bereitstellen, wie man ioBroker auf einem aktuellen macOS inkl. Backup vom Altsystem zum Laufen bringt.
Installation von ioBroker inkl. Xcode, Homebrew und nodejs auf dem Mac (vorerst ohne Autostart) Stand: 19.02.2019
Wichtig: Man muss die gesamte Installation inkl. brew, nodejs, npm und ioBroker von einem Adminbenutzer in macOS tätigen. Es reicht nicht aus, einen Standardbenutzer temporär für die Installation zum Admin zu machen, da die ioBroker Instanz später unter dem Admin gestartet werden muss, der es installiert hat. Andernfalls kommt es früher oder später zu Problemen, bzw. die Instanz startet erst gar nicht aufgrund von Berechtigungsproblemen. Wer nur einen Benutzer unter macOS hat, der braucht dies nicht zu berücksichtigen, alle anderen, deren Admin nur ein unkonfiguriertes Benutzerkonto wie bei mir ist, müssen darauf achten, mit dem Admin während der Installation angemeldet zu sein.
1. Xcode installieren
Um nachher mit Homebrew nodejs installieren zu können, benötigt man Xcode. Dies ist ein Entwicklertools von Apple und kostenlos im MacAppStore erhältlich. https://itunes.apple.com/de/app/xcode/id497799835?mt=12
Für Mac User mit einem Standardbenutzer ist dies die einzige Installation, die man mit dem Standardbenutzer tätigen kann, um dem Admin nicht unnötig iCloud Anmeldedaten oder Zugriff auf den Appstore geben zu müssen.
Xcode aus dem Appstore laden, installieren und einmal ausführen, so dass die Nutzungsbedingungen akzeptiert werden und die Software einsatzbereit ist.
Anschließend unbedingt wieder darauf achten, mit dem Admin angemeldet zu sein. Homebrew und somit auch nodejs lassen sich nämlich auch problemlos ohne Adminrechte installieren.2. Homebrew installieren
Homebrew ist ein Paketmanager, der eine Installation von z. B. nodejs sehr einfach durchführbar macht und auch die Möglichkeit bietet, sämtliche über ihn getätigten Installationen rückstandslos wieder zu entfernen. Aus diesem Grund habe ich mich für Homebrew entschieden, weil mir damit ein späteres Update von nodejs am Mac einfacher gemacht wird. Es gibt sicherlich auch andere Wege und für Linux-Experten sicherlich auch bessere, aber wer so eine Installation nur einmal im Jahr macht, der freut sich über ein wenig Einfachheit.
Infos zu Homebrew finden sich hier: https://brew.sh/index_deZur Installation einfach das Terminal öffnen und
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
eingeben. Anschließend werdet Ihr bis zum Abschluss der Installation begleitet. Man kann also nichts verkehrt machen.
3. nodejs installieren
Es gibt natürlich viele Wege nodejs auf den Mac zu installieren. Eine davon wäre der ganz normale macOS-Installer(pkg) von der Internetseite https://nodejs.org/en/download/. Allerdings beinhaltet dieser immer das letzte LTS oder eben die Current Version.
Aktuell ist das glaube ich node 11.x
Auch deshalb habe ich mich für Homebrew entschieden, weil ich hier festlegen kann, welche Version installiert werden soll.Sobald Homebrew also mit seiner eigenen Installation fertig ist, kann man den Befehl zur Installation von nodejs geben.
Hierzu im noch geöffneten Terminalfensterbrew install node
eingeben. Bei diesem Befehl wird allerdings auch die letzte LTS installiert.
brew install node@8
installiert z. B. die letzte 8er Version 8.15.0
4. node verlinken
Mit der reinen Installation von node ist es aber noch nicht getan, denn die Version muss noch verlinkt werden. Vorher kann man auch noch gar nicht die Versionsinfonode -v
abrufen.
Auch hier hilft Homebrew ohne wirkliche Vorkenntnisse prima weiter. Das ermöglicht z. B. auch, mehrere node Versionen parallel auf dem Mac laufen zu haben, wovon nur eine verlinkt ist. So kann man vor einem Update auch erst mal testen.brew link node@8 --force
wäre hier der Befehl, der im Terminal direkt nach der Installation von node 8.15.0 ausgeführt werden muss.
Mit nodejs kommt auch automatisch npm mit, dessen Version man nach der Verlinkung von node sehen kann. Mit der 8er, sowie der 10er node Version kommt npm 6.4.1 mit.5. ioBroker installieren
Um nun ioBroker auf den Rechner zu bekommen, im immer noch geöffneten Terminalcurl -sL https://raw.githubusercontent.com/ioBroker/ioBroker/stable-installer/installer.sh | bash -
eingeben. Die Installation erfolgt in 4 Schritten, wobei der entsprechende Ordner, in den ioBroker kopiert wird, automatisch angelegt wird. Alle anderen Anleitungen, bei denen unter Dokumente oder sonst wo auf der Festplatte ein Ordner namens "ioBroker" angelegt werden soll, kann man ignorieren. Die führen nicht mehr zum Ziel.
Die Installation quittiert später mit dem Hinweis, dass man nun den Host:8081 aufrufen kann.
Das stimmt zum jetzigen Zeitpunkt leider noch nicht. Die Autostart plist werden nämlich vom Installer noch nicht angelegt. ioBroker muss manuell gestartet werden. Dies kann man, sofern man nicht noch ein Backup einspielen will, sowohl vom Admin, als auch vom Standardbenutzer tun.
Wer also nur ioBroker als neue, frische Instanz installieren wollte, ist hier fertig und kann im Adminkonto im Terminalcd /usr/local/iobroker iobroker start
eingeben. Sollte iobroker start nicht funktionieren und mit einer Fehlermeldung enden, gebt stattdessen iobroker restart ein. Das funktioniert in jedem Fall.
Wer iobroker nun erst mit dem Standardbenutzer einrichten will, der meldet den Admin ab und meldet sich mit seinem Standardbenutzer an und öffnet dort das Terminal. Hier muss man allerdings den Startbefehl mit dem Adminkonto geben und deshalb lautet hier der Befehllogin Admin-Benutzername Passwort eingeben cd /usr/local/iobroker iobroker start oder iobroker restart
6. Nach der Installation ein komplettes Backup einspielen (ioBroker Umzug)
Das ist jetzt leider nicht so einfach, denn ein komplettes Backup kann nicht wie in vielen Anleitungen geschrieben einfach in den Backup-Ordner von ioBroker installiert werden. Das komplette Backup beinhaltet den gesamten gepackten Ordner "iobroker" und muss an der Stelle wieder entpackt werden.
Das hat mich zwar die meiste Zeit gekostet, aber am Ende war es auch mit die logischste Geschichte.Zunächst müssen wir das ganze aber wieder unter dem Adminkonto am Mac machen, weil die Berechtigungen der Ordner uns sonst ein Schnippchen schlagen. Zudem muss das Backup vom Altsystem so gemacht werden, dass der /opt Ordner, wenn man von einem Linux System kommt, nicht im Restore wiederhergestellt wird, denn den gibt es auf dem Mac nicht.
Also Backup am Altsystem
cd /opt tar -cf /opt/iobroker_backup.tar iobroker/
Hier wird eine tar-Datei in den Ordner /opt des Altsystems geschrieben, die den darin befindlichen Ordner /iobroker mit all seinen Unterordnern packt. Diese Datei auf gewünschtem Weg auf den Mac ins Adminkonto kopieren.
Dort dann das Terminal aufrufen, iobroker stoppen, falls es läuft und mit
tar -vxf <Ordner-und Dateiname der tar-Datei> -C /usr/local
entpacken. Hier den Zielpfad /iobroker definitiv weglassen, denn sonst wird er im vorhandenen /usr/local/iobroker nochmal angelegt.
Anschließend noch
cd /usr/local/iobroker iobroker host this
eingeben und die Instanz über den Admin oder auch den Standardbenutzer mit angemeldetem Admin im Terminal wieder starten.
Thats it! Relativ einfach, aber bei mir zumindest ein holpriger Weg bis dahin. Falls anschließend Instanzen nicht starten, diese löschen und neu anlegen. Das ist mir lediglich mit dem Tradfri Adapter passiert. Alle anderen Adapter liefen direkt einwandfrei und auch alle Views, Skripte und Datenpunkte waren wieder da. Alexa muss dann noch einmal nach neuen Geräten suchen, falls die Anbindung an Alexa vorher bestanden hat, aber das war es.
-
@simatec said in ioBroker Installation macOS Mojave:
Wenn du das total per Konsole wiederherstellen willst, muss es im iobroker Ordner bereits liegen.
Also Standard /opt/iobrokerHallo @simatec.
Danke für Deine Antwort. Ich habe mit dem Adapter wirklich sehr lange herum experimentiert und er war für eine Wiederherstellung auf macOS leider nicht zu gebrauchen. Ich vermute, so wie ich es bereits im vorhergehenden Beitrag in der Anleitung geschrieben habe, dass wie es unter Linux üblich ist, der Adapter das komplette Backup mit dem Ordner /opt macht und diesen gibt es eben nicht auf dem Mac. ioBroker wird hier in /usr/local geschrieben. Im gelindesten Fall hat man nach dem Restore in /local noch einen /opt Ordner, den man dann manuell wieder kopieren muss. Dabei gehen aber die node-module den Bach runter, wie es bei mir zumindest der Fall war.Der Adapter ist zumindest unter macOS, außerhalb einer Linux-Umgebung tatsächlich wie Du schreibst, nur für einfache "minimale" Backups zu nutzen. Heißt aber auch, dass man ein bereits eingerichtetes, gehostetes ioBroker benötigt.
Ich wollte aber komplett umziehen. Vielleicht ist das auch ein Hinweis für alle macOS User, die bisher mit dem Adapter fleißig komplette Backups gemacht haben. Die sind aus meiner Sicht alle unbrauchbar. Zumindest um damit von einem Linux auf ein macOS oder umgekehrt umziehen zu wollen.
Ich mache später auf dem Mac mal ein komplettes Backup mit dem Adapter und schaue mal, was da dann drin steht.Zumindest kann ich mir vorstellen, dass es Probleme mit den Dateiberechtigungen gibt, wenn man auf dem Mac, so wie ich einen Admin und einen Standardbenutzer hat, der dann die Backups macht und ablegt. Die Dateiberechtigungen werden dann nicht mehr zu den Ordnerberechtigungen passen und damit gibt es Murks beim Restore. Das teste ich aber mal in einer ruhigen Minute aus. Bis dahin wird wohl hoffentlich kein macOS Nutzer in die Verlegenheit kommen, dass sein Leben davon abhängt.
Ich habe es ja auch irgendwie am Ende geschafft von macOS zum Raspberry, vom Raspberry auf einen OMV Server, von Debian in einen Docker auf der Synology und von dort aus nun wieder zu macOS zu wechseln, ohne großartig Daten (wenn auch viel Zeit) zu verlieren. -
Nei der Adapter ist mit flexiblen Pfad programmiert.
Es wird nicht star das standardverzeichnis /opt/iobroker genommen.Stelle die Instanz von backitup mal auf debug und poste hier deinen Log.
So sehen wir mehr ...