GEMSPEC依存関係の定義と競合が必要です
質問
間に対立があります GEM依存関係の定義 そしてその 必要とする これらの宝石の。
私はこれを持っています:
# Gemfile
source "http://rubygems.org"
gemspec
-
# my_gem.gemspec
$:.push File.expand_path("../lib", __FILE__)
require "my_gem"
Gem::Specification.new do |s|
s.version = MyGem::VERSION
# ...
s.add_dependency "s3"
end
-
# /lib/my_gem.rb
require 'rubygems'
require 's3'
競合ラインはです S3要件 私が実行するとき bundle install
この宝石はまだインストールされていないため、文句を言います。
回避策は、これが必要なコメントをしてから実行してから実行します bundle install
そして、もう一度きれいではないものをもう一度必要とします。
問題を理解するために詳細が必要な場合は、お勧めします。教えてください。
解決
まず、gemspecに宝石全体を必要としないでください。バージョン情報を「lib/my_gem/version.rb」のようなパスに移動し、それを要求します。第二に、いくつかの機能にRubygems APIを使用していない限り、「Rubygems」を必要とするべきではありません。 Rubymsを使用しないユーザーがいます。必要でない限り使用するように強制しないでください。
他のヒント
1.-ライブラリで「Rubygems」を必要としないでください。 UNIXプログラムがAPT-Getを必要とする場合のようなものであるため、他のシステムはライブラリを使用できません。
2.-ライブラリで、バージョンを別のファイル/lib/lib_name/version.rbに入れて、GEMSPECでそのファイルを要求します。そのファイルのみであるため、GEMSPECをロードしようとするときはライブラリや依存関係をロードしません。
所属していません StackOverflow