Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

[保存版]最新Node.js for Raspberry Pi Zero / 1 (ARMv6向け)

$
0
0

ARMv6のサポート終了

2019年4月頃、Node.jsのVer.12のリリースとともにARMv6のビルドが提供されなくなりました。ARMv6を使うデバイスはだいぶ少なくなりましたが、ここにありますよ!Zero WHが!!
RFC: Consider retiring the PI1s ARMv6 (downgrading support to "experimental") · Issue #1677 · nodejs/build · GitHub
どうやら非公式ビルドというものを用意してくれているようです。ありがたや。

Node.js unofficial-builds project

Node.js Unofficial Builds Project
GitHub - nodejs/unofficial-builds: Unofficial binaries for Node.js
非公式ビルドは
https://unofficial-builds.nodejs.org/download/release/v14.3.0/
以下にあるようです。最新ビルドを見ると公式と比べて数時間差でしょうか。誤差ですね!

手動でインストール

まず初めに公式最新リリースで最新バージョンを確認 (もしかしたら都合悪く最新バージョンがビルドされていないかもしれないので、非公式Releaseを要確認。)

VERSION=v14.3.0
DISTRO=linux-armv6l
wget https://unofficial-builds.nodejs.org/download/release/$VERSION/node-$VERSION-$DISTRO.tar.xz

意外と時間かかります。終わったら、解凍。

sudo mkdir-p /usr/local/lib/nodejs
sudo tar-xJvf node-$VERSION-$DISTRO.tar.xz -C /usr/local/lib/nodejs

適当なエディタで~/.profileに追記

~/.profile
# NodejsVERSION=v14.3.0
DISTRO=linux-armv6l
export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH

.profileの再読み込み

. ~/.profile

これで完了。
参照: Installation · nodejs/help Wiki · GitHub

アップデートの仕方

毎回これやるのはダルいし、作業ゲーがアホらしいのでアップデート方法の模索。
ちょっと調べるとnというパッケージがあるが、最新バージョンを聞くとやっぱり公式ビルドの11.15.0を返す始末。当たり前だが。
となると自分で作るしかない。うん、そうしよう。

update-nodejs.sh
#!/bin/sh. ~/.profile
old=`node -v`echo"現在のNode.jsのバージョンは$oldです"ver=''if[$# -eq 1 ];then
  ver="v$1"if[$ver=$old];then
    echo"Node.js($ver)が既にインストールされています"return 0
  fi
else
  ver=`wget -qO- https://nodejs.org/dist/latest/ | sed-nE's|.*>node-(.*)\.pkg</a>.*|\1|p'`if[$ver=$old];then
    echo"Node.js($ver)は最新です"return 0
  fi
fi

wget https://unofficial-builds.nodejs.org/download/release/$ver/node-$ver-$DISTRO.tar.xz
if[!-e node-$ver-$DISTRO.tar.xz ];then
  return 1
fi

if[-d /usr/local/lib/nodejs ];then
  sudo rm-r /usr/local/lib/nodejs
fi
sudo mkdir-p /usr/local/lib/nodejs
sudo tar-xJvf node-$ver-$DISTRO.tar.xz -C /usr/local/lib/nodejs
sed-i-e"s/VERSION=$VERSION/VERSION=$ver/g" ~/.profile

rm node-$ver-$DISTRO.tar.xz
. ~/.profile

echo"Node.js: $old -> `node -v`"

これを実行するだけで常にlatestに更新されます。LTSとかは考慮してませんorz

source update-nodejs.sh

引数にバージョンを入れると無理やりそのバージョンに移行します。が、非公式ビルドにあれば、です。

source update-nodejs.sh 14.0.0

定期実行させる

どんなバグでも仕様変更でもかかってこいって人はCronに入れるとよいでしょう。ただ頻度はほどほどに。
中でsudoとか使ってたり環境変数変えてたりして割と雑なスクリプトなのでCronでの動作保証はしません。というかシェルスクリプト書いたの数回目なのでツッコミ大歓迎です。Cronは試してみたら追記します。


Viewing all articles
Browse latest Browse all 8691

Trending Articles