rbenvを介してシェルスクリプトに特定のバージョンのRubyを使用する方法は?

rbenvを介してシェルスクリプトに特定のバージョンのRubyを使用する方法は?

私はRubyでいくつかの短いスクリプトを書くつもりです。 shebangや他の手段でRubyのバージョンを指定したいと思います。

私は多くの環境でこのスクリプトを使用します。私の環境ではrbenvを使用していますが、どのバージョンのRubyがインストールされているのかわかりません。

指定されたバージョンのRubyがインストールされていない場合、このスクリプトは間違いなく失敗します。

どうすればいいですか?私が従うべき良い方法はありますか?

答え1

~によると公式文書スクリプトに次の接頭辞を付ける必要があるようです。

#!/usr/bin/env ruby

次に、次のいずれかを実行して、rbenv使用するRubyのバージョンを決定します。

抜粋:https://github.com/sstephenson/rbenv

Rubyバージョンを選択

shimを実行するときは、rbenv次のソースを順番に読み、使用するRubyのバージョンを決定してください。

  1. 環境RBENV_VERSION変数(指定されている場合)rbenvシェルコマンドを使用して、現在のシェルセッションでこの環境変数を設定できます。

  2. .ruby-version見つかった最初のファイルは、ファイルシステムのルートに達するまで、実行中のスクリプトのディレクトリと各親ディレクトリを検索して検索します。

  3. .ruby-versionファイルシステムのルートに達するまで、現在の作業ディレクトリと各親ディレクトリを検索して見つけた最初のファイル。.ruby-versionローカルコマンドを使用して、現在の作業ディレクトリのファイルを変更できますrbenv

  4. グローバル~/.rbenv/versionファイル。グローバルコマンドを使用してこのファイルを変更できますrbenv。グローバルバージョンファイルが存在しない場合は、「システム」Rubyを使用したいと見なされます。つまり、そのバージョンがパスにない場合は、rbenvすべてのバージョンを実行します。rbenv

.ruby-versionその後、このコマンドを使用してディレクトリにファイルとRubyスクリプトを作成できます。

$ rbenv local 1.9.3-p327

関連情報