Bundle不想安装gem(尚未检出)

时间:2014-03-21 09:05:44

标签: ruby-on-rails ruby gem bundler

我想在rails服务器上运行Ruby,但某个gem并不想安装。这个rails程序与ruby 2.0不兼容,所以我想使用我安装的ruby 1.9.3,但我不能再捆绑安装......

$ bundle install
# ...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
$ bundle exec rails s
git://github.com/goodtouch/jbuilder.git (at master) is not yet checked out. Run `bundle install` first.
$ bundle show jbuilder
/Users/julien/.bundler/ruby/2.0.0/jbuilder-7fb0eae924c7
$ ruby --version
ruby 1.9.3p545 (2014-02-24 revision 45159) [x86_64-darwin13.1.0]

Gemfile中,我指定了ruby "1.9.3",然后我再次运行了bundle install并得到了:

Your Ruby version is 2.0.0, but your Gemfile specified 1.9.3

此特定宝石的Gemfile行:

gem 'jbuilder', git: "git://github.com/goodtouch/jbuilder.git"

我在Gemfile.lock

中得到了什么
GIT
  remote: git://github.com/goodtouch/jbuilder.git
  revision: 7fb0eae924c77318ede344f32a5c208b91cdbaac
  specs:
    jbuilder (0.4.1)
      activesupport (>= 3.0.0)
      blankslate (>= 2.1.2.4)

我真的不明白发生了什么。我在Mac OS X下。

谢谢。

1 个答案:

答案 0 :(得分:13)

修改:您必须使用rvmrbenv来设置ruby版本。这不是在gem文件中设置的。 Ruby不是宝石。

此错误可能有多种原因之一。

来自Bundler issues

# remove user-specific gems and git repos
rm -rf ~/.bundle/ ~/.gem/bundler/ ~/.gems/cache/bundler/

# remove system-wide git repos and git checkouts
rm -rf $GEM_HOME/bundler/ $GEM_HOME/cache/bundler/

# remove project-specific settings
rm -rf .bundle/

# remove project-specific cached gems and repos
rm -rf vendor/cache/

# remove the saved resolve of the Gemfile
rm -rf Gemfile.lock

# uninstall the rubygems-bundler and open_gem gems
rvm gemset use global # if using rvm
gem uninstall rubygems-bundler open_gem

# try to install one more time
bundle install