[Ruby][rbenv] 特定のバージョンのアンインストールを禁止する
方法
rbenv hooks という機能を使う。
以下、rbenv は ~/.rbenv
にインストールしていることを想定する。
まず ~/.rbenv/rbenv.d
に uninstall
という名前のディレクトリを作る。そして、そのディレクトリに .bash
という拡張子で任意の名前のファイルを作成する。
$ mkdir ~/.rbenv/rbenv.d/uninstall
$ vim ~/.rbenv/rbenv.d/uninstall/prevent_uninstall.bash
作成した .bash
ファイルの内容は次の通り。
~/.rbenv/rbenv.d/uninstall/prevent_uninstall.bash
#!/usr/bin/env bash
VERSIONS=(2.5.5 2.6.3)
SCRIPT=$(cat <<EOS
if [[ " ${VERSIONS[*]} " == *" $@ "* ]]; then
echo "Ruby $@ はアンインストールできません。アンインストールしたい場合は $BASH_SOURCE を削除してください。"
exit 1
fi
EOS
)
before_uninstall "$SCRIPT"
この状態で Ruby 2.6.3 をアンインストールしようとしてもできない。
$ rbenv uninstall 2.6.3
rbenv: remove /Users/quanon/.rbenv/versions/2.6.3? [yN] y
Ruby 2.6.3 はアンインストールできません。アンインストールしたい場合は /Users/quanon/.rbenv/rbenv.d/uninstall/prevent_uninstall.bash を削除してください。
参考
Author And Source
この問題について([Ruby][rbenv] 特定のバージョンのアンインストールを禁止する), 我々は、より多くの情報をここで見つけました https://qiita.com/QUANON/items/96f607dff48dbe83374a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .