सभी Pi मॉडल पर काम करने के लिए SD कार्ड पर Node.js स्थापित करें


13

मैं https://www.raspberrypi.org/downloads/raspbian/ पर अंतिम रसियन संस्करण (2016-05-27) डाउनलोड करता हूं

Node.js पहले से ही 0.10.29 संस्करण के साथ स्थापित है, इसलिए मैंने इसे हटा दिया और इसे फिर से इंस्टॉल किया

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

लेकिन मैं अपना एसडी कार्ड सभी रास्पबेरी पाई मॉडल (पाई 1, 2, 3 और शून्य) पर काम करना चाहूंगा। वर्तमान में, जब मैं ए

node -v

पी 1 पर या पीआई शून्य पर, मुझे "अवैध निर्देश" मिलता है।

मेरा सवाल है: यह संभव है कि सभी मॉडलों पर काम करने वाले पाई पर Node.js की एक प्रति स्थापित की जाए? या v0.10.29 केवल एक ही है जो सभी पिस पर काम करता है?


यदि आप यादृच्छिक वेब साइटों से स्रोत डाउनलोड करते हैं तो आपको समस्याओं की उम्मीद करनी चाहिए। आपको क्या लगता है कि रास्पबेरी पाई के लिए Node.js का संस्करण उपयुक्त है?
जौन

यह एक यादृच्छिक वेबसाइट नहीं है, लेकिन जहां आधिकारिक नोडज आपको निर्देश इंगित करते हैं। बाकी मेरा जवाब देखिए।
ग्राम्फब्ल

जवाबों:


29

आपके रास्पबेरी पाई 1 पर काम नहीं करने का कारण यह है कि ये पैकेज गलत सीपीयू के लिए संकलित हैं - आर्महफ (एआरएम 32-बिट हार्ड-फ्लोट, एआरएमवी 7 और ऊपर: आर्म-लिनुक्स-ग्नुआबीहफ)

तो पैकेज को आपके Pi2 पर काम करना चाहिए लेकिन Pi1 पर नहीं। मुझे लगता है कि दोनों पर चलने वाली छवि पाने का कोई त्वरित और आसान तरीका नहीं है। यदि आप अपने Pi1 पर एक आधुनिक नोडज स्थापित करना चाहते हैं, तो https://nodejs.org/dist/ से सही तारबॉल डाउनलोड करें। उदाहरण के लिए:

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

आखिरी कमांड प्रिंट होनी चाहिए v6.2.1

अब आप इसे / usr / लोकल पर कॉपी कर सकते हैं

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

परीक्षण / usr / स्थानीय / बिन अपने पथ के लिए

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

यह प्रिंट चाहिए 6.2.1और 3.9.3NodeJS और NPM का संस्करणों के लिए। यदि आपको एक अलग संस्करण की आवश्यकता है, तो बस आपको जो डाउनलोड करना है, उसे चुनें।

इसे स्थायी बनाने के लिए अपने .bashrc में PATH को जोड़ना न भूलें ।

सही वास्तुकला खोजने के लिए, आप cat /proc/cpuinfoएक टर्मिनल में टाइप कर सकते हैं और इसे कुछ दिखाना चाहिए

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

अद्यतन बस इस जवाब को देखा /raspberrypi//a/37976/34825 जो मूल रूप से मैंने जैसा किया था, वैसे ही करता है, सिवाय नोड / इन / ऑप्ट के और / usr / bin / में symlinks बनाने के लिए ।


आपके उत्तर के लिए धन्यवाद, मुझे लगता है कि मैं 2 नोडजेस (एक आर्मव 6 और एक आर्मव 7) स्थापित करूंगा और सही नोड (/ usr / लोकल / बिन /) के साथ / यूएसआर / बिन / नोड पर एक सिमलिंक बूट बनाने के लिए एक सेवा जोड़ूंगा। node_armv6 या / usr / लोकल / बिन / node_armv7)
14

वह काम किया, बहुत अच्छा। मेरे पीरो जीरो डब्लू पर स्थापित नोड 7.7.4 प्राप्त करने में कामयाब रहे! धन्यवाद!
क्रैग वाकर

जो कोई भी इसे पढ़ता है: आप संभवतः 6.2.1 संस्करण के बजाय नवीनतम नोड संस्करण चाहते हैं। केवल ऊपर दिए गए सभी कमांडों में संस्करण संख्या को अपने चुने हुए संस्करण से नोडज्स.ओआरडी
शिविर की घंटी बजाओ

6

कोड की एक पंक्ति में, किसी भी रास्पबेरी पाई के लिए नवीनतम संस्करण:

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

स्रोत कोड: https://github.com/audstanley/NodeJs-Raspberry-Pi/


पहली नज़र में स्क्रिप्ट में किसी भी तरह की पवित्रता की जाँच नहीं होती है। मैं इसे रूट के रूप में चलाने के लिए बहुत सावधान रहूंगा।
गृम्फब्लम

यह मेरे मुद्दे को armv6 में पुराने Nodejs के बारे में हल कर रहा था जब साथ में स्थापित किया गया थाapt install
StefansArya

2

मुझे ऊपर दिए गए ऑडस्टोनले का समाधान पसंद आया, हालांकि यह मेरे लिए काम नहीं आया।

मैंने पाया कि मुझे स्क्रिप्ट को रूट एक्सेस के साथ चलाने की आवश्यकता है।

यह मेरे लिए काम किया:

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

1
यह काम नहीं किया क्योंकि आप "wget" को रूट के रूप में चलाते हैं न कि उस बैश को जो स्क्रिप्ट को चलाता है। बस "बैश" के सामने पाइप के बाद "सुडो" डालें।
ग्राम्फब्लम

1

मेरे पास एक ही मुद्दा था और नोड v4, v5 और v6.3.1 को स्थापित करने के लिए कुछ त्वरित बैश स्क्रिप्ट बनाई गई:

https://github.com/sdesalas/node-pi-zero

वे पीआई शून्य के लिए हैं लेकिन सभी ARMv6 संगत चिप्स (1 ए 1 बी) के लिए काम करना चाहिए। वास्तव में यह ARMv7 चिप्स (2B 3B) पर भी काम करना चाहिए क्योंकि वे पुराने बायनेरिज़ से खुश हैं ।

आशा है कि आप उन्हें उपयोगी पाएंगे।


-1

या नवीनतम संस्करण प्राप्त करें:

NODE="$(curl -sL https://nodejs.org/dist/latest | grep 'armv6l.tar.xz' | cut -d'"' -f2)"
wget https://nodejs.org/dist/latest/$NODE
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.