2024-06-01

asdf

tl;dr

基本的には公式や他の記事を参考にすると良い 注意点

  • PATH を通す
  • 現在使っているシェルをちゃんと確認する

install

https://qiita.com/ucan-lab/items/0b854cfaa9d7c8ede106

 ❯ brew install asdf
 ❯ asdf --version
v0.14.0
 ❯ echo $SHELL
/bin/bash

# https://asdf-vm.com/guide/getting-started.html#_3-install-asdf
# add path to ~/.bash_profile
 ❯ asdf install
 ❯ asdf plugin list all | grep nodejs
 nodejs                        https://github.com/asdf-vm/asdf-nodejs.git
 ❯ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

 ❯ asdf list
nodejs
  No versions installed

 ❯ asdf install nodejs latest
Trying to update node-build... ok
Downloading node-v22.2.0-darwin-x64.tar.gz...
-> https://nodejs.org/dist/v22.2.0/node-v22.2.0-darwin-x64.tar.gz
Installing node-v22.2.0-darwin-x64...
Installed node-v22.2.0-darwin-x64 to /Users/noriyo_tcp/.asdf/installs/nodejs/22.2.0

asdf: Warn: You have configured asdf to preserve downloaded files (with always_keep_download=yes or --keep-download). But
asdf: Warn: the current plugin (nodejs) does not support that. Downloaded files will not be preserved.

 ❯ asdf list
nodejs
  22.2.0
 ❯ asdf local nodejs latest
 ❯ cat .tool-versions
nodejs 22.2.0

proto を使っていたのでそちらを消す

# proto で管理されている
 ❯ node -v
v20.10.0

 ❯ which node
/Users/noriyo_tcp/.proto/bin/node

# reshim してもダメ
 ❯ asdf reshim nodejs
 ❯ node -v
v20.10.0

# .bashrc からも proto への参照を消す
# https://moonrepo.dev/docs/proto/install#uninstallingrm -rf ~/.proto

node が見つからない

 ❯ node -v
zsh: command not found: node

 ✘ noriyo_tcp@MacBook-Air  ~/M/til   main ⁝ ✱ ? 
 ❯ asdf reshim nodejs

 noriyo_tcp@MacBook-Air  ~/M/til   main ⁝ ✱ ? 
 ❯ node -v
zsh: command not found: node

 ✘ noriyo_tcp@MacBook-Air  ~/M/til   main ⁝ ✱ ? 
 ❯ which node
node not found

一旦アンインストールしてみる

# 怒られた
 ❯ asdf uninstall nodejs latest
No such version

 ❯ asdf list
nodejs
 *22.2.0

# version 指定する
 ❯ asdf uninstall nodejs 22.2.0

 ❯ asdf list
nodejs
  No versions installed

もう1回入れる

 ❯ asdf install nodejs latest
Trying to update node-build... ok
Downloading node-v22.2.0-darwin-x64.tar.gz...
-> https://nodejs.org/dist/v22.2.0/node-v22.2.0-darwin-x64.tar.gz
Installing node-v22.2.0-darwin-x64...
Installed node-v22.2.0-darwin-x64 to /Users/noriyo_tcp/.asdf/installs/nodejs/22.2.0

asdf: Warn: You have configured asdf to preserve downloaded files (with always_keep_download=yes or --keep-download). But
asdf: Warn: the current plugin (nodejs) does not support that. Downloaded files will not be preserved.
>>> elapsed time 13s

# .tool-version はもうあるので良いっぽい
 ❯ asdf list
nodejs
 *22.2.0

# ダメだなあ

plugin, nodejs を入れ直す

 ❯ asdf plugin remove nodejs

 ❯ asdf plugin list
*

 ❯ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

 ❯ asdf list
nodejs
  No versions installed

# nodejs 入れ直し
asdf install nodejs latest

rm .tool-versions
 ❯ asdf list
nodejs
  22.2.0

PATH を通す

https://asdf-vm.com/guide/getting-started.html#_3-install-asdf

asdf scripts need to be sourced after you have set your $PATH and after you have sourced your framework (oh-my-zsh etc).

$PATH を通さないといけない asdf使ってみた #Node.js - Qiita

# ずっと bash を使っているもんだと思っていたが違うようだぞ?echo $0
/usr/local/bin/zsh

# これを実行
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc

# PATH を通す
# at the top of .zshrc
# macOS だと unset だとデフォルトで yes らしいのでコメントアウト
# https://asdf-vm.com/manage/configuration.html#asdf-force-prepend

# export ASDF_FORCE_PREPEND=yes
export PATH=$PATH/.asdf/shims/

 ❯ echo $PATH
/Users/noriyo_tcp/.asdf/shims:/usr/local/opt/asdf/libexec/bin:/Users/noriyo_tcp/.rbenv/shims:/Users/noriyo_tcp/.rbenv/shims:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/iTerm.app/Contents/Resources/utilities:/Users/noriyo_tcp/.docker/bin:/Users/noriyo_tcp/bin:/bin/.asdf/shims/:/Users/noriyo_tcp/.docker/bin:/Users/noriyo_tcp/bin:/bin

 ❯ node -v
v22.2.0

Bash & Homebrew (macOS)

https://asdf-vm.com/guide/getting-started.html#_3-install-asdf

# ~/.bash_profile
echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.sh\"" >> ~/.bash_profile
echo -e "\n. \"$(brew --prefix asdf)/etc/bash_completion.d/asdf.bash\"" >> ~/.bash_profile

# at the top of ~/.bashrc
export PATH=$PATH/.asdf/shims/

Tags:

Updated: