Claude Codeをwslで使おうと思ったため、Fish Shell上でnvmをインストールしようとしたら詰まったので備忘録を残す。
インストールできない
通常bashの場合
通常のbashでnvmをインストールするコマンドは次のとおりである。
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
このコマンドでは、nvmのインストールコマンドをダウンロードして実行している。
そして、install.sh
では、~/.profile
に次の環境変数を書き込んでいる。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
内容としては、nvmのインストールしている場所をNVM_DIR
という変数に置き、その後$NVM_DIR/nvm.sh
を実行することで、wsl起動時にnvmを読み込んでいる。
しかしfish shellでは...
シェルをbash
からfish
に変更すると、wsl起動時に.profile
が読み込まれなくなる(代わりに.config/fish/config.fish
が使用される)ので、起動時にnvm.sh
を実行できなくなってしまう。
解決
有志がfish-nvm
というパッケージを公開してくれているのでそれを使用する。
(.config/fish/config.fish
にnvm.sh
を読み込む設定を書き込んでもいけるかも?未検証)
fish-nvm
インストール
fisher
$ fisher install FabioAntunes/fish-nvm edc/bass
oh-my-fish
$ omf install https://github.com/fabioantunes/fish-nvm
$ omf install https://github.com/edc/bass
これでnvmコマンドがfish shellでも実行できるようになる。
参考