Closed5
Homebrewメンテ、そしてnodenv
なにする
- 業務用マシン(macOS)が3台ある
-
nodenv
だったりndenvだったりnodebrewだったり公式インストーラーからのバイナリだったりでマシンごとにnode環境の管理がひどい- 年輪を感じる
-
- すべてのマシンのnode環境をnodenvに統一する
- この際、anyenv経由nodenvにする
Homebrewのメンテ
-
brew update
してbrew doctor
しておけばまぁOK- ここで色々言ってくるのでそのとおりに修復
- そもそもBig Sur環境で初めて
brew update
した気がする- ぶっ壊れてたので
brew update-reset
で修復- https://qiita.com/kennyD/items/edf59088464765851ec2 この人と同じことが起こってた
- ぶっ壊れてたので
根本的に死んでるやつおる
- 最古マシンだけそもそもcask側でinvalidを出していてRubyがクラッシュしていた
-
definition is invalid
が出てる - https://qiita.com/ucan-lab/items/db28218f50f1e6a5479f これに近そうだけど詳細が微妙に異なる
- そもそもクソ古いCaskなので除去でよいが定義がどこから参照されているのか不明
-
brew doctor -vd
でログを出す(--verbose --debug
のshorthand)-
.rb
ファイルのトレースが出てくるからそれ開いてp
でログダンプさせて読む- Ruby書けなくても、他の言語がそれなりに書けるなら気合で読める
- ファイルローダーの実装から定義パスを特定できたのでそいつを
rm
-
-
brew cleanup
しておしまい
-
インストーラー由来のNodeを除去
-
nodenv
使ってると気にならないけど、地味に/usr/local/bin/node
にもいる-
nodenv
やndenv
などのnode環境を全除去すると姿を表す -
which node
でパスを特定してrm
-
-
~/.npm
がいるのでそれもrm -rf
- もっと詳しい人いた
ndenvからnodenvへの乗り換え
- やろうとしてる人はちらほらいる
Why anyenv
-
https://github.com/anyenv/anyenv
- 基本的にnodeしか書かないけど、たまーに他の言語を触るときの処理系管理が面倒だったりする
- brew, nodenv, npmに慣れているとそういうのがどの言語にもほしくなる
- そういうことがあらゆる言語でできるならええやん?というモチベーション
- 基本的にnodeしか書かないけど、たまーに他の言語を触るときの処理系管理が面倒だったりする
- https://qiita.com/zaburo/items/8ac16133c3823c6e6ad6
install
brew install anyenv
anyenv -v
anyenv install --init
anyenv init
これでshellごとのパスの通し方がでてくるのでそれを真似する。
anyenv install nodenv
nodenv install x.y.z
あとはnodenv
の使い方に従ってNode.jsを入れればよい。
このスクラップは2021/07/11にクローズされました