手元の全 Ruby バージョンから特定の gem を一掃する

Posted on
qiita Ruby rbenv

この記事はQiitaの記事をエクスポートしたものです。内容が古くなっている可能性があります。

(2017/03/29 10:50 追記)

rbenv でインストールしたバージョン全てに対してコマンドを実行する rbenv-each というプラグインがあったので、以下のコマンドでやりたいことが実現できました。

$ rbenv each gem uninstall -x gemname

rbenv-each は @sakuro さんにコメントでご教示いただきました。ありがとうございました。


$ export GEM_NAME=gemname
$ for v in `rbenv whence $GEM_NAME`; do rbenv shell $v; gem uninstall -x $GEM_NAME; rbenv shell --unset; done

昔 Ruby で作ったコマンドラインツールを Go で書き換えた、けど rbenv のパスが PATH の先頭寄りに書かれていて優先されてしまう(下の例)…というときに便利です。nodenv や plenv でも、適切なコマンドに入れ替えれば応用できそう。

$ gemname
rbenv: gemname: command not found

The `gemname' command exists in these Ruby versions:
  2.3.0
  2.3.1
  2.3.2
  2.3.3

他との兼ね合いで PATH いじりたくないこともあるので…