Wer seinen adapter direkt im Verzeichnis /opt/iobroker/node_modules entwickeln möchte
und dort ein git Repository initialisiert, könnte den Fehler EISGIT beim aktualisieren/installieren eines anderen Adapters erhalten.
Dafür funktioniert folgende Lösung:
- Seinen eine Ebene direkt unter /opt/iobroker kopieren.
Ein vorheriger Versuch den Adapter unter /home/pi zu kopieren scheiterte leider an der Auflösung von dependencys
Die Option -r steht für rekursiv
Die Option -p steht für alle Rechte und Infos über Eigentümer mitkopieren.
cd /opt/iobroker/node_modules/
sudo cp -rp <VerzeichnisnameAdapter>/ /opt/iobroker/
- Zur Sicherheit macht ihr dann noch eine Sicherheitskopie und löscht dann das Verzeichnis
cd /opt/iobroker/node_modules/
tar -cvpf /home/pi/<adaptername>.tar <VerzeichnisnameAdapter>/
rm -r /opt/iobroker/node_modules/<VerzeichnisnameAdapter>
- Dann geht ihr in das Verzeichnis mit der Kopie und legt einen npm link an.
Dadurch wird ein symlink ins globale Modulverzeichnis angelegt
cd /opt/iobroker/<VerzeichnisnameAdapter>
sudo npm link
- Zum Schluss dann in das Programmverzeichnis von iobroker
Dort führt ihr wieder npm link plus den Paketnamen des Adapters aus (also das was in package.json drin steht.
Das legt letztendlich einen symlink in das node_modules Verzeichnis an, so dass euer adapter an gewohnter Stelle verfügbar ist
cd /opt/iobroker/
npm link <AdapterPackagename>
Danach habt ihr unter node_modules einen symlink zum anderen Verzeichnis.
Ihr könnt dann ganz normal wieder im Adapterverzeichnis unter node_modulse arbeiten und npm
stört sich nicht mehr an dem git-Repository.