概要
バージョン管理ツールにasdfを導入してみました。
代わりに rbenv, nvm を消しました。
どんな感じで導入したかのメモです。
2024/12/15追記:
パフォーマンス・セキュリティーの観点から、
バージョン管理ツール asdf → mise に移行する記事を作成しました。
環境
- Mac M1
- MacOS: 13.0
- シェルはzshを利用
本題
では、 rbenv, nvm を消して asdf を入れていきます。
rbenv の削除
今までありがとう rbenv
- uninstall の方法は公式より
やったこと
-
~/.zshrc
から下記の行を削除~/.zshrc- eval "$(rbenv init -)"
- 下記を実行
rm -rf "$(rbenv root)"
- homebrew 経由で入れていたので下記を実行
brew uninstall rbenv
nvm の削除
今までありがとう nvm
- uninstall の方法は公式より
やったこと
- 下記を実行
rm -rf "$NVM_DIR"
-
~/.zshrc
から下記の行を削除~/.zshrc- export NVM_DIR="$HOME/.nvm" - [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm - [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
asdf を導入
消したからには入れないといけない
- インストール方法は公式より
やったこと
- 依存関係をインストール
brew install coreutils curl git
- asdfをインストール
brew install asdf
- 下記を実行(zsh と homebrew 利用)
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
asdf で ruby のバージョン管理
必要なバージョンのrubyをインストールしてみる
- コマンドは公式より
やったこと
- 下記を実行
asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git
- ruby 最新安定バージョンの確認
asdf latest ruby
- 必要なバージョンをインストール(もうすぐEOFだけど、この時は2.7.5が必要だった)
asdf install ruby 2.7.5
- 開発中のプロジェクトのディレクトリに移動して下記を実行
asdf local ruby 2.7.5
- ↑を実行すると、
.tool-versions
というファイルが作成される- 多分これをコミットする必要があるので、複数名で開発しているプロジェクトであれば、 asdf の導入自体を相談する必要がありそう
.tool-versionsruby 2.7.5
- つまり、
.ruby-version
はもういらないので消す
asdf で Node.js のバージョン管理
必要なバージョンのNode.jsをインストールしてみる
- 公式のプラグインインストールの例がちょうどNode.jsだった
やったこと
- 依存関係のインストール
brew install gpg gawk
- 下記を実行
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
- 必要なバージョンをインストール(この時は14.17.3が必要だった)
asdf install nodejs 14.17.3
- 開発中のプロジェクトのリポジトリ内で下記を実行
asdf local nodejs 14.17.3
- ↑を実行すると、
.tool-versions
というファイルが作成される.tool-versionsnodejs 14.7.3
- 開発中のプロジェクトのリポジトリ内で下記を実行
npm install
おわりに
いろんな言語のいろんなバージョン管理ツールを入れなくてよくなったので、
「このPCはrubyのバージョン管理ツールって何使ってたっけ・・・」みたいな悩みとおさらばできそうでよいと思いました
.tool-versions
というファイルをコミットする必要が出てくるので、
複数名で開発している場合は、まずプロジェクトのメンバーにasdf導入の相談が必要ですね。
そんなに色々バージョン管理する必要がないのであれば、わざわざ乗り換えなくてもいいような気もします。