【问题标题】:No such ruby version没有这样的红宝石版本
【发布时间】:2013-09-05 15:58:28
【问题描述】:

我目前的环境有一个非常奇怪的问题。

我正在使用 rbenv,并且我的 ruby​​ 全局和本地版本设置为 ruby​​ 1.9.3-p448

我什至可以跑:

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.3.0]

我的包运行良好,但只要我运行:

bundle exec rails server

我明白了:

env: ruby1.9.1: No such file or directory

我知道这是一个项目特定的问题,因为我可以很好地启动其他 Rails 服务器。我猜这意味着我的项目试图以某种方式将我的 ruby​​ 1.9.3 与 ruby​​1.9.1 链接起来

有没有人有任何调试的想法?我觉得我已经尝试了一切。 =/

【问题讨论】:

  • 我也有同样的问题。我也解决不了。

标签: ruby-on-rails ruby development-environment rbenv


【解决方案1】:

您的 Gemfile 中可能有一个 ruby 声明,或者项目中有一个 .ruby-version.rbenv-version 文件,指定了您没有的 Ruby。

【讨论】:

  • 不。我的 Gemfile.lock 没有引用特定的 ruby​​,我的 .ruby-version 文件说 1.9.3-p448
  • Gemfile.lock 不会有,Gemfile 可能。如果没有,我会尝试使用find . -type f -exec grep -iH ruby1.9.1 {} \; 之类的方法来挖掘并找到它。
  • 如果它在 Gemfile 中,我很确定它会在 Gemfile.lock 中。也就是说,您的 find 命令确实有帮助,我将单独发布完整的答案。谢谢。
【解决方案2】:

只是为了确保您在当前的 ruby​​ 环境中拥有它,请执行以下操作:

gem install bundler
rbenv rehash
bundle install # optionally, include --binstubs
bundle exec rails server

【讨论】:

  • 不幸的是,没有。仍然遇到同样的问题
  • 关于版本问题,1.9.3的gem仍然存放在1.9.1的目录下,例如:~/.rbenv/versions/1.9.3-p327-perf/lib/ruby/1.9.1/
【解决方案3】:

事实证明,项目中有一个文件 .bundle/config,上面写着:

BUNDLE_PATH: vendor/bundle

我看了一下vender/bundle,果然有两个目录,1.8.7和1.9.1

我确信我的项目可以使用 1.9.3,我要么必须在那里创建一个新目录,要么从我的 .bundle 配置中删除捆绑路径。

为了解决这个问题,我将安装 1.9.1。 O_o

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2014-04-11
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2012-09-21
    相关资源
    最近更新 更多