Installieren
Ich habe einen PI3 mit Jessie. Laut Wikipedia verwendet es einen ARM Cortex-A53 , die ist ARMv8-A
.
Wenn ich node.js mithilfe dieses Adafruit-Tutorials installiere, lande ich auf einem Knoten, v0.12
der sich noch in der Beta-Phase befindet.
Frage:
Ich würde gerne mindestens v4
von verwenden node.js
. Wie installiere ich das und bringe es zum Laufen?
Fehlgeschlagene Ansätze
Zuerst
Dieses Tutorial beschreibt, wie es geht.
wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-arm64.tar.gz
tar -xvf node-v5.0.0-linux-arm64.tar.gz
cd node-v5.0.0-linux-arm64
sudo cp -R * /usr/local/ #attention copies also readme and other not required files
Ab v.4.0.0 muss unsere Testsuite ständig ARMv6, ARMv7 und die neuen 64-Bit-ARMv8-Prozessoren weitergeben.
V.5.0.0: ARMv8 64-Bit-Binärdatei:
=> Die Binärdatei kann nicht ausgeführt werden.
-bash: /usr/local/bin/node: cannot execute binary file: Exec format error
Zweite
https://github.com/nodesource/distributions#installations-instructions
Stoppt während sudo apt-get install -y nodejs
Aber ich denke, sie haben noch keine Unterstützung für das arm64
Github-Problem
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gyp libc-ares-dev libc-ares2 libjs-node-uuid libjs-underscore libssl-dev
libssl-doc libv8-3.14-dev libv8-3.14.5 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
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
nodejs
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
1 not fully installed or removed.
Need to get 0 B/8,028 kB of archives.
After this operation, 38.3 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 125270 files and directories currently installed.)
Preparing to unpack .../nodejs_5.10.0-1nodesource1~jessie1_armhf.deb ...
Detected old npm client, removing...
Unpacking nodejs (5.10.0-1nodesource1~jessie1) ...
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 294.455070] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.546888] Process mmcqd/0 (pid: 52, stack limit = 0xb8cde210)
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.618619] Stack: (0xb8cdfd88 to 0xb8ce0000)
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.671359] fd80: 00000007 b9687680 b8cdfdc4 b8cdfda0 8043c924 8043cb34
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.770515] fda0: b8cdfdc4 b8cdfdb0 8055fb5c b8cf0150 b9687400 b9687680 b8cdfdfc b8cdfdc8
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.869667] fdc0: 8043d588 8043c738 b9687624 80441c80 b8cdfdfc b8cdfde0 80441c80 b8cf0150
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 295.968821] fde0: b9687400 b8cf0258 b8cf0150 b8cdfea4 b8cdfe14 b8cdfe00 80424c54 8043d428
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.067976] fe00: b9687400 00000000 b8cdfe64 b8cdfe18 80425980 80424b5c 00000001 b8cf0034
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.167140] fe20: adec51d0 00000000 b8cb8600 8005f4f8 b8cdfe30 b8cdfe30 b8cdfe5c adec51d0
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.266294] fe40: b8cf0008 b8cf014c b9687c00 b8cf0150 00000000 adec51d0 b8cdfed4 b8cdfe68
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.365448] fe60: 80434494 804256e0 adec51d0 adec5220 b8cdfe94 b8cdfe80 802c88a0 802f97d4
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.464600] fe80: b971e580 b971e584 b8cdfeb4 00000000 b8cf0000 00000000 00000000 80443bec
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.563754] fea0: ffffffff 00ffffff b8cdfed4 b8cf0008 b9687c00 adec51d0 b8cf0000 b8cf0000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.662907] fec0: 00000001 24590411 b8cdff24 b8cdfed8 80434fd8 804343dc 00000000 adec51d0
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.762059] fee0: b8cf8000 b8cde000 b8cdff0c b8cdfef8 802cf320 b9687400 b8cf0008 b8cf0008
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.861214] ff00: b8cf8000 b8cde000 00000000 24590411 00000001 adec51d0 b8cdff5c b8cdff28
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 296.960367] ff20: 804367c8 80434ee0 80436708 b8cf0010 00000000 b97151c0 00000000 b8cf0008
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.059522] ff40: 80436708 00000000 00000000 00000000 b8cdffac b8cdff60 80042494 80436714
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.158687] ff60: 8055fba4 00000000 b8cdff94 b8cf0008 00000000 00000000 b8cdff78 b8cdff78
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.257840] ff80: 00000000 00000000 b8cdff88 b8cdff88 b97151c0 800423ac 00000000 00000000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.356994] ffa0: 00000000 b8cdffb0 8000f9f8 800423b8 00000000 00000000 00000000 00000000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.456177] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 297.555354] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 55550000 55554000
Message from syslogd@raspberrypi at Apr 6 09:47:46 ...
kernel:[ 298.607208] Code: e89da818 e28400fc ebf11884 eafffff6 (e7f001f2)
Stretch
) noch nicht mit nativem Support für das ausgeliefertarmv8
.Antworten:
Ich habe node.js mit der zweiten Methode installiert, die heute in Frage kam, und es hat einwandfrei funktioniert. Ich habe Raspbian Jessie auf einer Himbeere 3.
Ich weiß nicht, warum diese Methode bei Ihnen nicht funktioniert hat. Vielleicht wurde es aktualisiert und funktioniert jetzt besser?
quelle
v6.x
Wie installiert man
Warum ArmV7:
Auf meinem pi & paket steht
Raspberry Pi 3 Model B
laut wikipedia geschrieben :The ARM Cortex-A53 is a microarchitecture implementing the ARMv8-A 64-bit
was mich zum download des führteARMv8 64-bit Binary
.Aber das pi zeigt mit
uname -a
Linux raspberrypi 4.1.14-v7+ #4 SMP PREEMPT Wed Mar 23 15:30:13 UTC 2016 armv7l GNU/Linux
. Also anscheinend gibt es einenarmv7
im pi.EDIT: Es scheint richtig zu sein https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=140572
Nach meinem Verständnis wird der 32-Bit-Modus wegen der fehlenden Unterstützung des Betriebssystems verwendet. Wenn jemand dies genauer erklären kann, hinterlassen Sie bitte einen Kommentar.
quelle
arm64
Version ( debian.org/CD/netinst ), aber ich konnte diese noch nicht booten.Mit nvm
Eine alternative Lösung ist die Verwendung von nvm als Installationsprogramm für Node.
nvm
steht für Node Version Manager und hat viele Vorteile wie:node
Versionen gleichzeitig installiert (um Ihr Programm mit verschiedenen Versionen des Knotens zu überprüfen, um beispielsweise die Bereitstellung in verschiedenen Setups zu testen)Während ich am Anfang skeptisch war (obwohl ich
nvm
erfolgreich auf anderen Systemen), nach der besten Lösung suchen zu habennode
undnpm
installiert und zugänglich für alle Benutzer (einschließlich root , die den Zugriff auf Hardware auf Raspi erforderlich ist) und Tauchen in allen Knoten Bei Distributionen, Paketen und Quellen habe ich beschlossen, diese Methode auszuprobieren. Und es hat funktioniert!Hier sind meine Schritte:
Zunächst müssen Sie nvm installieren . Sie können dieses Skript von Ihrem Home-Ordner oder von einem anderen Ort aus ausführen, es wird jedoch
nvm
für den aktuellen Benutzer installiert ( in meinem Fall pi , obwohl ich ein anderes für diesen Zweck erstellt habe, was jetzt nicht mehr erforderlich ist). Möglicherweise möchten Sie die Version (v0.32.0) durch die neueste ersetzen.curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | Bash
Sie müssen das Terminal erneut öffnen, um auf nvm zugreifen zu können
Dann installieren Sie Node mit diesem einfachen Befehl:
nvm install v6.6.0
Sie können die verfügbaren Versionen überprüfen, indem Sie die für Sie geeignete Version
nvm ls-remote
auswählenSie haben diese Version als Standard
node
für Ihr System festgelegt:nvm alias default v6.6.0
und überprüfen Sie die installierte Version mit
node -v
undnpm -v
Jetzt haben Sie Node v6.6.0 für den aktuellen Benutzer installiert. Es ist noch nicht für Root- Benutzer oder andere Benutzer auf Ihrem System verfügbar, aber Sie möchten dies möglicherweise, damit Sie entweder:
Erstellen Sie Symlinks (Aliase), um sie systemweit verfügbar zu machen:
sudo ln -s /home/pi/.nvm/versions/node/v6.6.0/bin/node / usr / bin / node
sudo ln -s /home/pi/.nvm/versions/node/v6.6.0/bin/npm / usr / bin / npm
Oder , falls auf Ihrem System bereits standardmäßig ein Knoten installiert ist und Sie bei der obigen Methode eine Fehlermeldung erhalten (wie in meinem Fall), führen Sie diese umständliche Zeile aus:
n = $ (welcher Knoten); n = $ {n% / bin / node}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin, lib, share} / usr / local
und Ihre frisch installierte Version
node
ist jetzt für alle verfügbar, sodass Sie npm-Pakete global usw. installieren können.Beachten Sie, dass Sie den obigen Befehl immer dann ausführen müssen, wenn Sie die Knotenversion wechseln möchten (was beängstigend erscheinen mag, aber alles, was Sie tun müssen, ist, die
node
Dateien/usr/local
in eine komprimierte Form zu kopieren ).Ich hoffe das hilft jemandem und spart etwas Zeit!
Verweise:
SO INSTALLIEREN SIE NODE.JS AUF RASPBERRY PI von Brandon Cannaday,
der 1. Kommentar aus dem obigen Beitrag (von RYAN PARSLEY),
diese StackOverflow Antwort ,
das DigitalOcean-Tutorial , das mit der Kopieridee geliefert wurde
/usr/local
,und das Internet und Google, mit denen ich stundenlang versucht habe, die beste Lösung aus einem Ozean von Ideen zu finden :)
quelle
Gemäß diesem Beitrag und auch nach meiner eigenen Erfahrung sind alle vorinstallierten Raspbian node.js- Versionen veraltet. Ihre beste Option ist daher, zuerst alle vorherigen Knoteninstallationen zu entfernen und erneut zu installieren. Dies funktionierte auch hervorragend für Raspbian Stretch .
Mach das:
quelle