Preparar
Tengo un PI3 con Jessie. Según Wikipedia , utiliza un ARM Cortex-A53 que es ARMv8-A
.
Al instalar node.js usando este tutorial de adafruit , termino con el nodo v0.12
que todavía está en etapa beta.
Pregunta:
Me gustaría usar al menos v4
de node.js
. ¿Cómo instalo esto y lo ejecuto?
Enfoques fallidos
primero
Este tutorial describe cómo hacerlo.
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
Desde v.4.0.0 Nuestro conjunto de pruebas debe transmitir continuamente ARMv6, ARMv7 y los nuevos procesadores ARMv8 de 64 bits.
V.5.0.0: ARMv8 binario de 64 bits:
=> No puede ejecutar el binario.
-bash: /usr/local/bin/node: cannot execute binary file: Exec format error
Segundo
https://github.com/nodesource/distributions#installation-instructions
Se detiene durante sudo apt-get install -y nodejs
Pero creo que aún no tienen soporte para el arm64
problema de 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
) de RPi3 todavía no se proporciona con soporte nativo para elarmv8
.Respuestas:
Instalé node.js usando el segundo método en la pregunta de hoy, funcionó bien. Tengo a Raspbian Jessie en una Raspberry 3.
No sé por qué ese método no funcionó para ti. Tal vez se ha actualizado y funciona mejor ahora?
fuente
v6.x
Cómo instalar
Por qué ArmV7:
En mi pi & package está escrito
Raspberry Pi 3 Model B
y de acuerdo con wikipedia : loThe ARM Cortex-A53 is a microarchitecture implementing the ARMv8-A 64-bit
que me llevó a descargar elARMv8 64-bit Binary
.Pero el pi muestra con
uname -a
Linux raspberrypi 4.1.14-v7+ #4 SMP PREEMPT Wed Mar 23 15:30:13 UTC 2016 armv7l GNU/Linux
. Entonces aparentemente hay unarmv7
en la pi.EDITAR: Parece ser correcto https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=140572
El modo de 32 bits se utiliza, debido a la falta de soporte del sistema operativo, según tengo entendido. Si alguien puede explicar esto con mayor precisión, por favor deje un comentario.
fuente
arm64
versión aquí ( debian.org/CD/netinst ) pero aún no he podido arrancarla.Usando nvm
Una solución alternativa es usar nvm como el instalador para Node.
nvm
significa Node Version Manager y tiene muchos beneficios como:node
versiones instaladas al mismo tiempo (para verificar su programa con diferentes versiones de nodo para probar la implementación en diferentes configuraciones, por ejemplo)Si bien era escéptico al principio (aunque lo uso con
nvm
éxito en otros sistemas), después de buscar la mejor solución para tenernode
enpm
instalar y accesible para todos los usuarios (incluida la raíz , que es necesaria para acceder al hardware en RasPi) y sumergirme en todos los nodos distribuciones, paquetes y fuentes, decidí probar este método. ¡Y funcionó!Aquí están mis pasos:
antes que nada, necesitas instalar nvm . Puede ejecutar este script desde su carpeta de inicio o en cualquier otro lugar, pero se instalará
nvm
para el usuario actual ( pi en mi caso, aunque tuve otro creado para este propósito que ahora es innecesario). Es posible que desee reemplazar la versión (v0.32.0) con la última.curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | golpetazo
Debe volver a abrir el terminal para acceder a nvm
luego instala Node con este simple comando:
nvm install v6.6.0
Es posible que desee comprobar las versiones disponibles emitiendo
nvm ls-remote
y elegir la que más le convengaconfigura esta versión como la predeterminada
node
para su sistema:nvm alias predeterminado v6.6.0
y verifique la versión instalada con
node -v
ynpm -v
Ahora tiene el Nodo v6.6.0 instalado para el usuario actual. Todavía no está disponible para usuarios root u otros usuarios de su sistema, pero es posible que desee eso para que pueda:
crear enlaces simbólicos (alias) para que esté disponible en todo el sistema:
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
O , en caso de que su sistema ya tenga un nodo instalado de forma predeterminada y obtenga un error con el método anterior (como en mi caso), ejecute esta línea incómoda:
n = $ (qué nodo); n = $ {n% / bin / node}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin, lib, share} / usr / local
y su recién instalado
node
ahora está disponible para todos, lo que le permite instalar paquetes npm a nivel mundial, etc.Tenga en cuenta que cada vez que desee cambiar la versión del nodo, deberá ejecutar el comando anterior (lo que puede parecer aterrador, pero todo lo que hace es copiar los
node
archivos/usr/local
, está escrito en forma condensada).¡Espero que esto ayude a alguien y ahorre algo de tiempo!
Referencias
CÓMO INSTALAR NODE.JS EN FRAMBUESA PI por Brandon Cannaday,
el primer comentario de la publicación anterior (por RYAN PARSLEY),
esta respuesta de StackOverflow ,
el tutorial de DigitalOcean que vino con la
/usr/local
idea de copia,e Internet y Google, que me permitieron pasar horas tratando de elegir la mejor solución de un océano de ideas :)
fuente
De acuerdo con esta publicación, y también en mi propia experiencia, todas las versiones de node.js preinstaladas de Raspbian están desactualizadas. Por lo tanto, su mejor opción es eliminar primero todas las instalaciones de nodos anteriores y volver a instalarlo. Esto también funcionó muy bien para Raspbian Stretch .
Hacer esto:
fuente