6

ディレクトリ '/home/enterprise/pkg' にローカルの gem (enterprise-0.0.1.gem) があります。次のように、enterprise.gemspec ファイルで指定された active_directory gem (v 1.5.5) に依存しています。

gem.add_dependency("active_directory")

アプリケーションの Gemfile に、次の行を追加します。

gem 'enterprise', '0.0.1', path => '/home/enterprise/pkg'

私がする時

バンドル インストール

アプリケーションのソース ディレクトリから、エンタープライズ gem のみがインストールされます。そのため、active_directory gem への参照でランタイム エラーが発生しました。

しかし、私がするとき

gem install /home/enterprise/pkg/enterprise-0.0.1.gem

依存関係が解決され、gem リストに active_directory gem が表示されます。

rubygems ではなく、bundler との依存関係の解決に矛盾があるのはなぜですか。

環境についてさらに情報を提供する必要がある場合は、お知らせください。Ruby: 1.9.2、RubyGems: 1.8.24、バンドラー: 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
4

3 に答える 3

2

私は同じ問題を抱えていて、最終的に Gemfile.lock を削除して問題を解決しました。

于 2013-08-20T14:54:00.617 に答える
0

-- notで使用gem.add_runtime_dependencyし、それを your に追加するかどうかに関係なく、gem を必要とする必要があります。gemspecadd_dependencyGemfile

于 2015-05-08T07:27:03.757 に答える
0

あなたの宝石には、次の内容のGemfileがありますか?

source 'https://rubygems.org'

# Specify your gem's dependencies in enterprise.gemspec
gemspec

アプリケーションの gemspec に require を追加してみてください

gem 'enterprise', '0.0.1', path => '/home/enterprise/pkg', :require => "active_directory"
于 2012-07-18T04:27:34.107 に答える