Tüm Pi modellerinde çalışmak için Node.js'yi bir SD karta takın


13

Https://www.raspberrypi.org/downloads/raspbian/ adresindeki son raspbian versiyonunu (2016-05-27) indiriyorum.

Node.js 0.10.29 sürümü ile zaten yüklü, bu yüzden bunu kaldırdım ve yeniden yükledim

apt-get remove nodered
apt-get remove nodejs nodejs-legacy
curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
sudo apt-get install -y build-essential python-rpi.gpio nodejs

Ama SD kartımın tüm Raspberry Pi modellerinde (Pi 1, 2, 3 ve Sıfır) çalışmasını istiyorum.

node -v

Pi 1'de veya Pi sıfırında "yasa dışı bir talimat" alıyorum.

Benim sorum: Node.js'nin bir kopyasını tüm modellerde çalışan bir Pi'ye kurmak mümkün mü? Yoksa tüm Pis'de çalışan tek v0.10.29 mu?


Rastgele web sitelerinden kaynak indiriyorsanız sorun beklemeniz gerekir. Node.js sürümünün Raspberry Pi için uygun olduğunu düşündüren nedir?
joan

Bu rastgele bir web sitesi DEĞİL, ancak resmi nodejs kurulum talimatları sizi işaret ediyor. Dinlen cevabımı gör.
Grmpfhmbl

Yanıtlar:


29

Bunun Raspberry Pi 1'inizde çalışmamasının nedeni, bu paketlerin yanlış CPU için derlenmesidir - armhf (ARM 32 bit sert şamandıra, ARMv7 ve üstü: arm-linux-gnueabihf)

Bu yüzden paket Pi2'niz üzerinde çalışmalı, Pi1 üzerinde çalışmamalıdır. Her ikisinde de çalışan bir görüntü almanın hızlı ve kolay bir yolu yok sanırım. Pi1'inize modern bir nodejs kurmak istiyorsanız, https://nodejs.org/dist/ adresinden doğru tarball'ı indirin. Örneğin:

cd ~
wget https://nodejs.org/dist/v6.2.1/node-v6.2.1-linux-armv6l.tar.gz
tar -xzf node-v6.2.1-linux-armv6l.tar.gz
node-v6.2.1-linux-armv6l/bin/node -v

Son komut yazdırılmalıdır v6.2.1.

Şimdi / usr / local dizinine kopyalayabilirsiniz

cd node-v6.2.1-linux-armv6l/
sudo cp -R * /usr/local/

Test etmek için yolunuza / usr / local / bin ekleyin

export PATH=$PATH:/usr/local/bin
node -v
npm -v

Bu yazdırmalısınız 6.2.1ve 3.9.3nodejs ve NPM sürümleri için. Farklı bir sürüme ihtiyacınız varsa, indirmelerden istediğiniz sürümü seçin.

Kalıcı hale getirmek için PATH'i .bashrc'nize eklemeyi unutmayın .

Doğru mimariyi bulmak için cat /proc/cpuinfobir terminal yazabilirsiniz ve bunun gibi bir şey göstermesi gerekir

pi@raspberrypi:~ $ cat /proc/cpuinfo
processor   : 0
model name  : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS    : 697.95
Features    : half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xb76
CPU revision    : 7

update Bu seçeneği /raspberrypi//a/37976/34825 , / opt / dizinine yükleme düğümü ve / usr / bin / dizininde semboller oluşturmak dışında yaptığımla aynı şekilde yapan /raspberrypi//a/37976/34825 kodunu gördüm .


Cevabınız için teşekkür ederim, sanırım 2 düğüm (bir armv6 ve bir armv7) kuracağım ve / usr / bin / node üzerinde doğru düğüme sahip bir symlink oluşturmak için bir hizmet ekleyeceğim (/ usr / local / bin / node_armv6 veya / usr / local / bin / node_armv7)
4Taine

Bu işe yaradı, harika. Pi Zero W üzerinde Node 7.7.4 yüklü olmayı başardı. Teşekkürler!
Kraig Walker

Bunu kim okursa: Muhtemelen 6.2.1 sürümü yerine en yeni düğüm sürümünü istiyorsunuz. Yukarıdaki tüm komutlardaki sürüm numarasını nodejs.org/dist adresinden
Camp bell

6

Herhangi bir ahududu pi için bir kod satırında, en son sürüm:

wget -O - https://raw.githubusercontent.com/audstanley/NodeJs-Raspberry-Pi/master/Install-Node.sh | sudo bash;
node -v;

Kaynak kodu: https://github.com/audstanley/NodeJs-Raspberry-Pi/


İlk bakışta senaryoda herhangi bir akıl sağlığı kontrolü yok gibi görünüyor. Bunu kök olarak çalıştırmak için çok dikkatli olurdum.
Grmpfhmbl

Bu, yükleme sırasında armv6'daki eski Nodejs ile ilgili sorunumu çözüyorduapt install
StefansArya

2

Audstanley'in çözümünü sevdim, ancak kutudan çıkar çıkmadı.

Komut dosyasını root erişimi ile çalıştırmam gerektiğini buldum.

Bu benim için çalıştı:

sudo bash
sudo wget -O - https://raw.githubusercontent.com/audstanley/NodeJs-Raspberry-Pi/master/Install-Node.sh | bash
exit
node -v

1
"Wget" komutunu çalıştıran bash değil kök olarak çalıştırdığınız için işe yaramadı. Basitçe "bash" önündeki borudan sonra "sudo" koyun.
Grmpfhmbl


-1

Veya en son sürümü edinin:

NODE="$(curl -sL https://nodejs.org/dist/latest | grep 'armv6l.tar.xz' | cut -d'"' -f2)"
wget https://nodejs.org/dist/latest/$NODE
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.