pyenv updateしたら/usr/bin/env: ‘bash\r’: No such file or directoryになる
環境情報
WSL2 Ubuntu 20.04
何が起こった?
pyenvのアップデートをしたくなった。コマンド一発でアップデートが出来るというpyenv-updateは導入していたので
1pyenv update
を実行したところ、/usr/bin/env: ‘bash\r’: No such file or directoryというエラーが出てしまった。
pyenvを実行したところ同様のエラーが出てしまい、pyenv関連は完全に壊れてしまった。
引っ掛かりポイントとしては/usr/bin/envが表示されるのでこのファイルが壊れてしまったと勘違いしやすいが、壊れたファイルはpyenvのフォルダだった。
解決方法
まずpyenvが壊れてしまった原因だが、どうやらpyenv-updateでgit cloneした際にエラー表示に出ているように改行コードがCRLFになってしまったみたい。
これはgitの設定で改行コードが自動的に変換される設定が悪さをしていたみたいだったので、以下のコマンドでその設定をoffにする。
1git config --global core.autocrlf false
次にpyenvをクリーンインストールする。pyenvフォルダを削除した後、git cloneする
1rm -rf ~/.pyenv 2git clone https://github.com/pyenv/pyenv.git ~/.pyenv
これでクリーンインストール完了。pyenvコマンドも通常通り動作した。