Ruby
如何使用 rbenv 為 shell 腳本指定 ruby 版本?
我打算用 ruby 寫一些簡短的腳本。我想通過 shebang 或其他方式指定 ruby 版本。
我將在許多環境中使用該腳本。我在環境中使用 rbenv,但不確定安裝了哪個版本的 ruby。
如果未安裝指定版本的 ruby,則腳本必須失敗。
我該怎麼做?有沒有我應該遵循的好方法?
根據官方文件,聽起來您只需要像這樣為腳本添加前綴:
#!/usr/bin/env ruby
然後執行以下操作之一來確定
rbenv
要使用哪個版本的 Ruby:摘錄:https ://github.com/sstephenson/rbenv
選擇 Ruby 版本
當你執行一個 shim 時,
rbenv
通過從以下來源讀取它來確定使用哪個 Ruby 版本,順序如下:
- 環境變數(
RBENV_VERSION
如果指定)。您可以使用rbenv
shell 命令在目前 shell 會話中設置此環境變數。.ruby-version
通過搜尋您正在執行的腳本的目錄及其每個父目錄找到的第一個文件,直到到達文件系統的根目錄。.ruby-version
通過搜尋目前工作目錄及其每個父目錄找到的第一個文件,直到到達文件系統的根目錄。您可以使用local 命令修改.ruby-version
目前工作目錄中的文件。rbenv
- 全域
~/.rbenv/version
文件。rbenv
您可以使用全域命令修改此文件。如果全域版本文件不存在,則rbenv
假定您要使用“系統”Ruby——即,如果rbenv
不在您的路徑中,將執行任何版本。然後,您可以使用此命令
.ruby-version
在目錄中創建一個文件以及 Ruby 腳本。$ rbenv local 1.9.3-p327