SD 카드에 Node.js를 설치하여 모든 Pi 모델에서 작동


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

그러나 SD 카드가 모든 Raspberry Pi 모델 (Pi 1, 2, 3 및 Zero)에서 작동하기를 원합니다.

node -v

파이 1 또는 파이 제로에서 "불법 명령"을 얻습니다.

내 질문은 : 모든 모델에서 작동하는 Pi에 Node.js 사본을 설치할 수 있습니까? 아니면 v0.10.29가 모든 Pis에서 작동하는 유일한 것입니까?


임의의 웹 사이트에서 소스를 다운로드하면 문제가 발생할 수 있습니다. Node.js의 버전이 Raspberry Pi에 적합하다고 생각하는 이유는 무엇입니까?
joan

이것은 임의의 웹 사이트가 아니지만 공식 nodejs 설치 지침이있는 곳입니다. 나머지는 내 대답을 참조하십시오.
Grmpfhmbl

답변:


29

이것이 Raspberry Pi 1에서 작동하지 않는 이유는이 패키지가 잘못된 CPU-armhf (ARM 32 비트 하드 플로트, ARMv7 이상 : arm-linux-gnueabihf) 용으로 컴파일 되었기 때문입니다

따라서 패키지는 Pi2에서는 작동하지만 Pi1에서는 작동하지 않습니다. 나는 둘 다에서 실행되는 이미지를 얻는 빠르고 쉬운 방법이 없다고 생각합니다. Pi1에 최신 nodejs를 설치하려면 https://nodejs.org/dist/ 에서 올바른 tarball을 다운로드 하십시오. 예를 들면 다음과 같습니다.

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 / local에 복사 할 수 있습니다

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

테스트하려면 / usr / local / bin을 경로에 추가하십시오.

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

이것은 인쇄해야 6.2.1하고 3.9.3nodejs과 NPM의 버전. 다른 버전이 필요한 경우 다운로드에서 원하는 버전을 선택하십시오.

PATH를 영구적으로 만들기 위해 .bashrc 에 추가하는 것을 잊지 마십시오 .

올바른 아키텍처를 찾으려면 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

업데이트 방금 / opt /에 노드를 설치하고 / usr / bin /에 심볼릭 링크를 만드는 것을 제외하고는 기본적으로 내가했던 것과 동일한 /raspberrypi//a/37976/34825 라는 대답을 보았습니다 .


귀하의 답변에 감사드립니다. 나는 2 nodejs (1 armv6 및 1 armv7)를 설치하고 부팅시 올바른 노드가있는 / usr / bin / node에 symlink를 생성하는 서비스를 추가 할 것이라고 생각합니다 (/ usr / local / bin / node_armv6 또는 / usr / local / bin / node_armv7)
4Taine

잘 작동했습니다. Pi Zero W에 Node 7.7.4를 설치했습니다. 감사합니다!
Kraig Walker

이 글을 읽는 사람에게 : 버전 6.2.1 대신 최신 노드 버전을 원할 것입니다. 위의 모든 명령에서 버전 번호를 nodejs.org/dist
Camp bell

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/


언뜻보기에 대본에는 위생 검사가없는 것 같습니다. 나는 이것을 루트로 실행하기 위해 매우 조심해야합니다.
Grmpfhmbl

이것은 함께 설치할 때 armv6의 오래된 Nodejs에 대한 내 문제를 해결했습니다.apt install
StefansArya

2

위의 Audstanley 솔루션이 마음에 들지 않았지만 위의 솔루션이 마음에 들었습니다.

루트 액세스 권한으로 스크립트를 실행해야한다는 것을 알았습니다.

이것은 나를 위해 일했다 :

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

1
"wget"을 루트로 실행하고 스크립트를 실행하는 bash가 아니기 때문에 작동하지 않았습니다. "bash"앞에 파이프 뒤에 "sudo"를 놓기 만하면됩니다.
Grmpfhmbl


-1

또는 최신 버전을 구하십시오.

NODE="$(curl -sL https://nodejs.org/dist/latest | grep 'armv6l.tar.xz' | cut -d'"' -f2)"
wget https://nodejs.org/dist/latest/$NODE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.