##環境
mac
vscode
rbenv
##エラーの状況
vscodeのターミナルでrails new
したときのbundle install
でエラーが発生。エラーが表示されたターミナルを閉じたため正確なエラー全文は分からないが以下のようなエラー。
ArgumentError: user .rbenv doesn't exist
rakeがinstallできない
Gemfileにgem 〇〇がありませんよ
↑〇〇は、Gemfileのrails下にあるgemが表示された。
個別にそのgemをinstallしてbundle installし直すと、
その次にあるgemがないと表示されループに。
##原因
以下の写真のようにvscodeのチェックを外せば直った。
##経緯
rbenvの何かがおかしいのか?
→which ruby
やwhich bundle
で実行しているファイルを確認しても、rbenv内で実行しているのでおかしな点はない。
pathは?
→echo $PATH
で確認。pathもおかしなところはなさそう。
ググる。
→文字コードが原因の引数エラーはあっても、user .rbenv doesn't exist
という内容のエラーは見当たらない。公式見ても関係のある物は見当たらない。
bundleのエラー箇所のソースを確認
def which(executable)
if File.file?(executable) && File.executable?(executable)
executable
elsif paths = ENV["PATH"]
quote = '"'.freeze
paths.split(File::PATH_SEPARATOR).find do |path|
path = path[1..-2] if path.start_with?(quote) && path.end_with?(quote)
→ executable_path = File.expand_path(executable, path)
return executable_path if File.file?(executable_path) && File.executable?(executable_path)
end
end
expand_path(path, default_dir = '.') -> String[permalink][rdoc]
path を絶対パスに展開した文字列を返します。 path が相対パスであれば default_dir を基準にします。
先頭の ~ はホームディレクトリ(環境変数 HOME が使われます)に、 ~USER はそのユーザのホームディレクトリに展開されます。
ruby2.7.0リファレンスマニュアルより
やっぱりpathがおかしい?
もしかして.rbenvがユーザーだと思われているからおかしくなっている?
もう一度pathを確認
→よく見ると、同じpathが形を変えていくつもある(絶対pathだったり~で示していたり)。~.rbenv
と、~の後に/がついていないものがあったので、試しに付けてみる。~.zshrc
を修正し、source .zshrc
で読み込んでecho $PATH
で確認。同じpathがいくつか増えてる。なんで?試しに何もしないでもう一度source .zshrc
。また増えてる。するたびに増えるものなの?
何となくmacのターミナルを使用してpath確認
→重複を除いたpathだけが表示される。vscodeのターミナルと設定が環境が違う?試しにmacターミナルからrails new
。普通にできた。
vscodeでできないの?ググる
→https://yuki.world/vscode-terminal-python/
vscode設定いじればできそう。
できました。