如何在一个简单的非 Rails 项目中使用特定的 Ruby 版本

Posted

技术标签:

【中文标题】如何在一个简单的非 Rails 项目中使用特定的 Ruby 版本【英文标题】:How to use a specific Ruby version in a simple non-Rails project 【发布时间】:2020-09-04 20:55:38 【问题描述】:

我想在我的简单非 Rails 项目中使用 Ruby 2.7.1。我以评论开始我的主文件:

#!/usr/bin/ruby

我通过 RVM 安装了 Ruby 2.7.1,并且设置正确:

$ rvm list
   ruby-2.6.1 [ x86_64 ]
=* ruby-2.7.1 [ x86_64 ]

当我运行我的程序时,它使用 Ruby 2.6.1。

/usr/bin/ 我只有rubyruby2.5 文件。

如何强制我的程序使用 Ruby 2.7.1 或仅使用 RVM 当前调用的版本及其默认值?

我使用的是 Ubuntu 18.04。

【问题讨论】:

在您的文件夹中搜索所有/CTRL/CMD+ SHIFT + F 并查找2.6.1。它可能是在某个时候创建​​的,并且默认使用其中的内容。 试试#!/usr/bin/env ruby @anothermh - 谢谢,它有效! :) 【参考方案1】:

在脚本顶部使用它:

#!/usr/bin/env ruby

这将导致脚本检查运行该实用程序的用户的环境以找到合适的 Ruby 解释器。来自env 上的***页面:

env 是一个用于 Unix 和类 Unix 操作系统的 shell 命令。它用于打印环境变量列表或在更改的环境中运行另一个实用程序,而无需修改当前存在的环境。使用 env,可以添加或删除变量,并且可以通过为它们分配新值来更改现有变量。

在实践中,env 还有另一个常见用途。 shell 脚本经常使用它来启动正确的解释器。在这种用法中,环境通常不会改变。

这意味着您可以将它用于任何类型的解释器,例如 perl、python、sh 等。

【讨论】:

以上是关于如何在一个简单的非 Rails 项目中使用特定的 Ruby 版本的主要内容,如果未能解决你的问题,请参考以下文章

对于 Rails 的非经常性计费,您会使用啥?

从多个项目#的非静态列表中返回特定项目#的运行总计

在 Rails 4.1 中将页面特定的 jQuery 代码放在哪里?

如何检查特定属性是不是是有效的 ruby​​ on rails

如何将.htm重定向到特定域的非.htm?

如何在 Rails 中使用延迟作业取消预定作业?