我在目录“/home/enterprise/pkg”中有一个本地 gem (enterprise-0.0.1.gem)。 它依赖于 active_directory gem (v 1.5.5),这是在它的 enterprise.gemspec 文件中指定的,如下所示:-
gem.add_dependency("active_directory")
在我的应用程序的 Gemfile 中,我添加了以下行:-
gem 'enterprise', '0.0.1', path => '/home/enterprise/pkg'
当我做的时候
bundle install
在我的应用程序的源目录中,只安装了企业 gem。因此,我遇到了引用 active_directory gem 的运行时错误。
但是当我这样做的时候
gem install /home/enterprise/pkg/enterprise-0.0.1.gem
依赖关系已解决,我可以在 gem 列表中看到 active_directory gem。
为什么依赖项解析与 bundler 而不是 rubygems 存在差异。
如果我需要提供有关环境的更多信息,请告诉我。 ruby :1.9.2, RubyGems:1.8.24, bundler :1.1.5, rvm: 1.9.2.
我的 enterprise.gemspec 文件供引用:-
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/enterprise/version', __FILE__)
Gem::Specification.new do |gem|
gem.authors = ["example"]
gem.email = ["example@example.com"]
gem.description = %q{Enterprise Gem: example}
gem.summary = %q{Services: Authentication, Access Control}
gem.homepage = "http://example.com"
gem.files = %w[
README.md
Rakefile
Gemfile
Gemfile.lock
enterprise.gemspec
lib/enterprise.rb
lib/enterprise/auth_service.rb
lib/enterprise/version.rb
]
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
gem.name = "enterprise"
gem.require_paths = ["lib"]
gem.version = Enterprise::VERSION
gem.add_dependency("active_directory")
end
最佳答案
我遇到了同样的问题,最终删除了 Gemfile.lock 以解决问题。
关于ruby-on-rails - 本地 gem 的“bundle 安装”没有解决依赖关系,而 'gem install' 可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11532611/