【问题标题】:Change bundle install Ruby version更改捆绑安装 Ruby 版本
【发布时间】:2012-01-18 22:56:47
【问题描述】:

我是 Ruby/Rails 的新手,如果这是一个微不足道的问题,请原谅我。每当我运行 bundle install 时,它都会将所有内容安装在 vendor/bundle/ruby/1.8 中,而不是 vendor/bundle/ruby/1.9.1,这是我正在使用的 Ruby 版本。当我运行ruby -v 时,我得到了正确的 1.9.1 版本,但由于某种原因 bundle install 坚持使用 1.8,这导致了基本 Rails 功能的许多错误。

如何指示 bundle 使用 1.9.1(最好删除任何 Ruby 1.8 的痕迹)?

谢谢!

编辑:我已经完成了this 回答所说的一切,但我没有得到 1.8 的痕迹

再次编辑:嗯,它以某种方式工作。也许重新启动 Bash 可以修复它。无论如何,是否有强制bundle install 使用特定版本的Ruby 的通用解决方案,以免再次发生这种情况或发生在其他人身上?

【问题讨论】:

  • 取决于您的系统。你在用什么?

标签: ruby-on-rails ruby


【解决方案1】:

对我来说,问题似乎是我不小心配置了 chef 以安装带有系统 ruby​​ gem 版本的 bundler,这将 bundler 放在系统路径中:

/usr/local/bin/bundle

使用的这个捆绑包版本 /usr/bin/gem(如上面评论中所述)强制使用 1.8 版

我真的希望它为我的用户安装在.rbenv shims 位置。

为了解决这个问题,我在以 root 身份登录时卸载了 bundler,将它从 /usr/local/bin 中删除。

我已经在我想要的 ruby​​ 版本中为用户安装了带有 gem 的 bundler,所以现在当我调用 which bundle 时,我看到了:

/[user_home]/.rbenv/shims/bundle

现在当我运行 bundle install 时,捆绑包与当前的 ruby​​ 版本相关联。

【讨论】:

    【解决方案2】:

    Bundle 适用于宝石。检查 gem 命令是否也使用正确的 ruby​​ 版本:在 Ubuntu Linux 上,我必须将 /usr/bin/gem 符号链接到 /usr/bin/gem1 .9.1

    (/usr/bin/gem1.8 和 /usr/bin/gem1.9.1 之间的唯一区别是定义要使用的 ruby​​ 版本的第一行:#!/usr/bin/ruby1.9.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 2021-09-14
      • 1970-01-01
      相关资源
      最近更新 更多