Ruby

如何使用 rbenv 為 shell 腳本指定 ruby 版本?

  • October 8, 2013

我打算用 ruby​​ 寫一些簡短的腳本。我想通過 shebang 或其他方式指定 ruby​​ 版本。

我將在許多環境中使用該腳本。我在環境中使用 rbenv,但不確定安裝了哪個版本的 ruby​​。

如果未安裝指定版本的 ruby​​,則腳本必須失敗。

我該怎麼做?有沒有我應該遵循的好方法?

根據官方文件,聽起來您只需要像這樣為腳本添加前綴:

#!/usr/bin/env ruby

然後執行以下操作之一來確定rbenv要使用哪個版本的 Ruby:

摘錄:https ://github.com/sstephenson/rbenv

選擇 Ruby 版本

當你執行一個 shim 時,rbenv通過從以下來源讀取它來確定使用哪個 Ruby 版本,順序如下:

  1. 環境變數(RBENV_VERSION如果指定)。您可以使用rbenvshell 命令在目前 shell 會話中設置此環境變數。
  2. .ruby-version通過搜尋您正在執行的腳本的目錄及其每個父目錄找到的第一個文件,直到到達文件系統的根目錄。
  3. .ruby-version通過搜尋目前工作目錄及其每個父目錄找到的第一個文件,直到到達文件系統的根目錄。您可以使用local 命令修改.ruby-version目前工作目錄中的文件。rbenv
  4. 全域~/.rbenv/version文件。rbenv您可以使用全域命令修改此文件。如果全域版本文件不存在,則rbenv假定您要使用“系統”Ruby——即,如果rbenv不在您的路徑中,將執行任何版本。

然後,您可以使用此命令.ruby-version在目錄中創建一個文件以及 Ruby 腳本。

$ rbenv local 1.9.3-p327

引用自:https://unix.stackexchange.com/questions/94083