前回 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
を使うので ~/.zshrc
にeval "$(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