NEWS
[gelöst] Fehler bei reinstall.sh
-
Hallo Forum,
ich hab da grad einen Fehler, wo ich mir keinen Reim drauf machen kann;-(
Ich will reinstall.sh ausführen
root@iob:/opt/iobroker# chmod +x reinstall.sh /bin/sh ./reinstall.sh
Das reinstall.sh sieht erstmal korrekt aus (kommt aus einer frischen Installation):
! ````
#!/bin/bash
! iobroker stop
! BASE=$(pwd)
! if [ ! -f "$BASE/iobroker" ]
! then
! echo "Script needs to be started in the iobroker base directory (normally /opt/iobroker on linux)"
! exit
! fi
! if [ -d ./node_modules ]
! then
! ls -1 ./node_modules | grep iobroker. > reinstall.list.txt
! chmod -R 777 *
! cd node_modules
! rm -R *
! pwd
! while read IN
! do
! npm install $IN --production --save --unsafe-perm --prefix $BASE
! if [ $? -eq 0 ]
! then
! echo "DONE $IN"
! else
! echo "FAIL $IN"
! fi
! done < "$BASE/reinstall.list.txt"
! chmod -R 777 *
! rm "$BASE/reinstall.list.txt"
! iobroker upload all
! fiIch lass es mit /bin/sh laufen, weil ich im container nur sh habe. reinstall.list.txt erzeugt er noch.
iobroker.admin
iobroker.discovery
iobroker.js-controllerDann listet er die iobroker -h auf. Also wenn iobroker mit fehlerhafter syntax aufgerufen wird. Und es kommt:
./reinstall.sh: 29: ./reinstall.sh: Syntax error: "done" unexpected (expecting "then")
Da die echo's in der do-loop nicht kommen, geh ich mal davon aus, dass die nicht läuft. Nur warum? Gruß und schönen Sonntag
-
Ja wie auch immer. Das funkelnagelneue reinstall.sh aus ner frischen linux Installation ist wohl für Linux nicht zu gebrauchen;-) Hab's jetzt im Editor bearbeitet. Alle Leerzeilen raus, dann läuft es.
-
Mit js-Controller 1.5 wird das eh kein Shell Skript mehr sein …
Gesendet vom Handy ...
-
Ja, hatte im git schon die reinstall.js gesehen, nur nix gefunden die auszulösen;-) Und ich werkel grad an einem Tut, da sollte das nachvollziehbar sein.
Na jedenfalls erst mal gut!
-
Effektiv ist ein „npm rebuild“ als erster Versuch an sich das erste. Erst danach das reinstall
Gesendet vom Handy …