NEWS
NPM spinnt!
-
Wenn man schreibt
npm i npm@latest -g
Dann sollte Meldung kommen, wo das installiert wurde.
Was ist das? `
/usr/bin/npx -> /usr/lib/node_modules/npm/bin/npx-cli.js /usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js + npm@5.7.1 added 367 packages, removed 100 packages and updated 166 packages in 56.734s root@iobroker:~#
Naja ich bin schon daran interessiert, dass ioBroker zum besten System heranwächst … Auch wenn das heissen muss, dass ioBroker auch dann noch reibungslos funktioniert, wenn npm in einem anderen Pfad liegt. Es gibt doch unzählige Linux-Software, die mal hier, mal dort installiert liegt, in der einen Distribution hier, in der anderen dort. Es wird ein Symlink gesetzt und es funktioniert trotzdem.
ioBroker funktioniert ja erst seit ein paar Tagen nicht mehr, also muss bei ioBroker sich doch etwas geändert haben. Das ist auch kein Angriff gegen euch "verantwortliche" Programmierer. Nur wenn ich so etwas in einem Forum "melde" kann auch die Ursache gefunden werden und vielleicht auch andere davon profitieren.
-
Neuerdings überprüft ioBroker nur, ob es mit einer nicht unterstützten Version von npm installiert werden soll und bricht dann die Installation hab. Andernfalls könntest du dir unter Umständen deine komplette ioBroker-Installation zerschießen. `
Vielleicht liegt da der Hund begraben? Prüfroutine verfeinern? Denn anscheinend wird ja 5.7.1 installiert (Siehe oben), aber nur nicht erkannt - evtl. weil nur in einem möglichen Pfad abgefragt wird - ich kenne mich da allerdings mit meinen rudimentären Kenntnissen nicht aus …
-
Was passiert bei
/usr/bin/npm -v
?
-
Was passiert bei
/usr/bin/npm -v
? `
root@iobroker:~# /usr/bin/npm -v 5.7.1 root@iobroker:~#
:roll: Reines Abfrageproblem?
-
:roll: Reines Abfrageproblem? `
ioBroker verwendet einfach das npm, das in der PATH-Environment-Variable eingetragen ist. Das liegt bei dir in /usr/local/bin/npm und wird auch ausgeführt, wenn du npm auf der Kommandozeile eingibst. Woher ioBroker erfahren soll, dass eine andere Version in /usr/bin/ liegt weiß ich ehrlich gesagt nicht. Genauso wenig, warum du zwei npm Versionen parallel hast, wovon eine in PATH steht und die andere durch ein npm install aktualisiert wird.Naja, lass uns das ganze mal reparieren… Du willst ja schließlich auch bei manueller Eingabe von npm die korrekte Version ausführen.
Führe mal
npm get prefix
aus. Sofern das /usr/bin ausgibt, kannst du npm einfach aus dem Ordner /usr/local/bin löschen (nicht den ganzen Ordner!)
Ansonsten musst du zuerst
npm set prefix /usr/bin
ausführen.
-
Naja, lass uns das ganze mal reparieren… Du willst ja schließlich auch bei manueller Eingabe von npm die korrekte Version ausführen.
Führe mal
npm get prefix
aus. Sofern das /usr/bin ausgibt, kannst du npm einfach aus dem Ordner /usr/local/bin löschen (nicht den ganzen Ordner!)
Ansonsten musst du zuerst
npm set prefix /usr/bin
ausführen. `
Hallo AlCalzone, hat so nicht funktioniert aber Deine Grundidee hat mich inspiriert
Habe die beiden npm-Ordner:
/usr/local/lib/node_modules/npm
/usr/lib/node_modules/npm
händisch entfernt:
root@iobroker:~# rm -r /usr/lib/node_modules/npm root@iobroker:~# rm -r /usr/local/lib/node_modules/npm
und dann mit:
sudo apt-get --purge remove node sudo apt-get --purge remove nodejs sudo apt-get autoremove sudo reboot curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y build-essential libavahi-compat-libdnssd-dev libudev-dev nodejs reboot
abgeschlossen.
Jetzt wird ausgespuckt:
root@iobroker:~# node -v v6.13.1 root@iobroker:~# nodejs -v v6.13.1 root@iobroker:~# npm -v 3.10.10 root@iobroker:~#
So soll es dann glaube ich auch sein?
-
das sieht gut aus… wobei ich die npm -v von Version 3 auf 4 installiert hätte:
npm install -g npm@4
-
das sieht gut aus… wobei ich die npm -v von Version 3 auf 4 installiert hätte:
npm install -g npm@4 ```` `
Habe mich an die aktuelle Anleitung hier gehalten. Bringt die 4 Vorteile?
-
Streng genommen bringt vor allem die 5 (ab v5.7.1) Vorteile, da npm5 deutlich schneller sein soll. Aber ist kein Muss, ich bin auf meinem Desktop-Rechner auch mit npm3 unterwegs. Die Anleitung hat npm5 bisher außen vor gelassen, da das bis vor kurzem nur Zerstörung mit sich gebracht hat.
-
Na dann lass ich mal lieber die Finger von der 5 Lieber eine reife Frucht als eine unausgereifte.
Danke noch mal an alle, die sich hier an den Thread beteiligt haben!
-
Hallo,
nur mal der Vollständigkeit halber, da ich mir in der Angelegenheit auch echt den Wolf gesucht hab. Ständig hat mir die "blöde" Konsole wieder eine npm-Version 3.10.1 ausgespuckt. Update gemacht, schön was von 5.71 gelesen. Version aufgerufen: 3.10 … Update wiederholt ... 5.71 ... npm -v ergibt 3.10 ...
Das Ende vom Lied: Es macht einen Unterschied, ob man per "sudo" oder ohne die npm-Befehle absetzt. Nachdem ich das dann irgendwann verstanden hatte, ist jetzt scheinbar auch wirklich 5.71 verfügbar. :roll:
-
Das Ende vom Lied: Es macht einen Unterschied, ob man per "sudo" oder ohne die npm-Befehle absetzt. Nachdem ich das dann irgendwann verstanden hatte, ist jetzt scheinbar auch wirklich 5.71 verfügbar. :roll: `
Gabs fehler bei der Installation ohne sudo? Ansonsten hast du womöglich auch 2 Versionen installiert, ähnlich wie green50?! -
Ich hab mir gestern eine Test-Installation von ioBroker auf Windows 7 zerschossen… (Admin-Update, JS-Controller-, etc. pp. Updates)
Startpunkt von Node/NPM:
c:\iobroker λ npm -v 5.7.1 c:\iobroker λ node -v v6.10.3
Beim Neumachen hat es dann mal zig Fehlermeldungen gegeben, ioBroker funktioniert aber:
! ````
c:\iobroker
λ npm install iobroker
! > iobroker@1.1.2 install c:\iobroker\node_modules\iobroker
node lib/prepareSetup.js && node lib/setup.js
! npm WARN invalid config loglevel="notice"
NPM version: 5.7.1
npm version >= 5: disabling package-lock
npm install iobroker.discovery@stable --production --save
npm WARN invalid config loglevel="notice"
! > serialport@4.0.7 install c:\iobroker\node_modules\serialport
node-pre-gyp install --fallback-to-build
! node-pre-gyp info it worked if it ends with ok
node-pre-gyp verb cli [ 'C:\Program Files (x86)\nodejs\node.exe',
node-pre-gyp verb cli 'c:\iobroker\node_modules\serialport\node_modules\node-pre-gyp\bin\node-pre-gyp',
node-pre-gyp verb cli 'install',
node-pre-gyp verb cli '--fallback-to-build' ]
node-pre-gyp info using node-pre-gyp@0.6.32
node-pre-gyp info using node@6.10.3 | win32 | ia32
node-pre-gyp verb command install []
node-pre-gyp info check checked for "c:\iobroker\node_modules\serialport\build\Release\serialport.node" (not found)
node-pre-gyp http GET https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7/serialport-v4.0.7-node-v48-win32-ia32.tar.gz
node-pre-gyp http 200 https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7/serialport-v4.0.7-node-v48-win32-ia32.tar.gz
node-pre-gyp info install unpacking obj/
node-pre-gyp info install unpacking obj/serialport/
node-pre-gyp info install unpacking obj/serialport/serialport.obj
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/CL.read.1.tlog
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/cl.command.1.tlog
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/cl.write.1.tlog
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/link.command.1.tlog
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/link.read.1.tlog
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/link.write.1.tlog
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/serialport.lastbuildstate
node-pre-gyp info install unpacking obj/serialport/serialport.tlog/serialport.write.1u.tlog
node-pre-gyp info install unpacking obj/serialport/serialport_win.obj
node-pre-gyp info install unpacking obj/serialport/vc120.pdb
node-pre-gyp info install unpacking obj/serialport/win_delay_load_hook.obj
node-pre-gyp info install unpacking serialport.exp
node-pre-gyp info install unpacking serialport.lib
node-pre-gyp info install unpacking serialport.map
node-pre-gyp info install unpacking serialport.node
node-pre-gyp info install unpacking serialport.pdb
node-pre-gyp info tarball done parsing tarball
node-pre-gyp info validate Running test command: 'C:\Program Files (x86)\nodejs\node.exe --eval 'require('c:/iobroker/node_modules/serialport/build/Release/serialport.node')''
[serialport] Success: "c:\iobroker\node_modules\serialport\build\Release\serialport.node" is installed via remote
node-pre-gyp info ok
npm notice created a lockfile as package-lock.json. You should commit this file.- iobroker.discovery@1.1.0
added 167 packages from 110 contributors and updated 1 package in 77.685s
packet folder is: c:\iobroker\node_modules\iobroker.discovery | exists: true
npm install iobroker.admin@stable --production --save
npm WARN invalid config loglevel="notice" - iobroker.admin@2.0.9
added 186 packages from 129 contributors in 35.998s
packet folder is: c:\iobroker\node_modules\iobroker.admin | exists: true
npm install iobroker.js-controller@stable --production --save
npm WARN invalid config loglevel="notice"
npm WARN deprecated localhost.daplie.me-certificates@1.3.5: this package has been deprecated
! > unix-dgram@0.2.3 install c:\iobroker\node_modules\unix-dgram
node-gyp rebuild
! c:\iobroker\node_modules\unix-dgram>if not defined npm_config_node_gyp (node "C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm�glichen, m�ssen Sie den Schalter "/m" hinzuf�gen.
unix_dgram.cc
win_delay_load_hook.cc
..\src\unix_dgram.cc(9): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory [c:\iobroker\node_modules\unix-dgram\build\unix_dgram.vcxproj]
gyp ERR! build error
gyp ERR! stack Error:C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe
failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:258:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\Program Files (x86)\nodejs\node.exe" "C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd c:\iobroker\node_modules\unix-dgram
gyp ERR! node -v v6.10.3
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
! > ursa@0.9.4 install c:\iobroker\node_modules\ursa
node-gyp rebuild
! c:\iobroker\node_modules\ursa>if not defined npm_config_node_gyp (node "C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm�glichen, m�ssen Sie den Schalter "/m" hinzuf�gen.
ursaNative.cc
win_delay_load_hook.cc
LINK : fatal error LNK1181: cannot open input file 'C:\OpenSSL-Win32\lib\libeay32.lib' [c:\iobroker\node_modules\ursa\build\ursaNative.vcxproj]
gyp ERR! build error
gyp ERR! stack Error:C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe
failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:258:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\Program Files (x86)\nodejs\node.exe" "C:\Users\User\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd c:\iobroker\node_modules\ursa
gyp ERR! node -v v6.10.3
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
! > iobroker.js-controller@1.2.3 install c:\iobroker\node_modules\iobroker.js-controller
node iobroker.js setup first
! creating conf/iobroker.json
object system.certificates created
object system.repositories created
object system.config created
object enum.rooms created
object system.group.user created
object system.group.administrator created
object _design/system created
object system.meta.uuid created
object system.user.admin created
host.User-PC install adapter admin
npm install --production (System call) in "c:/iobroker/node_modules/iobroker.admin"
npm WARN invalid config access=undefined
npm WARN invalid config https-proxy=undefined
npm WARN invalid config Must be a full url with 'http://'
npm WARN invalid config init-author-url=undefined
npm WARN invalid config Must be a full url with 'http://'
npm WARN invalid config loglevel="notice"
npm WARN invalid config proxy=undefined
npm WARN invalid config Must be a full url with 'http://'
npm WARN onload-script failed to require onload script undefined
npm WARN onload-script Error: Cannot find module 'undefined'
npm WARN onload-script at Function.Module._resolveFilename (module.js:469:15)
npm WARN onload-script at Function.Module._load (module.js:417:25)
npm WARN onload-script at Module.require (module.js:497:17)
npm WARN onload-script at require (internal/module.js:20:19)
npm WARN onload-script at cb (c:\iobroker\node_modules\npm\lib\npm.js:289:9)
npm WARN onload-script at c:\iobroker\node_modules\npm\lib\npm.js:382:14
npm WARN onload-script at c:\iobroker\node_modules\npm\lib\config\core.js:82:7
npm WARN onload-script at Array.forEach (native)
npm WARN onload-script at c:\iobroker\node_modules\npm\lib\config\core.js:81:13
npm WARN onload-script at f (c:\iobroker\node_modules\npm\node_modules\once\once.js:25:25)
npm WARN onload-script { Error: Cannot find module 'undefined'
npm WARN onload-script at Function.Module._resolveFilename (module.js:469:15)
npm WARN onload-script at Function.Module._load (module.js:417:25)
npm WARN onload-script at Module.require (module.js:497:17)
npm WARN onload-script at require (internal/module.js:20:19)
npm WARN onload-script at cb (c:\iobroker\node_modules\npm\lib\npm.js:289:9)
npm WARN onload-script at c:\iobroker\node_modules\npm\lib\npm.js:382:14
npm WARN onload-script at c:\iobroker\node_modules\npm\lib\config\core.js:82:7
npm WARN onload-script at Array.forEach (native)
npm WARN onload-script at c:\iobroker\node_modules\npm\lib\config\core.js:81:13
npm WARN onload-script at f (c:\iobroker\node_modules\npm\node_modules\once\once.js:25:25) code: 'MODULE_NOT_FOUND' }
got c:/iobroker/node_modules/iobroker.admin/admin
upload [2] admin.admin c:/iobroker/node_modules/iobroker.admin/admin/words.js words.js application/javascript
upload [1] admin.admin c:/iobroker/node_modules/iobroker.admin/admin/index.html index.html text/html
upload [0] admin.admin c:/iobroker/node_modules/iobroker.admin/admin/admin.png admin.png image/png
host.User-PC object system.adapter.admin created
host.User-PC create instance admin
host.User-PC object admin.0.info created
host.User-PC object system.adapter.admin.upload created
host.User-PC object system.adapter.admin.0.outputCount created
host.User-PC object system.adapter.admin.0.inputCount created
host.User-PC object system.adapter.admin.0.uptime created
host.User-PC object system.adapter.admin.0.memRss created
host.User-PC object system.adapter.admin.0.memHeapTotal created
host.User-PC object system.adapter.admin.0.memHeapUsed created
host.User-PC object system.adapter.admin.0.connected created
host.User-PC object system.adapter.admin.0.alive created
host.User-PC object system.adapter.admin.0 created
host.User-PC install adapter discovery
got c:/iobroker/node_modules/iobroker.discovery/admin
upload [5] discovery.admin c:/iobroker/node_modules/iobroker.discovery/admin/words.js words.js application/javascript
upload [4] discovery.admin c:/iobroker/node_modules/iobroker.discovery/admin/settings_m.html settings_m.html text/html
upload [3] discovery.admin c:/iobroker/node_modules/iobroker.discovery/admin/settings.html settings.html text/html
upload [2] discovery.admin c:/iobroker/node_modules/iobroker.discovery/admin/index_m.html index_m.html text/html
upload [1] discovery.admin c:/iobroker/node_modules/iobroker.discovery/admin/index.html index.html text/html
upload [0] discovery.admin c:/iobroker/node_modules/iobroker.discovery/admin/discovery.png discovery.png image/png
host.User-PC object system.adapter.discovery created
host.User-PC create instance discovery
host.User-PC object discovery.0.scanRunning created
host.User-PC object discovery.0.devicesFound created
host.User-PC object discovery.0.instancesFound created
host.User-PC object discovery.0.servicesProgress created
host.User-PC object discovery.0.devicesProgress created
host.User-PC object system.adapter.discovery.0.outputCount created
host.User-PC object system.adapter.discovery.0.inputCount created
host.User-PC object system.adapter.discovery.0.uptime created
host.User-PC object system.adapter.discovery.0.memRss created
host.User-PC object system.adapter.discovery.0.memHeapTotal created
host.User-PC object system.adapter.discovery.0.memHeapUsed created
host.User-PC object system.adapter.discovery.0.connected created
host.User-PC object system.adapter.discovery.0.alive created
host.User-PC object system.adapter.discovery.0 created
npm WARN npm@2.15.12 had bundled packages that do not match the required version(s). They have been replaced with non-bundled versions.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: unix-dgram@0.2.3 (node_modules\unix-dgram):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: unix-dgram@0.2.3 install:node-gyp rebuild
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: ursa@0.9.4 (node_modules\ursa):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: ursa@0.9.4 install:node-gyp rebuild
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
! + iobroker.js-controller@1.2.3
added 329 packages from 567 contributors in 624.01s
packet folder is: c:\iobroker\node_modules\iobroker.js-controller | exists: true
Write "iobroker start" to start the ioBroker
npm install https://github.com/arthurblake/node-windows/tarball/f1fd60e93e2469663b99a9cf3a64086ecedfe1e4 --production --save --prefix "c:/iobroker/"
npm WARN invalid config loglevel="notice"
npm WARN unmet dependency c:\iobroker\node_modules\iobroker requires yargs@'^7.0.2' but will load
npm WARN unmet dependency c:\iobroker\node_modules\yargs,
npm WARN unmet dependency which is version 6.6.0
ioBroker service installed. Write "serviceIoBroker start" to start the service and go to http://localhost:8081 to open the admin UI.
To see the outputs do not start the service, but write "node node_modules/iobroker.js-controller/controller"
npm WARN enoent ENOENT: no such file or directory, open 'c:\iobroker\package.json'
npm WARN iobroker No description
npm WARN iobroker No repository field.
npm WARN iobroker No README data
npm WARN iobroker No license field.
! + iobroker@1.1.2
added 47 packages from 23 contributors in 772.336sMich hat dann mal diese Meldung interessiert```` npm WARN invalid config loglevel="notice"
Über Google bin ich dann hier gelandet: https://github.com/npm/npm/issues/16862
Und dann ist mir aufgefallen, dass im nodes_modules Verzeichnis ein älteres NPM liegt:
λ npm ls npmlog iobroker.inst@1.1.2 c:\iobroker `-- iobroker.js-controller@1.2.3 `-- npm@2.15.12 +-- node-gyp@3.6.0 | `-- npmlog@2.0.4 deduped +-- npm-install-checks@1.0.7 | `-- npmlog@2.0.4 deduped +-- npm-registry-client@7.2.1 | `-- npmlog@2.0.4 deduped `-- npmlog@2.0.4
Soll das so sein?
- iobroker.discovery@1.1.0
-
Und dann ist mir aufgefallen, dass im nodes_modules Verzeichnis ein älteres NPM liegt:
Soll das so sein? `
War mal nötig, ich hab die Abhängigkeit vor kurzem ausgebaut, da es auch die Versionschecks für npm5 verwirrt. Bin mir aber nicht sicher in welcher JS-Controller-Version das dann entfernt wird, dürfte 1.3.0 oder dann die nächste Version werden. -
Das Ende vom Lied: Es macht einen Unterschied, ob man per "sudo" oder ohne die npm-Befehle absetzt. Nachdem ich das dann irgendwann verstanden hatte, ist jetzt scheinbar auch wirklich 5.71 verfügbar. :roll:
Gabs fehler bei der Installation ohne sudo? Ansonsten hast du womöglich auch 2 Versionen installiert, ähnlich wie green50?!
Zumindest waren mir keine Fehler aufgefallen. Da ich bis zum Einsatz von ioBroker aber ziemlicher Anfänger in Sachen "Linux" war (und wohl immer noch bin ), muss das nix heißen. Aber bis dato hat das alles immer soweit funktioniert. Ist mir tatsächlich auch erst in diesem Zusammenhang hier bewusst geworden, dass ich mit zwei Versionen arbeite.