rbenvでシェルスクリプトにルビのバージョンを指定する方法


8

Rubyで短いスクリプトを作成します。また、ルビーのバージョンをシバンなどで指定したい。

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

指定バージョンのrubyがインストールされていない場合、スクリプトは失敗するはずです。

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

回答:


7

公式ドキュメントによると、次のようにスクリプトの前に付ける必要があるようです:

#!/usr/bin/env ruby

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

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

Rubyバージョンの選択

シムを実行するときにrbenv、次のソースからこの順序で読み取ることにより、使用するRubyバージョンを決定します。

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

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

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

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

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

$ rbenv local 1.9.3-p327

現在非推奨です。ドキュメントごとに指定。これで、.ruby-versionファイルを使用してアプリケーションでスクリプトまたはビンスタブを実行すると、rbenvは、実行元のディレクトリに関係なく、アプリケーションで指定されたRubyバージョンを自動的に使用します。
AnneTheAgile
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.