【问题标题】:Middleman build: ruby -v is different from rvm current with .ruby-version中间人构建:ruby -v 不同于 rvm current with .ruby-version
【发布时间】:2015-07-01 10:05:16
【问题描述】:

我在 Ubuntu 14.04 机器上有一个 Middleman 项目,我只想使用每个项目的 ruby​​ 版本运行 bundle exec middleman build。因此,在项目的根文件夹中,我有一个 .ruby-version,其内容为:ruby-2.2.0

rvm list 显示

rvm rubies

 * ruby-1.9.3-p551 [ x86_64 ]
   ruby-2.1.4 [ x86_64 ]
=> ruby-2.2.0 [ x86_64 ]

这看起来不错。但是 ruby -v 显示 ruby 1.9.3p484 并且中间人命令失败,因为它使用了错误的 ruby​​ 版本

$ bundle exec middleman build
bash: /usr/local/bin/bundle: /usr/bin/ruby1.8: bad interpreter: No such file or directory

那么,如何确保中间人使用项目文件夹中定义的 ruby​​ 版本?

【问题讨论】:

  • 你试过根项目文件夹中的cd .吗?

标签: ruby ubuntu-14.04 middleman


【解决方案1】:

您的 rvm 使用的是 ruby​​ 版本 -1.9.3 。你必须输入rvm --default use 2.2.0,然后你可以通过输入rvm list来检查ruby的活动版本

如果 ruby​​ 版本 2.2.0 附近有一个 * 符号,那么它将使用它作为默认用法。我希望你能解决这个问题。

【讨论】:

  • 如果我每次都必须更改默认值,那么.ruby-version 文件的目的是什么?
  • 当有预定义的 ruby​​ 版本时。这意味着......你的东西需要这个版本。
  • 但是 ruby​​ 版本附近的 => 表示“当前”,那么为什么“默认”很重要?
  • 这很重要。您会看到 RVM 代表 Ruby 版本管理器。并且它始终会根据您的需要安装并制作一个沙盒就绪环境。所以现在如果出现必须使用 ruby​​ 1.9 进行开发的情况。然后您可以将默认和当前的 ruby​​ 使用设置为某些特定版本。明智的做法是让版本成为当前版本和默认版本,因为有时会出现权限和授予访问权限的问题。
  • 在我看来,我们离我的问题还很远。让我们更清楚一点。在我的项目文件夹中,我的“当前”红宝石是 2.2.0,但 bundle 忽略了它。我想将 ruby​​ 版本设置为在每个项目的基础上运行,而不必每次都使用 rvm 切换。我认为.ruby-version 文件可以做到这一点。有没有办法做到这一点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多