为啥我无法确定我的 ruby 安装版本?
Posted
技术标签:
【中文标题】为啥我无法确定我的 ruby 安装版本?【英文标题】:Why can I not determine my ruby installation's version?为什么我无法确定我的 ruby 安装版本? 【发布时间】:2013-08-11 20:17:10 【问题描述】:当我运行 ruby -version
时,我得到:
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]
-e:1: undefined local variable or method `rsion' for main:Object (NameError)
可能出了什么问题?
【问题讨论】:
很奇怪,ruby --version
没有返回错误。
您安装的主要问题是 ruby 1.8.7 已经结束生命周期并且现在不受支持。除此之外,@R_G 已经说明你的ruby -version
等同于ruby -v -e 'rsion'
。
【参考方案1】:
使用 ruby -v 或 ruby --version。它正在将 -version 解析为 rsion。
这两个工作中的任何一个。计算破折号的数量:
ruby -v
ruby --version
当您提供带有“版本”的单个破折号时,Ruby 会看到:
ruby -v -e rsion
【讨论】:
【参考方案2】:有 -v 选项和 --version 选项,但没有 -version 选项。 (数破折号。)看undefined local variable or method 'rsion' for main:Object。
从这个thread,实际原因很清楚了:
如果你运行
ruby -version
,因为你只使用一个破折号,这个词 'version' 不被视为单个标志,而是作为标志列表。在 在这种情况下,它会选择 -v 标志,打印版本信息。 然后它尝试处理 e 标志,它基本上说“剩下的 line 是一个要执行的 ruby 脚本。”所以 ruby 忠实地尝试解析 “rsion”,这是你得到 NameError 的地方。要获取版本信息,您可以使用
ruby -v
或ruby --version
。
【讨论】:
啊哈,这太神奇了,你的回答确实让我明白了确切的错误,即使该链接遗憾地不再起作用(选项 v 和选项 e 存在并且选项 e 正在尝试启动一个命令, 而rsion
不是有效命令(ruby -v
+ ruby -e
带有参数 'risen' = ruby -version
)
@b.enoit.be 很高兴打破零件。【参考方案3】:
这就是解释器的方式,但您也可以在 Ruby 中定义常量。
试试
$> ruby -e " p RUBY_VERSION"
你可以在 Module.constants 下找到 then
这里
>> Module.constants.sort.each do |constant|
?> puts constant
>> end
【讨论】:
以上是关于为啥我无法确定我的 ruby 安装版本?的主要内容,如果未能解决你的问题,请参考以下文章
为啥最新版的VS2017没有net framework 4.6.2,且我无法安装
无法在 Yosemite 的全新安装和 ruby 的全新版本上安装 therubyracer