Installer
J'ai un PI3 avec Jessie. Selon Wikipedia, il utilise un ARM Cortex-A53 qui est ARMv8-A
.
Lors de l'installation de node.js à l'aide de ce tutoriel adafruit, je me retrouve avec node v0.12
qui est encore en phase bêta.
Question:
Je voudrais utiliser au moins v4
de node.js
. Comment l'installer et le faire fonctionner?
Approches ayant échoué
Premier
Ce didacticiel explique comment procéder.
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
Depuis la v.4.0.0, notre suite de tests doit continuellement passer sur ARMv6, ARMv7 et les nouveaux processeurs ARMv8 64 bits.
V.5.0.0: binaire ARMv8 64 bits:
=> Il n'est pas capable d'exécuter le binaire.
-bash: /usr/local/bin/node: cannot execute binary file: Exec format error
Seconde
https://github.com/nodesource/distributions#installation-instructions
Arrête pendant sudo apt-get install -y nodejs
Mais je pense qu'ils n'ont pas encore de support pour le arm64
problème Github
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
) RPi3 n'est toujours pas fourni avec un support natif pour learmv8
.Réponses:
J'ai installé node.js en utilisant la deuxième méthode de la question aujourd'hui, cela a très bien fonctionné. J'ai Raspbian Jessie sur un Raspberry 3.
Je ne sais pas pourquoi cette méthode n'a pas fonctionné pour vous. Peut-être qu'il a été mis à jour et fonctionne mieux maintenant?
la source
v6.x
Comment installer
Pourquoi ArmV7:
Sur mon pi & package est écrit
Raspberry Pi 3 Model B
et selon wikipedia :The ARM Cortex-A53 is a microarchitecture implementing the ARMv8-A 64-bit
ce qui m'a conduit à télécharger leARMv8 64-bit Binary
.Mais le pi montre avec
uname -a
Linux raspberrypi 4.1.14-v7+ #4 SMP PREEMPT Wed Mar 23 15:30:13 UTC 2016 armv7l GNU/Linux
. Donc apparemment il y a unarmv7
dans le pi.EDIT: Il semble être correct https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=140572
Le mode 32 bits est utilisé, en raison du manque de prise en charge du système d'exploitation, à ma connaissance. Si quelqu'un peut expliquer cela plus précisément, veuillez laisser un commentaire.
la source
arm64
version ici ( debian.org/CD/netinst ) mais je n'ai pas encore pu démarrer celle-ci.Utilisation de nvm
Une solution alternative utilise nvm comme programme d'installation pour Node.
nvm
signifie Node Version Manager et présente de nombreux avantages tels que:node
versions installées en même temps (pour vérifier votre programme avec différentes versions de nœud pour tester le déploiement sur différentes configurations, par exemple)Alors que j'étais sceptique au début (bien que j'utilise
nvm
avec succès sur d'autres systèmes), après avoir cherché la meilleure solution à avoirnode
etnpm
installée et accessible pour tous les utilisateurs (y compris root , qui est requis pour accéder au matériel sur RasPi) et plongé dans tous les nœuds distributions, packages et sources, j'ai décidé d'essayer cette méthode. Et ça a marché!Voici mes étapes:
tout d'abord, vous devez installer nvm . Vous pouvez exécuter ce script à partir de votre dossier de départ ou n'importe où ailleurs, mais il s'installera
nvm
pour l'utilisateur actuel ( pi dans mon cas, bien que j'en ai créé un autre à cette fin, ce qui est maintenant inutile). Vous voudrez peut-être remplacer la version (v0.32.0) par la dernière.curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | frapper
Vous devez rouvrir le terminal pour accéder à nvm
puis vous installez Node avec cette simple commande:
nvm install v6.6.0
Vous voudrez peut-être vérifier les versions disponibles en émettant
nvm ls-remote
et en choisissant celle qui vous convientvous définissez cette version par défaut
node
pour votre système:nvm alias default v6.6.0
et vérifiez la version installée avec
node -v
etnpm -v
Vous avez maintenant installé Node v6.6.0 pour l'utilisateur actuel. Il n'est pas encore disponible pour rooter ou pour d'autres utilisateurs sur votre système, mais vous pouvez le vouloir pour que vous puissiez:
créer des liens symboliques (alias) pour le rendre disponible à l'échelle du système:
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
Ou , dans le cas où votre système a déjà un nœud installé par défaut et que vous obtenez une erreur avec la méthode ci-dessus (comme dans mon cas), exécutez cette ligne maladroite:
n = $ (quel nœud); n = $ {n% / bin / node}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin, lib, share} / usr / local
et votre nouvelle installation
node
est maintenant disponible pour tout le monde vous permettant d'installer des packages npm dans le monde entier, etc.Veuillez noter que chaque fois que vous souhaitez changer de version de nœud, vous devrez exécuter la commande ci-dessus (ce qui peut sembler effrayant mais tout ce qu'il fait est de copier les
node
fichiers/usr/local
, il est écrit sous une forme condensée).J'espère que cela aide quelqu'un et fait gagner du temps!
Les références:
COMMENT INSTALLER NODE.JS SUR RASPBERRY PI par Brandon Cannaday,
le 1er commentaire du post ci-dessus (par RYAN PARSLEY),
cette réponse StackOverflow ,
le didacticiel DigitalOcean fourni avec l'
/usr/local
idée de copie,et Internet et Google qui m'ont permis de passer des heures à essayer de choisir la meilleure solution dans un océan d'idées :)
la source
Selon ce post, et d'après ma propre expérience, toutes les versions de Raspbian node.js préinstallées sont obsolètes. Votre meilleure option est donc de supprimer d'abord toutes les installations de nœuds précédentes et de les réinstaller. Cela a également très bien fonctionné pour Raspbian Stretch .
Faites ceci:
la source