我是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的一般解决方案,以免再次发生或者发生在其他人身上?
答案 0 :(得分:5)
对我来说,问题似乎是我不小心配置了厨师用系统ruby gem版本安装bundler,它将bundler放在系统路径中:
/usr/local/bin/bundle
使用此捆绑版本
/usr/bin/gem
(如上面的评论中所述)迫使版本1.8
我真的希望它安装在我的用户的.rbenv
垫片位置。
要解决此问题,我以root身份登录时卸载了bundler,并将其从/usr/local/bin
中删除。
我已经为用户安装了我所需的ruby版本的gem with bundler,所以现在当我打电话给which bundle
时,我看到了:
/[user_home]/.rbenv/shims/bundle
现在当我运行bundle install
时,捆绑包与当前的ruby版本相关联。
答案 1 :(得分:4)
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
)