Hallo zusammen,
mit großer Freude habe ich neulich vom https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa (https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa) für Amazon Alexa gelesen und mich gleich an die Installation gemacht.
Leider habe ich Probleme mit meinem Betriebsystem.
Ich setze derzeit folgende Version ein:
markus@Jarvis4:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
nodejs konnte ich mit Hilfe von folgendem Artikel installieren:
https://forum.fhem.de/index.php/topic,104021.0.html (https://forum.fhem.de/index.php/topic,104021.0.html)
Ich habe jetzt folgende Version:
markus@Jarvis4:~$ nodejs -v
v8.17.0
Allerdings funktioniert NPM bei mir überhaupt nicht:
markus@Jarvis4:~$ npm -v
/usr/local/bin/node: 1: /usr/local/bin/node: Syntax error: word unexpected (expecting ")")
besagtes Verzeichnis enthält folgendes:
markus@Jarvis4:/usr/local/bin$ ls -l
insgesamt 26712
-rwxr-xr-x 1 root root 27300456 Mär 18 2018 node
lrwxrwxrwx 1 root root 38 Mär 18 2018 npm -> ../lib/node_modules/npm/bin/npm-cli.js
-rwxr-xr-x 1 root root 47441 Dez 1 2017 speedtest-cli
und wenn ich versuche npm zu installieren bekomme ich folgende Meldung:
markus@Jarvis4:/usr/local/bin$ sudo apt-get install npm
[sudo] Passwort für markus:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
npm : Hängt ab von: nodejs soll aber nicht installiert werden
Hängt ab von: node-abbrev (>= 1.0.4) soll aber nicht installiert werden
Hängt ab von: node-ansi (>= 0.3.0-2) soll aber nicht installiert werden
Hängt ab von: node-ansi-color-table soll aber nicht installiert werden
Hängt ab von: node-archy soll aber nicht installiert werden
Hängt ab von: node-block-stream soll aber nicht installiert werden
Hängt ab von: node-fstream (>= 0.1.22) soll aber nicht installiert werden
Hängt ab von: node-fstream-ignore soll aber nicht installiert werden
Hängt ab von: node-github-url-from-git soll aber nicht installiert werden
Hängt ab von: node-glob (>= 3.1.21) soll aber nicht installiert werden
Hängt ab von: node-graceful-fs (>= 2.0.0) soll aber nicht installiert werden
Hängt ab von: node-inherits soll aber nicht installiert werden
Hängt ab von: node-ini (>= 1.1.0) soll aber nicht installiert werden
Hängt ab von: node-lockfile soll aber nicht installiert werden
Hängt ab von: node-lru-cache (>= 2.3.0) soll aber nicht installiert werden
Hängt ab von: node-minimatch (>= 0.2.11) soll aber nicht installiert werden
Hängt ab von: node-mkdirp (>= 0.3.3) soll aber nicht installiert werden
Hängt ab von: node-gyp (>= 0.10.9) soll aber nicht installiert werden
Hängt ab von: node-nopt (>= 3.0.1) soll aber nicht installiert werden
Hängt ab von: node-npmlog soll aber nicht installiert werden
Hängt ab von: node-once soll aber nicht installiert werden
Hängt ab von: node-osenv soll aber nicht installiert werden
Hängt ab von: node-read soll aber nicht installiert werden
Hängt ab von: node-read-package-json (>= 1.1.0) soll aber nicht installiert werden
Hängt ab von: node-request (>= 2.25.0) soll aber nicht installiert werden
Hängt ab von: node-retry soll aber nicht installiert werden
Hängt ab von: node-rimraf (>= 2.2.2) soll aber nicht installiert werden
Hängt ab von: node-semver (>= 2.1.0) soll aber nicht installiert werden
Hängt ab von: node-sha soll aber nicht installiert werden
Hängt ab von: node-slide soll aber nicht installiert werden
Hängt ab von: node-tar (>= 0.1.18) soll aber nicht installiert werden
Hängt ab von: node-underscore soll aber nicht installiert werden
Hängt ab von: node-which soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
Spätestens hier bi ich mit meinem dürftigen Linux-Latein am Ende.
Kann mir bitte jemand aus diesem Schlammassel heraushelfen?
Viele Grüße
Markus
Hallo Markus,
eigentlich funktioniert die Installation von der offiziellen Seite ganz easy
https://github.com/nodesource/distributions/blob/master/README.md
dabei wird npm ordentlich mitinstalliert.
Ich würde jetzt an Deiner Stelle:
das alte nodejs löschen (purge)
Auf Fehlerfreiheit des apt Systems achten, ich weiß leider nicht genau was man alles wie prüfen kann
Vielleicht sowas wie apt-get install -f versuchen
Und wenn alles ohne Fehler ist nochmal diesen Weg versuchen:
sudo su
# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install nodejs
Und Ubuntu 16.04 musst Du auch irgendwann aktualisieren ;) das kommt immerhin ins 4 Jahr
Gruß Otto
Beim bereinigen die Manuell installierten Sourcen für npm (zu finden unter /etc/apt/source.list.d/) löschen!
Dein Problem dürfte daran liegen, das Du manuell die Sourcen für 18.04 gesetzt hast, aber ein 16.04 hast.
Ansonsten kann ich Otto nur zustimmen ... mit Ausnahme des Supportzeitraumes: April 2021
Hallo zusammen,
vielen Dank für eure Antworten.
Wenn ich Wernieman richtig verstehe, dann lösche ich nodesource.list in /etc/apt/sources.list.d
root@Jarvis4:/etc/apt/sources.list.d# ls -l
insgesamt 16
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list.save
-rw-r--r-- 1 root root 140 Dez 29 2017 iconnor-ubuntu-zoneminder-xenial.list
-rw-r--r-- 1 root root 108 Jan 11 15:34 nodesource.list
und mache dann das was Otto vorgeschlagen hat, ja?
Gruß
Markus
So, jetzt habe ich das so gemacht und leider immer noch den gleichen Fehler:
markus@Jarvis4:/etc/apt/sources.list.d$ sudo su
[sudo] Passwort für markus:
root@Jarvis4:/etc/apt/sources.list.d# ls -l
insgesamt 16
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list.save
-rw-r--r-- 1 root root 140 Dez 29 2017 iconnor-ubuntu-zoneminder-xenial.list
-rw-r--r-- 1 root root 108 Jan 11 15:34 nodesource.list
root@Jarvis4:/etc/apt/sources.list.d# ^C
root@Jarvis4:/etc/apt/sources.list.d# rm nodesource.list
root@Jarvis4:/etc/apt/sources.list.d# ls -l
insgesamt 12
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list.save
-rw-r--r-- 1 root root 140 Dez 29 2017 iconnor-ubuntu-zoneminder-xenial.list
root@Jarvis4:/etc/apt/sources.list.d# apt-get purge nodejs
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
nodejs*
0 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert.
Nach dieser Operation werden 70,5 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n] J
(Lese Datenbank ... 229534 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von nodejs (8.17.0-1nodesource1) ...
Trigger für man-db (2.7.5-1) werden verarbeitet ...
root@Jarvis4:/etc/apt/sources.list.d# apt-get install -f
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
root@Jarvis4:/etc/apt/sources.list.d# apt-get update
OK:1 http://de.archive.ubuntu.com/ubuntu xenial InRelease
OK:2 http://ppa.launchpad.net/atareao/sunflower/ubuntu xenial InRelease
Holen:3 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
OK:4 https://download.docker.com/linux/ubuntu xenial InRelease
OK:5 http://ppa.launchpad.net/iconnor/zoneminder/ubuntu xenial InRelease
Holen:6 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Holen:7 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Es wurden 325 kB in 0 s geholt (360 kB/s).
Paketlisten werden gelesen... Fertig
root@Jarvis4:/etc/apt/sources.list.d# apt-get upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
root@Jarvis4:/etc/apt/sources.list.d# apt-get autoremove
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
root@Jarvis4:/etc/apt/sources.list.d# curl -sL https://deb.nodesource.com/setup_10.x | bash -
## Installing the NodeSource Node.js 10.x repo...
## Populating apt-get cache...
+ apt-get update
OK:1 http://de.archive.ubuntu.com/ubuntu xenial InRelease
OK:2 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease
OK:3 http://ppa.launchpad.net/atareao/sunflower/ubuntu xenial InRelease
OK:4 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease
OK:5 https://download.docker.com/linux/ubuntu xenial InRelease
OK:6 http://ppa.launchpad.net/iconnor/zoneminder/ubuntu xenial InRelease
OK:7 http://security.ubuntu.com/ubuntu xenial-security InRelease
Paketlisten werden gelesen... Fertig
## Confirming "xenial" is supported...
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_10.x/dists/xenial/Release'
## Adding the NodeSource signing key to your keyring...
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
OK
## Creating apt sources list file for the NodeSource Node.js 10.x repo...
+ echo 'deb https://deb.nodesource.com/node_10.x xenial main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src https://deb.nodesource.com/node_10.x xenial main' >> /etc/apt/sources.list.d/nodesource.list
## Running `apt-get update` for you...
+ apt-get update
OK:1 http://de.archive.ubuntu.com/ubuntu xenial InRelease
OK:2 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease
OK:3 http://ppa.launchpad.net/atareao/sunflower/ubuntu xenial InRelease
OK:4 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease
Holen:5 https://deb.nodesource.com/node_10.x xenial InRelease [4.584 B]
OK:6 https://download.docker.com/linux/ubuntu xenial InRelease
OK:7 http://ppa.launchpad.net/iconnor/zoneminder/ubuntu xenial InRelease
OK:8 http://security.ubuntu.com/ubuntu xenial-security InRelease
Holen:9 https://deb.nodesource.com/node_10.x xenial/main amd64 Packages [766 B]
Es wurden 5.350 B in 0 s geholt (5.421 B/s).
Paketlisten werden gelesen... Fertig
## Run `sudo apt-get install -y nodejs` to install Node.js 10.x and npm
## You may also need development tools to build native addons:
sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
root@Jarvis4:/etc/apt/sources.list.d# apt-get install nodejs
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
nodejs
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 16,2 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 81,1 MB Plattenplatz zusätzlich benutzt.
Holen:1 https://deb.nodesource.com/node_10.x xenial/main amd64 nodejs amd64 10.18.1-1nodesource1 [16,2 MB]
Es wurden 16,2 MB in 1 s geholt (10,7 MB/s).
Vormals nicht ausgewähltes Paket nodejs wird gewählt.
(Lese Datenbank ... 225512 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../nodejs_10.18.1-1nodesource1_amd64.deb ...
Entpacken von nodejs (10.18.1-1nodesource1) ...
Trigger für man-db (2.7.5-1) werden verarbeitet ...
nodejs (10.18.1-1nodesource1) wird eingerichtet ...
root@Jarvis4:/etc/apt/sources.list.d# npm -v
/usr/local/bin/node: 1: /usr/local/bin/node: Syntax error: word unexpected (expecting ")")
Was mich stutzig macht, ist die ziemlich große Datei namens node unter "/usr/local/bin"
root@Jarvis4:/usr/local/bin# ls -l
insgesamt 26712
-rwxr-xr-x 1 root root 27300456 Mär 18 2018 node
lrwxrwxrwx 1 root root 38 Mär 18 2018 npm -> ../lib/node_modules/npm/bin/npm-cli.js
-rwxr-xr-x 1 root root 47441 Dez 1 2017 speedtest-cli
Ist da alles Ausführbare drin?
Sorry, aber Linux ist für mich ein bömisches Dorf :-[
1)
nach dem löschen der "source" hättest Du auch die interne DB updaten müssen
apt-get update
Sofern ich gesehen habe, hast Du gleich ein "upgrade" und damit das Problem wieder ...
2) Brauchst Du wirklich so viele verschiedene sourcen?
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list
-rw-r--r-- 1 root root 138 Dez 29 2017 atareao-ubuntu-sunflower-xenial.list.save
-rw-r--r-- 1 root root 140 Dez 29 2017 iconnor-ubuntu-zoneminder-xenial.list
Das sagt mir aktuell nichts ....
Hallo Wernieman,
Danke für deine Geduld! :)
Also als erstes mal alle sourcen unter etc/apt/sources.list.d wegsichern.
Dann alle Dateien unter etc/apt/sources.list.d löschen.
Dann
apt-get update
Dadurch, wird dann die interne DB bereinigt.
Dann
apt-get purge nodejs
Dann
apt-get install -f
Dann
sudo su
# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install nodejs
Und jetzt müsste ich mit npm weiterarbeiten können, richtig?
Gruß
Markus
Teoretisch ja ...
Allerdings würde ich Dir vorschlagen:
apt-get update
apt-get upgrade
apt-get purge nodejs
apt-get autoremove
apt-get autoclean
apt-get purge $(dpkg --get-selections | grep deinstall | cut -f1 | xargs)
Hinweis:
Ich habe mit Absicht nirgendwo den Schalter "-y" gesetzt, man sollte versuchen die Ausgaben, die man Bestätigt, zu lesen.
Hintergrund:
durch autoremove werden die überflüssigen Packete nicht gepurged, sondern nur "entfernt". Durch die letzte Zeile werden diese definitiv auch gepurged und damit bereinigt. Durch autoremove werden auch die Installationspakete entfernt, müssen (und sollen) in diesem Falle aber neu geladen werden. Damit verlängert sich die Installation durch das Downloaden der Pakete, aber es ist sauberer.
Eventuell könntest Du vor dem installieren von nodejs gucken, ob noch irgendwo "Reste" zu finden sind:
find / -name "*nodejs*"
Edit:
Und bitte alles als root .....