Ho una gemma locale (enterprise-0.0.1.gem) in una directory '/ home/enterprise/pkg'. Ha dipendenza gemma active_directory (v 1.5.5), che è stato specificato nel suo file di enterprise.gemspec in questo modo: -'bundle install' per una gem locale non risolve le dipendenze, mentre 'gem install' fa
gem.add_dependency("active_directory")
In Gemfile della mia applicazione, ho aggiungere la seguente riga: -
gem 'enterprise', '0.0.1', path => '/home/enterprise/pkg'
Quando faccio
bundle install
dalla directory sorgente della mia applicazione, solo l'enterprise gem è installato. Quindi, ho colpito errori di runtime per il riferimento a gemella active_directory.
Ma quando faccio
gem install /home/enterprise/pkg/enterprise-0.0.1.gem
le dipendenze sono risolte e posso vedere la gemma active_directory nella gemma elenco.
Perché c'è una discrepanza nella risoluzione delle dipendenze con il bundler e non con i rubygems.
Gentilmente fammi sapere se ho bisogno di fornire ulteriori informazioni sull'ambiente. Ruby: 1.9.2, RubyGems: 1.8.24, Bundler: 1.1.5, rvm: 1.9.2.
Il mio file enterprise.gemspec di riferimento: -
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/enterprise/version', __FILE__)
Gem::Specification.new do |gem|
gem.authors = ["example"]
gem.email = ["[email protected]"]
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
Sì, ce l'ho nel Gemfile della gemma aziendale. Hai bisogno del mio file gemspec? – neosab
No, non sembra installare la gemella active_directory con l'opzione: require. Si comporta allo stesso modo di prima. Solo l'enterprise gem è installato. – neosab
Sono curioso di sapere qual è la pratica standard per l'utilizzo di una gemma locale personalizzata. Fare una [gem install "enterprise" e bundle install] ogni volta che sposto la mia applicazione su un server di produzione non ha senso. – neosab