如何通过 rbenv 对 shell 脚本使用指定版本的 ruby​​?

如何通过 rbenv 对 shell 脚本使用指定版本的 ruby​​?

我将用 ruby​​ 编写一些简短的脚本。我想通过 shebang 或其他方式指定 ruby​​ 版本。

我将在许多环境中使用该脚本。我在环境中使用 rbenv,但不确定安装了哪个版本的 ruby​​。

如果未安装指定版本的 ruby​​,该脚本必定会失败。

我该怎么做?我应该遵循什么好方法吗?

答案1

根据官方文档听起来你只需要在脚本前面加上这样的前缀:

#!/usr/bin/env ruby

然后执行以下操作之一来确定rbenv要使用哪个版本的 Ruby:

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

选择 Ruby 版本

当您执行填充程序时,rbenv通过按以下顺序从以下源读取来确定要使用的 Ruby 版本:

  1. 环境RBENV_VERSION变量(如果指定)。您可以使用rbenvshell 命令在当前 shell 会话中设置此环境变量。

  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

相关内容