M1 Mac に古い Node.js を入れてみました。
インストールコマンド 1 回では上手く行かなかったので、ログを残しておきます。

環境

  • MacBook Air (M1, 2020)
  • macOS Monterey 12.3

必要なもの

インストールログ

1 回目の nodenv install

まずは、nodenvv10.14.2のインストールコマンドを打ってみます。

% nodenv install 10.14.2
Downloading node-v10.14.2.tar.gz...
-> https://nodejs.org/dist/v10.14.2/node-v10.14.2.tar.gz

WARNING: node-v10.14.2 is in LTS Maintenance mode and nearing its end of life.
It only receives *critical* security updates, *critical* bug fixes and documentation updates.

Installing node-v10.14.2...

BUILD FAILED (OS X 12.3 using node-build 4.9.67)

Inspect or clean up the working tree at /var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518104724.1497.lq2MET
Results logged to /var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518104724.1497.log

Last 10 log lines:
make: python: Command not found
make: python: Command not found
make: python: Command not found
make: python: Command not found
make: python: Command not found
make: python: Command not found
make: python: Command not found
make: python: Command not found
Missing or stale config.gypi, please run ./configure
make: *** [config.gypi] Error 1

エラーです。pyhonコマンドが無いようです。
試しにpyhon コマンドを打ってみると、やはりCommand not foundです。

% python
zsh: command not found: python

pyenv経由でpythonコマンドを使えるようにしてみます。
バージョンは適当に3.9.12を入れてみました。

% pyenv install 3.9.12
...略...
Installed Python-3.9.12 to /Users/zzzmisa/.pyenv/versions/3.9.12

% pyenv global 3.9.12

% python -V
Python 3.9.12

2 回目の nodenv install

pythonコマンドが使えるようになったので、もう一度、node-v10.14.2のインストールを試してみます。

% nodenv install 10.14.2
Downloading node-v10.14.2.tar.gz...
-> https://nodejs.org/dist/v10.14.2/node-v10.14.2.tar.gz

WARNING: node-v10.14.2 is in LTS Maintenance mode and nearing its end of life.
It only receives *critical* security updates, *critical* bug fixes and documentation updates.

Installing node-v10.14.2...

BUILD FAILED (OS X 12.3 using node-build 4.9.80)

Inspect or clean up the working tree at /var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518112744.26380.O80Ms1
Results logged to /var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518112744.26380.log

Last 10 log lines:
/var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518112744.26380.O80Ms1 ~
/var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518112744.26380.O80Ms1/node-v10.14.2 /var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518112744.26380.O80Ms1 ~
Please use either Python 2.6 or 2.7
Missing or stale config.gypi, please run ./configure
make: *** [config.gypi] Error 1

今度はPlease use either Python 2.6 or 2.7 と怒られました。
指示通り、Python-2.7.18を入れてみることにします。

% pyenv install 2.7.18
...略...
Installed Python-2.7.18 to /Users/zzzmisa/.pyenv/versions/2.7.18

% pyenv global 2.7.18

% python -V
Python 2.7.18

3 回目の nodenv install

v2.7.18pythonコマンドが使えるようになったので、再度node-v10.14.2のインストールにチャレンジ。

% nodenv install 10.14.2
Downloading node-v10.14.2.tar.gz...
-> https://nodejs.org/dist/v10.14.2/node-v10.14.2.tar.gz

WARNING: node-v10.14.2 is in LTS Maintenance mode and nearing its end of life.
It only receives *critical* security updates, *critical* bug fixes and documentation updates.

Installing node-v10.14.2...

BUILD FAILED (OS X 12.3 using node-build 4.9.80)

Inspect or clean up the working tree at /var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518134746.84851.zp8Ae1
Results logged to /var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518134746.84851.log

Last 10 log lines:
       ^
../deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.s:1127:8: error: invalid alignment value
.align 32
       ^
../deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.s:1435:1: error: unknown directive
.size aesni_multi_cbc_decrypt_avx,.-aesni_multi_cbc_decrypt_avx
^
make[1]: *** [/private/var/folders/66/s2sps6qn70j3_1bdp2_j_smh0000gn/T/node-build.20220518134746.84851.zp8Ae1/node-v10.14.2/out/Release/obj.target/openssl/deps/openssl/config/archs/linux-x86_64/asm/crypto/aes/aesni-mb-x86_64.o] Error 1
rm cc071fe07fee42c66e13fc8f3811a1f969a3db93.intermediate
make: *** [node] Error 2

あ、これは M1 Mac じゃだめ系のエラーみたいです。 x86_64じゃないとコンパイルできなさそうな感じです。
現在のシステム情報を確認します。

% uname -mp
arm64 arm

arm64なので、x86_64に切り替えます。

% arch -x86_64 zsh
% uname -mp
x86_64 i386

4 回目の nodenv install

x86_64に切り替わったので、今度こそはとnode-v10.14.2のインストールコマンドを打ちます。

% nodenv install 10.14.2
Downloading node-v10.14.2-darwin-x64.tar.gz...
-> https://nodejs.org/dist/v10.14.2/node-v10.14.2-darwin-x64.tar.gz

WARNING: node-v10.14.2-darwin-x64 is in LTS Maintenance mode and nearing its end of life.
It only receives _critical_ security updates, _critical_ bug fixes and documentation updates.

Installing node-v10.14.2-darwin-x64...
Installed node-v10.14.2-darwin-x64 to /Users/zzzmisa/.nodenv/versions/10.14.2

入った!
あとはnodenvで使用するバージョンを設定するだけです。


% nodenv local 10.14.2
% node -v
v10.14.2

使えるようになりました!