0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Macでnode 14.18.1でビルドしたい【2025年版】

Posted at

ひとりごとの作業記録です。

0.ゴール

Macで「node 14.18.1」でビルドしたい。
ただし、特定プロジェクトでのみ「node 14.18.1 」を使いたい。
開発環境は「MacOS Sequoia 15.2」
Macはアップルシリコン

1.状況確認

node -v
v22.13.1

現在、「v22.13.1」を使ってる。ダメだダメだダメだ!新しすぎる。
もっと、古くてオールドで、時代を超えたダサさをまとったものがいい。

nvmを使って複数バージョン入れるのが得策だろう。

2.nvmを使って特定nodeをインストール

2-1.nvmの状態確認

まずは現状確認。

nvm --version
0.40.1

まぁまぁ、これはこれで、このバージョンがいいだろう。
nvm と node_modules は、新しければ新しいほどいいのだ。

ところで、今回使いたい「14.18.1」は、nvmで管理されているのだろうか?

nvm list

       v22.13.0
->     v22.13.1
         system
default -> lts (-> N/A)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v22.13.1) (default)
stable -> 22.13 (-> v22.13.1) (default)
lts/* -> lts/jod (-> v22.13.1)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.6 (-> N/A)
lts/iron -> v20.18.2 (-> N/A)
lts/jod -> v22.13.1

目的のバージョンが入っていない。
まぁそうだろう。
骨董品でレガシーなバージョンだからこそ入れるのだ。

よし、いれるぜ。

2-2.nvmで目的のバージョンインストール

「えい!」

と、勢いのまま叩く。

nvm install 14.18.1

Downloading and installing node v14.18.1...
Downloading https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-arm64.tar.xz...
curl: (56) The requested URL returned error: 404

download from https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-arm64.tar.xz failed
grep: /Users/mac-user/.nvm/.cache/bin/node-v14.18.1-darwin-arm64/node-v14.18.1-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!
Local cache found: ${NVM_DIR}/.cache/src/node-v14.18.1/node-v14.18.1.tar.xz
Checksums match! Using existing downloaded archive ${NVM_DIR}/.cache/src/node-v14.18.1/node-v14.18.1.tar.xz
$>./configure --prefix=/Users/mac-user/.nvm/versions/node/v14.18.1 <
Node.js configure: Found Python 3.11.11...
Please use python3.9 or python3.8 or python3.7 or python3.6 or python3.5 or python2.7.
nvm: install v14.18.1 failed!

おっと。

python 3.11.xではダメらしい。
python3.9を入れなければならない。

失われたイニシエの技術を使うために、過去に戻るのだ。

でも当然・・・

2-3.Pythonのバージョンをプロジェクトごとに切り替えたい

ので、

手っ取り早く、pyenvを使うのがいいよね。

pyenvで現在のバージョンを調べる。

pyenv versions
  system
  3.11.4
* 3.11.11 (set by /Users/mac-user/.pyenv/version)

当たり前だけと、3.11.11になってる。
3.9系を入れるよ。

「えい!」

pyenv install 3.9.21

pyenv versions
  system
  3.9.21
  3.11.4
* 3.11.11 (set by /Users/mac-user/.pyenv/version)

よし。

次に特定ディレクトリだけ「3.9.21」を使うようにするため仮想環境作る。

cd /path/to/project
pyenv local 3.9.21

python --version
Python 3.9.21

よし!OKだ!

2-4.改めてnvmで目的のバージョンインストール

では、気を取り直して「14.18.1」をインストールしよう。

nvm install 14.18.1

nvm install 14.18.1
Downloading and installing node v14.18.1...
Downloading https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-arm64.tar.xz...
curl: (56) The requested URL returned error: 404

download from https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-arm64.tar.xz failed
grep: /Users/mac-user/.nvm/.cache/bin/node-v14.18.1-darwin-arm64/node-v14.18.1-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Detected that you have 10 CPU core(s)
Running with 9 threads to speed up the build
Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!
Local cache found: ${NVM_DIR}/.cache/src/node-v14.18.1/node-v14.18.1.tar.xz
Checksums match! Using existing downloaded archive ${NVM_DIR}/.cache/src/node-v14.18.1/node-v14.18.1.tar.xz
$>./configure --prefix=/Users/mac-user/.nvm/versions/node/v14.18.1 <
pyenv: python3.9: command not found

The `python3.9' command exists in these Python versions:
  3.9.21

Note: See 'pyenv help global' for tips on allowing both
      python2 and python3 to be found.
nvm: install v14.18.1 failed!

「だめじゃん!」

まじで大声で叫んでしまった。

「なんだよ、これ、いったいどういうことだよ。
 わっけわかんねーよ!」

遥か太古大昔の失われたバージョンだからといって
ちょっとハードル高すぎない?

2-5.わっけわからないので、頭の中を整理する

特定プロジェクトでのみnode 14.18.1 を使いたいので下記の通り処理を行った
エラーが出てわけわからんからChatGPTちゃん助けてちょーーー
以下情報だよ

pyenv install 3.9.21

cd /path/to/project
pyenv local 3.9.21

nvm install 14.18.1

Downloading and installing node v14.18.1...
Downloading https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-arm64.tar.xz...
curl: (56) The requested URL returned error: 404

download from https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-arm64.tar.xz failed
grep: /Users/mac-user/.nvm/.cache/bin/node-v14.18.1-darwin-arm64/node-v14.18.1-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Detected that you have 10 CPU core(s)
Running with 9 threads to speed up the build
Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!
Local cache found: ${NVM_DIR}/.cache/src/node-v14.18.1/node-v14.18.1.tar.xz
Checksums match! Using existing downloaded archive ${NVM_DIR}/.cache/src/node-v14.18.1/node-v14.18.1.tar.xz
$>./configure --prefix=/Users/mac-user/.nvm/versions/node/v14.18.1 <
pyenv: python3.9: command not found

The `python3.9' command exists in these Python versions:
  3.9.21

Note: See 'pyenv help global' for tips on allowing both
      python2 and python3 to be found.
nvm: install v14.18.1 failed!

このエラーは 「nvm が Apple Silicon (Arm64) 向けの Node v14.18.1 のバイナリを取得できず、ソースコードからビルドしようとしたところ、ビルドに必要な Python(python3.9)コマンドが見つからない」 ために発生しています。

エラーメッセージに pyenv: python3.9: command not found とあるように、pyenv で 3.9.21 をインストールしても、実際に python3.9 が呼び出せていない状態です。

Rosetta2 (x86_64) シェルnvm install 14.18.1 し、x86_64 バイナリをインストールするのが一番確実です。


まじか。

2-6.言われるがままにロゼッタ入れるぜ

もう為す術もなく、言われるがままに・・・。

softwareupdate --install-rosetta
I have read and agree to the terms of the software license agreement. A list of Apple SLAs may be found here: https://www.apple.com/legal/sla/
Type A and press return to agree: A
2025-01-23 19:47:52.978 softwareupdate[19627:1962387] Package Authoring Error: 072-44352: Package reference com.apple.pkg.RosettaUpdateAuto is missing installKBytes attribute
Install of Rosetta 2 finished successfully

入った。

2-7.三度目の正直!nvmで目的のバージョンインストール

もう、どうとでもなれ。

arch -x86_64 zsh
nvm install 14.18.1

Downloading and installing node v14.18.1...
Downloading https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-x64.tar.xz...
##################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v14.18.1 (npm v6.14.15)

入った!

3.特定バージョンでビルド!

3-1.目的のバージョンが入ってるか再度確認

一応、再度確認だ。

nvm current
v14.18.1

nvm list
->     v14.18.1
       v22.13.0
       v22.13.1
         system
default -> lts (-> N/A)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v22.13.1) (default)
stable -> 22.13 (-> v22.13.1) (default)
lts/* -> lts/jod (-> v22.13.1)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.6 (-> N/A)
lts/iron -> v20.18.2 (-> N/A)
lts/jod -> v22.13.1

よし!

当たり前だがv14.18.1になっている。

でも、あくまで標準は22.13.1にしたい。

なのでこれは叩いとく。

nvm alias default 22.13.1

3-2.目的バージョンでビルド

nvm use 14.18.1
npm i
npm run build

できた!!!

長い道のりだった。

(fin)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?