Es kursieren überall alte Anleitungen zur Installation und Update von Adaptern, die mit neueren npm-Versionen zu Problem führen können. Speziell bei Kombination von sudo
mit npm-Kommandos tritt dabei folgender Fehler (oder Varianten davon) auf:
Error: EACCES: permission denied, scandir '/root/.npm/_logs'
Daher bitte bei manuellen Installationen folgende Regeln beachten:
1. Wann immer es zu vermeiden geht, kein sudo
vor npm
-Befehle setzen.
2. Wenn es doch unbedingt nötig ist, unbedingt die Option -H
angeben. --unsafe-perm
vermeidet außerdem Probleme bei Installationsskripten. Also so
sudo -H npm [Rest des Befehls] --unsafe-perm
3. Ist man als root angemeldet (z.B. weil es keinen nicht-root-User gibt), empfiehlt sich bei der Adapter-Installation die Option --unsafe-perm
anzugeben. Also
npm install [Adaptername] --unsafe-perm
4. Wurde zu früherem Zeitpunkt Regel 1 oder 2 missachtet, dann kann der ioBroker-Fixer Abhilfe schaffen:
iobroker fix
5. Für die iobroker
-Befehle ist übrigens auch kein sudo
nötig.