Homebridge Plugin manuell installieren

  • Moin zusammen,


    ich habe bezüglich eines Homebridge-Plugins beim Entwickler einen Feature-Request gehabt. Freundlicherweise hat er den für mich umgesetzt und mir den Build zum Testen zur Verfügung gestellt. Dazu musste ich ihn manuell per Shell installieren. Habe ihn also per wget heruntergeladen und anschließend mit sudo npm i -g installiert.


    Nach einem Neustart meldete mir Homebridge allerdings "Warning: skipping plugin found at '/usr/lib/node_modules/homebridge-esphome-ts' since we already loaded the same plugin from '/usr/local/lib/node_modules/homebridge-esphome-ts'."


    Also habe ich das Teil per sudo npm r -g wieder deinstalliert. Nach einem erneuten Reboot kam die Meldung nicht mehr. Sollte also alles wieder beim Alten sein. Da ich den Build gerne testen würde, frage ich mich jetzt allerdings, wie ich das Teil an die richtige Stelle ('/usr/local/lib/node_modules/') installiert bekomme und die bereits installierte Version des Plugins überschreibe.


    Bin für jede Hilfe dankbar 8)

    Cheers, Marcel

  • Da ich den Build gerne testen würde, frage ich mich jetzt allerdings, wie ich das Teil an die richtige Stelle ('/usr/local/lib/node_modules/') installiert bekomme und die bereits installierte Version des Plugins überschreibe.

    Theoretisch sollte es völlig ausreichen, wenn du das alte Plugin löschst und das neue an die richtige Stelle verschiebst.


    Altes Plugin löschen:

    sudo rm -rf /usr/local/lib/node_modules/homebridge-esphome-ts


    Neues Plugin verschieben:

    sudo mv /usr/lib/node_modules/homebridge-esphome-ts /usr/local/lib/node_modules


    Homebridge neu starten.

  • Da hatte ich bereits drüber nachgedacht, war mir aber unsicher, ob das so funktioniert. Habe jetzt mal alles so durchgeführt und es scheint geklappt zu haben. Vielen Dank.


    Da ich immer gerne dazu lerne, doch noch eine Frage: Gibt es nicht eine Möglichkeit das Plugin sofort an die richtige Stelle zu installieren?


    Wenn ich Plugins über die UI installiere, wird npm i -g scheinbar als User "homebridge" im Directory "/usr/local/" ausgeführt. Jedenfalls steht das im Installationsfenster so. Hier am Beispiel eines anderen Plugins:



    Lag es vielleicht daran, dass ich als User "Pi" angemeldet war, als ich die Installation ausgeführt habe?

    Cheers, Marcel

    Einmal editiert, zuletzt von Spy () aus folgendem Grund: Ein Beitrag von Zahnweh mit diesem Beitrag zusammengefügt.

  • Durchaus möglich, nach dem ich anfänglich auch Probleme

    mit Updates und der Installation von Plugins hatte, habe ich

    heraus gefunden daß die Anmeldung als User "Homebridge"

    der Grund für eine Fehlerhafte Configuration war. Ich melde

    mich nur noch als User Pi an.



    LG

  • (...) habe ich heraus gefunden daß die Anmeldung als User "Homebridge"

    der Grund für eine Fehlerhafte Configuration war. Ich melde

    mich nur noch als User Pi an.

    Meine Vermutung ist ja, dass es umgekehrt gewesen sein könnte. Die manuelle Installation habe ich als User Pi durchgeführt und ist im falschen Verzeichnis gelandet. Die Installation über die UI wird (zumindest bei mir) als User homebridge ausgeführt und alle Pakete landen in "/usr/local/node_modules/", wo sie scheinbar auch hingehören.

    Cheers, Marcel

    Einmal editiert, zuletzt von Zahnweh () aus folgendem Grund: Typo

  • Die Installation über die UI wird (zumindest bei mir) als User homebridge ausgeführt und alle Pakete landen in "/usr/local/node_modules/", wo sie scheinbar auch hingehören.

    Das wird bei der Installation von node und npm festgelegt und sollte eigentlich immer gleich sein. Das glaube ich zumindest - ein Verständnis von node ist dann doch eher dürftig.


    Siehe hier: https://docs.npmjs.com/cli/v7/commands/npm-prefix

    npm prefix -g ergibt bei mir /usr/local und meine Plugins liegen in /usr/local/lib/node_modules.


    Und siehe hier: https://docs.npmjs.com/cli/v7/commands/npm-config

    Mit npm config kann man offenbar die Parameter einstellen. Hab ich noch nie gemacht.

  • Danke für die Tipps!


    Bei mir wirft es als User pi einfach nur /usr raus.


    Per npm config edit komme ich in den Editor und finde dort tatsächlich die Zeile prefix=/usr.


    Ich könnte jetzt einfach /usr/local da reinschreiben und speichern und hätte es damit vermutlich erledigt. Allerdings schrecke ich davor zurück, weil ich mir nicht sicher bin, ob ich npm config edit mit dem --global flag ausführen sollte.


    Andere Möglichkeit wäre den Wert per npm set prefix=/usr/local direkt zu ändern. Aber auch dann stellt sich die Frage nach dem --global flag.

    Cheers, Marcel