題:
在SD卡上安裝Node.js以在所有Pi型號上使用
4Taine
2016-06-03 13:23:22 UTC
view on stackexchange narkive permalink

我已經在 https://www.raspberrypi.org/downloads/raspbian/

Node.js上下載了最新的raspbian版本(2016-05-27)安裝了0.10.29版本,因此我將其刪除並使用

  apt-get刪除noderedapt-get刪除nodejs nodejs-legacycurl -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和零)目前,當我在Pi 1或Pi 0上執行

  node -v  

時,會收到“非法指令“。

我的問題是:是否可以在適用於所有型號的Pi上安裝Node.js的副本?還是v0.10.29是唯一可在所有Pi上使用的版本?

如果您從隨機網站下載源代碼,則必定會遇到問題。是什麼讓您認為Node.js版本適合Raspberry Pi?
這不是一個隨機的網站,而是官方的nodejs安裝說明指向您的網站。休息看看我的答案。
五 答案:
Grmpfhmbl
2016-06-03 19:00:40 UTC
view on stackexchange narkive permalink

在您的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.gztar -xzf node-v6.2.1-linux-armv6l.tar.gznode-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 / binnode -vnpm -v  

這應該打印node.js和npm版本的 6.2.1 3.9.3 。如果需要其他版本,只需從下載中選擇一個即可。

不要忘記將PATH添加到您的 .bashrc 中以使其永久存在。

要找到正確的體系結構,可以在終端中鍵入 cat / proc / cpuinfo ,並且應該顯示類似

  pi @ raspberrypi :〜$ cat / proc / cpuinfoprocessor:0模型名稱:ARMv6兼容處理器rev 7(v6l)BogoMIPS:697.95功能:半拇指fastmult vfp edsp java tls CPU實現者:0x41CPU體系結構:7CPU變體:0x0CPU部分:0xb76CPU版本:7  

更新剛剛看到了這個答案 https://raspberrypi.stackexchange.com/a/37976/34825基本上與我做了,除了在 / opt / 中安裝節點並在 / usr / bin / 中創建符號鏈接。

謝謝您的回答,我想我將安裝2個nodejs(一個armv6和一個armv7)並添加一個用於在啟動時在/ usr / bin / node上使用正確節點(到/ usr / local / bin /中)創建符號鏈接的服務node_armv6或/ usr / local / bin / node_armv7)
很好,很好。設法在我的Pi Zero W上安裝了Node 7.7.4。謝謝!
對於那些讀這本書的人:您可能想要最新的節點版本而不是6.2.1版本。只需將您在https://nodejs.org/dist/中選擇的版本替換為上面所有命令中的版本號
Audstanley
2017-07-01 19:35:11 UTC
view on stackexchange narkive permalink

對於任何樹莓派,在最新的一行代碼中:

  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/

乍看之下,腳本中似乎沒有任何健全性檢查。我將以root用戶身份運行時非常小心。
使用apt install安裝時,這解決了我關於armv6中過時的Nodejs的問題。
DanielMuhlig
2017-08-12 15:32:52 UTC
view on stackexchange narkive permalink

我喜歡上面的Audstanley解決方案,儘管它對我來說開箱即用。

我發現我需要使用root用戶訪問權限來運行腳本。

這對我有用:

  sudo bashsudo wget -O-https://raw.githubusercontent.com/audstanley/NodeJs-Raspberry-Pi/master/Install- Node.sh | bashexitnode -v  
它不起作用,因為您以root身份運行“ wget”,而不是以運行腳本的bash身份運行。只需將“ sudo”放在“ bash”前面的管道之後。
Steven de Salas
2016-09-16 19:53:52 UTC
view on stackexchange narkive permalink

我遇到了同樣的問題,並製作了一些快速的bash腳本來安裝節點v4,v5和v6.3.1:

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

它們適用於Pi Zero,但應適用於所有ARMv6兼容芯片(1A 1B)。實際上,這甚至可以在ARMv7芯片(2B 3B)上運行,因為它們對較舊的二進製文件滿意

希望您發現它們很有用。

Pepe
2016-12-19 01:13:21 UTC
view on stackexchange narkive permalink

或獲取最新版本:

  NODE =“ $(curl -sL https://nodejs.org/dist/latest | grep'armv6l.tar.xz'| cut- d'“'-f2)” wget https://nodejs.org/dist/latest/$NODE  


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...