rbenvのあまり使わないコマンドまとめ

スポンサーリンク

前回  rbenvのよく使うコマンドまとめ を書きましたがその続きです。rbenv commandsで表示される一覧にあるコマンドで、前回出なかったものになります。 内部で使われてたりするもので、実際はあまり使わないんですけど、たまにあれなんだっけと調べることもあるのでまとめました。

rbenv whence <command>

対象のコマンドがどのバージョンにインストールされてるか確認。

$ rbenv whence gem
2.0.0-p598
2.1.5

rbenv which <command>

普通にwhichコマンドを実行すると~/.rbenv/shims/ディレクトリ内を指しますが、これはどのバージョンの時でも同じです。そのため実際に参照しているコマンドのフルパスを知りたい場合はrbenv whichを使います。

$ which ruby   # shimsディレクトリを参照
/Users/xxxxxx/.rbenv/shims/ruby

$ rbenv which ruby
/Users/xxxxxx/.rbenv/versions/2.0.0-p598/bin/ruby
$ rbenv which irb
/Users/xxxxxx/.rbenv/versions/2.0.0-p598/bin/irb

rbenv prefix <version>

指定したバージョンのインストール先ディレクトリのフルパスを取得します。バージョンを省略した場合は現在のアクティブなバージョンです。

$ rbenv prefix
/Users/xxxxx/.rbenv/versions/2.0.0-p598
$ rbenv prefix 2.1.5
/Users/xxxxx/.rbenv/versions/2.1.5

$ cd `rbenv prefix`

rbenv root

rbenvのデフォルトルートディレクトリのフルパスを取得します。環境変数$RBENV_ROOTがセットされていたらそちらが表示されます。

$ rbenv root
/Users/xxxxxx/.rbenv
$ export RBENV_ROOT=/Users/xxxxxx/dev
$ rbenv root
/Users/xxxxxx/dev

rbenv shims [--short]

shimsディレクトリ内の一覧を表示。--shortオプションを付けるとファイル名だけ。

$ rbenv shims --short
erb
gem
irb
rake
rdoc
ri
ruby
testrb

init

初期化処理で~/.bash_profileに保存したeval "$(rbenv init -)"のことです。環境変数セットしたりcompletionsとかrehashを実行します。

completions

補完機能ですrbenv initで実行されます。tab を押すと補完してくれます。複数候補がある場合は tab キーを2回押すと候補が表示されます。

zsh の人は/usr/local/Cellar/rbenv/0.4.0/completions/rbenv.zshを使うので ~/.zshrceval "$(rbenv init - zsh)”を追加してください。

exec

本来はrbenv exec gem install ~のように使いますが、~/.rbenv/shimsにあるファイルを見ると rbenv exec を指定なくても自動で追加されていますので記述不要です。gem install ~とすれば、現在のバージョンに合わせたディレクトリにインストール先が指定されるようになっています。

hooks <command>

以下のいずれかのディレクトリ(無ければこれも作成)の中に、 install や rehash というコマンドと同名のディレクトリを作成し、そこに*.bashのスクリプトファイルを作成すると、コマンド実行時などに一緒にスクリプトを実行してくれます。pluginなどを作りたい時はこの仕組が使えます。

~/.rbenv/rbenv.d
/usr/local/etc/rbenv.d
/etc/rbenv.d
/usr/lib/rbenv/hooks

コマンドに対応しているスクリプトを確認したい時はrbenv hooks <command>を使います。また、全てのコマンドで hooks ができる訳ではないです。

version-file

version ファイルのフルパスを表示します。

$ rbenv version-file
/Users/xxxxxx/.rbenv/version

version-file-read

version ファイルの中身を表示します。

$ rbenv version-file-read
2.0.0-p598

version-file-write

version ファイルを更新します。rbenv globalの内部で使われています。

$ cat ~/.rbenv/version
2.0.0-p598
$ rbenv version-file-write ~/.rbenv/version 2.1.5
$ cat ~/.rbenv/version
2.1.5
$ ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]

version-name

環境変数RBENV_VERSIONがセットされていなかったらrbenv version-file-readを実行。rbenv versionの内部で使われています。

$ rbenv version-name
2.0.0-p598

version-origin

環境変数がセットされていなかったらrbenv version-fileを実行。セットされていたらメッセージ。

$ rbenv version-origin
/Users/xxxxxx/.rbenv/version

$ export RBENV_VERSION=2.1.5
$ rbenv version-origin
RBENV_VERSION environment variable