Techioz Blog

rbenv は、インストールされているバージョンがインストールされていないと言います

概要

rbenv install 3.0.4 を使用して Ruby 3.0.4 をインストールしたところ、うまくいきましたが、rbenv は依然として次のように表示します。

$ rbenv versions
rbenv: version `3.0' is not installed (set by /home/dombek/code/.ruby-version)
  system
  3.0.4

3.0 が要求された場合、3.0.4 が見つかるはずではありませんか?どうすればそれを修正できますか?

解決策

いいえ。これは予期された動作です。 rbenv は、.ruby-version ファイルで指定された正確なバージョンがインストールされ、使用できるように設定されることを期待します。

修正が何を意味するかによって異なります。ここでの明白な答えは、正しいバージョンを指定することです。

echo '3.0.4' > /home/dombek/code/.ruby-version

あるいは、rbenv を使用して 3.0.4 をグローバルまたはローカルに設定することもできます。

rbenv global 3.0.4
# or
rbenv local 3.0.4

バージョンを変更した後、rbenv を再ハッシュして変更を適用する必要があります。

rbenv rehash

最後に、これがどれほど実用的かはわかりませんが、理論的には、「3.0」などの Ruby バージョンを指定できる bash スクリプトを作成できます。何かのようなもの:

set_nearest_rbenv_version() {
  desired_version=$1.*
  nearest_version=$(rbenv versions --bare | grep -E "^$desired_version" | tail -1)
  if [ -n "$nearest_version" ]; then
    rbenv global $nearest_version
    echo "Set to nearest version: $nearest_version"
  else
    echo "No matching versions found."
  fi
}

set_nearest_rbenv_version 3.0

^ 未テスト。