NPM auf Raspberry Pi installieren lassen (Wheezy Image)


28

Ich hatte das Glück, dieses Jahr einen Raspberry Pi unter den Baum zu bekommen, und es hat mir ein bisschen Spaß gemacht, mit Node.js auf dem Gerät zu spielen. Node.js ist jedoch viel interessanter, wenn Sie Pakete herunterladen und in Ihre Anwendungen einbinden können - und hier habe ich einige Probleme.

Wenn ich versuche, NPM zusammen mit Node.js mit dem folgenden Befehl zu installieren:

sudo apt-get install nodejs npm

Ich erhalte folgenden Fehler:

pi@raspberrypi ~ $ sudo apt-get install nodejs npm
Reading        package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nodejs : Breaks: npm (< 1.1.4~dfsg-2~) but 1.1.4~dfsg-1 is to be installed
 npm : Depends: node-semver but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Ich bin ziemlich neu in der Funktionsweise der Paketverwaltung mit Debian-basierten Linux-Betriebssystemen und weiß überhaupt nicht viel darüber, wie die node.js-Community ihre spezifischen Pakete strukturiert hat. Es ist erwähnenswert, dass das Installieren von node.js für sich alleine gut funktioniert, und wenn ich versuche, NPM nur für sich alleine zu installieren, ist dies das, was ich bekomme.

pi@raspberrypi ~ $ sudo apt-get install npm
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: nodejs-dev but it is not going to be installed
       Depends: node-request but it is not going to be installed
       Depends: node-mkdirp but it is not going to be installed
       Depends: node-minimatch but it is not going to be installed
       Depends: node-semver but it is not going to be installed
       Depends: node-ini but it is not going to be installed
       Depends: node-graceful-fs but it is not going to be installed
       Depends: node-abbrev but it is not going to be installed
       Depends: node-nopt but it is not going to be installed
       Depends: node-fstream but it is not going to be installed
       Depends: node-rimraf but it is not going to be installed
       Depends: node-tar but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Ich bin nicht sicher, aber mein Bauch sagt mir, dass es etwas mit dem node-semverPaket zu tun hat . Wenn ich das nodejsPaket selbst installiere und dann versuche, es zu installieren node-semver, erhalte ich die Ausgabe.

pi@raspberrypi ~ $ sudo apt-get install node-semver
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 node-semver : Depends: nodejs but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Irgendwelche Hinweise?

Antworten:


22

Versuchen Sie, sie alle zusammen zu installieren:

sudo apt-get install nodejs npm node-semver

32

Dies ist der beste Weg, um NodeJs auf Himbeer-Pi zu installieren, ich liebe diesen Weg und ich denke, es ist einfach zu tun, und später für das Update ersetzen Sie einfach den Ordner '/ opt / nodejs' mit der neuen Version:

wget https://nodejs.org/dist/v4.2.4/node-v4.2.4-linux-armv6l.tar.gz

sudo mv node-v4.2.4-linux-armv6l.tar.gz /opt

cd /opt

sudo tar -xzf node-v4.2.4-linux-armv6l.tar.gz

sudo mv node-v4.2.4-linux-armv6l nodejs

sudo rm node-v4.2.4-linux-armv6l.tar.gz

sudo ln -s /opt/nodejs/bin/node /usr/bin/node

sudo ln -s /opt/nodejs/bin/npm /usr/bin/npm

Beachten Sie, dass es für die letzten Raspberry-Versionen auch eine arm71-Version gibt.


2
Diese Antwort ist aktuell.
Uriel

1
Dies war die bisher beste Lösung, aber ich habe gerade eine andere gefunden, die nvm (Node Version Manager) verwendet, mit der Sie auf einfache Weise Knoten aktualisieren und gleichzeitig verschiedene Versionen verwenden können. Sie teilen die Symlink-Schritte, um allen Benutzern den Knotenzugriff zu ermöglichen. Ein kurzes Tutorial hier, losant.com/blog/how-to-install-nodejs-on-raspberry-pi mit einer Lösung zur Vermeidung der Symlink-Probleme: stackoverflow.com/a/29903645/3480671
bosch

NB: /usr/local/binwäre etwas besser geeignet sein für lokale-admin-Managed symbolischer Links zu einem lokalen Admin-Managed filedump in/opt
JamesTheAwesomeDude

es hat bei mir funktioniert, das eigentliche Problem, das ich hatte, ist, dass NPM nicht mit Node geliefert wurde, aber NPM nicht als Standalone existierte, dies hat NPM installiert, aber jetzt funktioniert Node nicht
Jacob Schneider

4

Adafruit liefert einen (relativ) aktuellen Node und eine Npm. Nachdem ich keine hilfreiche Kompilierung gefunden hatte, funktionierte dies für mich mit einer Reihe von Paketen (Express, Body-Parser, PG).


2

Ich starte raspbian jessie auf pi 3. Node ist im Image vorinstalliert, npm jedoch nicht . Hatte Probleme bei der Installation von npm und dieser Thread hat mir geholfen, Hinweise zu bekommen.

Der Fehler, den ich erhalten habe, war

pi@raspberrypi:~ $ **sudo apt-get install nodejs npm node-semver**
Reading package lists... Done
Building dependency tree       
Reading state information... Done
nodejs is already the newest version.
nodejs set to manually installed.
The following extra packages will be installed:
  gyp libc-ares-dev libjs-node-uuid libjs-underscore libssl-dev 
  libssl-doc libv8-3.14-dev node-abbrev node-ansi node-ansi-color-table 
  node-archy node-async node-block-stream node-combined-stream 
  node-cookie-jar node-delayed-stream node-forever-agent node-form-data 
  node-fstream node-fstream-ignore node-github-url-from-git node-glob 
  node-graceful-fs node-gyp node-inherits node-ini node-json-stringify-safe
  node-lockfile node-lru-cache node-mime node-minimatch
  node-mkdirp node-mute-stream node-node-uuid node-nopt node-normalize-package-data
  node-npmlog node-once node-osenv node-qs node-read node-read-package-json
  node-request node-retry node-rimraf node-sha node-sigmund node-slide 
  node-tar node-tunnel-agent node-underscore node-which nodejs-dev
Suggested packages:
  node-hawk node-aws-sign node-oauth-sign node-http-signature
The following NEW packages will be installed:
  gyp libc-ares-dev libjs-node-uuid libjs-underscore libssl-dev 
  libssl-doc libv8-3.14-dev node-abbrev node-ansi node-ansi-color-table 
  node-archy node-async node-block-stream node-combined-stream 
  node-cookie-jar node-delayed-stream node-forever-agent node-form-data   
  node-fstream node-fstream-ignore node-github-url-from-git node-glob 
  node-graceful-fs node-gyp node-inherits node-ini node-json-stringify-safe
  node-lockfile node-lru-cache node-mime node-minimatch
  node-mkdirp node-mute-stream node-node-uuid node-nopt node-normalize-package-data
  node-npmlog node-once node-osenv node-qs node-read node-read-package-json
  node-request node-retry node-rimraf node-semver node-sha node-sigmund 
  node-slide node-tar node-tunnel-agent node-underscore node-which  
  nodejs-dev npm
0 upgraded, 55 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,222 kB/3,708 kB of archives.
After this operation, 13.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
**Err http://mirrordirector.raspbian.org/raspbian/ jessie/main libssl-dev armhf 1.0.1k-3+deb8u2
  404  Not Found [IP: 5.153.225.207 80]
Err http://mirrordirector.raspbian.org/raspbian/ jessie/main libssl-doc all 1.0.1k-3+deb8u2
  404  Not Found [IP: 5.153.225.207 80]
E: Failed to fetch 
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?**
pi@raspberrypi:~ $ 

Die folgenden 2 Befehle in Folge haben mir geholfen

sudo apt-get update
sudo apt-get install npm

3
Könnten Sie bitte Ihren Beitrag bearbeiten, um ihn besser lesbar zu machen? Ist die Textwand wirklich notwendig?
Ghanima

2

Ich finde, der einfachste Weg, NPM (und die neueste Version von Node.js) auf einem Raspberry PI (Zero to 3) zu erhalten, ist die Verwendung von "NVM" ( Node Version Manager ).

So installieren Sie NVM:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

Nach der Installation können Sie jederzeit die neueste Version von Node.js herunterladen:

nvm install node

Getan!

Stellen Sie sicher, dass NPM installiert ist:

npm --version

Dies funktionierte gut für mich auf meinem pi 3b +, der ersten Lösung, die npm 1.6 installierte und bei der Installation von Paketen weiterhin auf Fehler stieß. NVM hat die Dinge richtig zum Laufen gebracht.
Sirclesam

1

Wenn Sie auf Probleme mit den Binärpaketen stoßen, empfehlen wir Ihnen, diese selbst zu kompilieren. Auf diese Weise erhalten Sie eine bessere Vorstellung davon, wenn ein Fehler auftritt. Die Binärpakete sind möglicherweise für einen anderen Prozessortyp (nicht ARM) bestimmt.

Ich schlage vor, unter https://gist.github.com/3301813 nach Anweisungen zum Kompilieren von Raspberry Pi NodeJS zu suchen.


Danke Ben. Ich war schon einmal auf diesen Artikel gestoßen. Ich nahm an, dass NPM möglicherweise vom Quelltextbaum von Node.j getrennt ist.

NPM ist unter github.com/isaacs/npm separat erhältlich. Die aktuellen Versionen für nodejs werden jedoch im Allgemeinen mit npm gebündelt geliefert.

1

Wie Ben betonte, würde ich vorschlagen, Node.js auf dem Raspberry Pi selbst zu kompilieren. Seit 0.8.10 (oder so) ist dies ohne weiteres möglich. Einfach

$ ./configure
$ make
$ sudo make install

und das ist es. Dann wird Node.js inklusive installiert npm.

Funktioniert wie ein Charme :-)!


Vielen Dank, Golo. Minitech lieferte eine Antwort, die für mich besser funktionierte. Der Raspberry Pi ist ziemlich langsam, also würde ich denken, dass das Bauen und dann das Installieren etwas schmerzhafter sein würde.

1
Schauen Sie sich die Version von Node.js an, die mit installiert wird apt-get, und vergleichen Sie diese Version mit der aktuellen Version von Node.js. Sie werden wissen, warum ich nicht vorgeschlagen habe, apt-get... zu verwenden ;-)
Golo Roden

Ich habe einige vorkompilierte Tarballs erstellt, die auf einem Raspberry Pi verwendet werden können, wenn Sie nicht wirklich darauf warten möchten, dass die Quelle kompiliert wird. gist.github.com/3245130
Adam MW

1

Alles, was Sie tun, ist eintippen

pi@raspberrypi ~ $ sudo apt-get install nodejs npm node-semver 

Es hat bei mir funktioniert und ich konnte es fehlerfrei installieren und es sollte mit einem Programm funktionieren!


1
Bitte seien Sie genauer: Welche Version des Knotens haben Sie auf diese Weise installiert, welche Paketquelle haben Sie verwendet (haben Sie eine neue hinzugefügt?), Auf welchem ​​Betriebssystem haben Sie installiert, auf welcher RPI-Version haben Sie sie? Armv6, V7). Ihre Antwort könnte etwas lösen, aber wir wissen nicht, was damit niemand es verwenden wird.
Bosch

0

Versuchen Sie, diesem Beitrag zu folgen . Ich schaffe es, npm unter / opt / node / npm auszuführen, aber wenn ich es nach / usr / bin / kopiere, fehlt 'npmlog'.


Es wird bevorzugt, dass Sie die Schritte in die Antwort kopieren, während Sie Ihrer Quelle zusätzliche Informationen zuweisen, falls die Quell-Site ausfällt, die Seite gelöscht oder verschoben wird usw. Zumindest eine Zusammenfassung der Grundzüge des Prozesses.
Tevo D
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.