【发布时间】:2015-06-02 12:09:07
【问题描述】:
我正在并排开发两个 gem,一个包含一些纯 ruby 功能,一个包含 Rails 接口。
Rails gem (rwanda-rails) 依赖于 .gemspec 中带有 spec.add_runtime_dependency "rwanda" "~> 0.6.0" 的纯 Ruby gem (rwanda)。但是,由于某种原因,bundler 找不到这个新版本——尽管我可以使用gem install 安装它:
15:40 slack@kevin:~/rails/rwanda-rails[master]$ gem install rwanda
Successfully installed rwanda-0.6.0
Parsing documentation for rwanda-0.6.0
Done installing documentation for rwanda after 0 seconds
1 gem installed
15:48 slack@kevin:~/rails/rwanda-rails[master]$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Bundler could not find compatible versions for gem "rwanda~> 0.6.0":
In Gemfile:
rwanda-rails (>= 0) ruby depends on
rwanda~> 0.6.0 (>= 0) ruby
Could not find gem 'rwanda~> 0.6.0 (>= 0) ruby', which is required by gem 'rwanda-rails (>= 0) ruby', in any of the sources.
确认rwanda已安装:
15:50 slack@kevin:~/rails/rwanda-rails[master]$ gem list
*** LOCAL GEMS ***
[...]
rwanda (0.6.0)
Bundler 配置为在~/vendor/bundle/ 中安装gem:
15:50 slack@kevin:~/rails/rwanda-rails[master]$ ls -1 ~/vendor/bundle/gems/
[...lots of gems...]
rwanda-0.4.0
rwanda-0.5.3
rwanda-0.6.0
我想我对 bundler 在哪里安装它的 gem 以及为什么它找不到似乎可用的 gem 感到困惑。
我使用的是 ruby 2.2.1,通过 gem 目录中的 .ruby-version 设置。 $GEM_PATH 和 $GEM_HOME 未设置(应该设置吗?rbenv 会处理吗?)。
我还安装然后删除了 rbenv-bundler(在找到 rbenv 开发人员的警告后),我担心它可能会留下一些干扰?
我为 rbenv 安装了三个插件:binstubs、gem-rehash 和 ruby-build。
我也尝试过rbenv rehash、bundle install --binstubs 和bundle update(失败并显示与bundle install 相同的消息。
【问题讨论】: