Denn ich installiere meine Plugins alle immer so sudo chown -R $USER /usr/local && npm install -g -—unsafe-perm Pluginname,
Die Befehl tut folgendes:
sudo chown -R $USER /usr/local
-
sudo: führt das nachfolgende Kommando mit root-Rechten aus
-
chown: (change owner) ändert die Ownerhip für das, was nach diesem Befehl kommt. Soll heißen: Unter Linux gehören Dateien einem bestimmten User. Im Normalfall ist das root. Eine Ausnahme ist das Homeverzeichnis eines Users (das gehört immer dem User). Eine weitere Ausnahme ist das Verzeichnis für temporäre Dateien /tmp. Es kann weitere Ausnahmen geben. Ein User darf immer nur Dateien verändern oder löschen, die ihm gehören.
-
-R: gehört zum Befehl chown und besagt, dass der Befehl rekursiv wirken soll. Das bedeutet nichts anderes, als dass er auf einen Ordner angewendet auch die darunterlegenden Dateien und Ordner verändern soll.
-
$USER: das ist ein Platzhalter für den aktuell eingeloggten User. In den meisten Fällen ist das pi.
-
/usr/local ist der Ordner, auf den der chown-Befehl angewendet wird.
Da steht also: Ändere die Rechte von /usr/local und allen darunter liegenden Dateien so, das pi dort hinschreiben kann.
Dann steht da noch:
&& npm install -g -—unsafe-perm Pluginname
Das && steht als Verbinder zwischen dem chown-Befehl und dem npm-Befehl und sagt aus: wenn der chown-Befehl ohne Fehler gelaufen ist, dann führe auch den npm-Befehl aus.
Ich würde nie ein chown -R pi /usr/local ausführen. Die Dateien in /usr/local sollten immer root gehören und niemals pi. Theoretisch könnte dieses Vorgehen zu Problemen mit dem Raspi führen, aber um ehrlich zu sein: die Wahrscheinlichkeit ist nicht sehr hoch. Daher kann man das machen, aber ich empfinde es als unschön.
In /usr/local liegen Systemdateien. Wenn ich die Dateien in /usr/local zähle (find /usr/local | wc -l), dann kommt bei mir die Zahl 157709 heraus (das ist bei jedem anders, wir haben ja allein alle schon unterschiedliche Plugin-Sammlungen). 157707 Dateien gehören also jetzt nicht mehr root, sondern pi. Wenn man die Ownership der Dateien unbedingt ändern will, dann sollte man den Kreis vielleicht ein wenig einengen und nur die Stelle verändern, die wirklich benötigt wird:
sudo chown -R $USER /usr/local/lib/node_modules
Aber viel besser ist:
sudo chown -R $USER /usr/local/lib/node_modules
sudo npm install -g --unsafe-perm homebridge-plugin
Das ist die sauberste Lösung und auch das, was homebridge-config-ui-x macht.
Stefan