更改捆绑安装Ruby版本

red*_*gem 11 ruby ruby-on-rails

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

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

谢谢!

编辑:我已经完成了这个答案所说的一切,而且我没有得到1.8的痕迹

再次编辑:嗯,它以某种方式工作.也许重启Bash修复了它.在任何情况下,是否有强制bundle install使用特定版本的Ruby 的一般解决方案,以免这种情况再次发生或发生在其他人身上?

ang*_*gie 5

对我来说问题似乎是我不小心配置了厨师用系统ruby gem版本安装bundler,它将bundler放在系统路径中:

/usr/local/bin/bundle
Run Code Online (Sandbox Code Playgroud)

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

我真的希望它安装在.rbenv我的用户的垫片位置.

要解决此问题,我以root用户身份登录时卸载了捆绑程序,从而将其删除/usr/local/bin.

我已经为用户安装了我所需的ruby版本的gem with bundler,所以现在当我打电话时,which bundle我看到:

/[user_home]/.rbenv/shims/bundle
Run Code Online (Sandbox Code Playgroud)

现在当我运行bundle installbundle时,它与当前的ruby版本相关联.


mma*_*mai 4

捆绑包适用于宝石。检查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:)