Open2

rbenv install 中にPCの電源が落ちてインストール中のrubyがダウンロードできなくなった

oieioioieioi
$ rbenv install 3.4.1

で 3.4.1 をインストール中にPCの電池が切れてインストールが途中で落ちてしまった
もう一度同じコマンドでインストールしようとしたら以下のようなエラーが出る

$ rbenv install 3.4.1
/home/oieioi/.anyenv/envs/rbenv/bin/rbenv: 行 127: /home/oieioi/.anyenv/envs/rbenv/plugins/ruby-build/bin/rbenv-install: 成功です

uninstall も同じになる

$ rbenv uninstall 3.4.1
/home/oieioi/.anyenv/envs/rbenv/bin/rbenv: 行 127: /home/oieioi/.anyenv/envs/rbenv/plugins/ruby-build/bin/rbenv-uninstall: 成功です
oieioioieioi

「成功です」ってなに?ディレクトリ見てみるとgitリポジトリになっていて、大量にdiffがでていた

$ cd /home/oieioi/.anyenv/envs/rbenv/plugins/ruby-build/

# 空ファイル
$ cat /home/oieioi/.anyenv/envs/rbenv/plugins/ruby-build/bin/ruby-install

# 大量のdiff。ruby-install も元々はいろいろ書いてあるスクリプトなのに空になっていた
$ git diff

この作業をやる前に rbenv に ruby-build の更新を進められて実施していたことを思い出し、このgitリポジトリをrestoreしたら動いた

3.4.1 のインストール前にやったやつ

$ rbenv install 3.4.1
ruby-build: definition not found: 3.4.1

See all available versions with `rbenv install --list-all'.

If the version you need is missing, try upgrading ruby-build:

  git -C /home/oieioi/.anyenv/envs/rbenv/plugins/ruby-build pull

$ git -C /home/oieioi/.anyenv/envs/rbenv/plugins/ruby-build pull

ruby-build をresotyre

$ cd /home/oieioi/.anyenv/envs/rbenv/plugins/ruby-build
$ git restore .

OK!

$ rbenv install 3.4.1