私はrubygems.orgに多くの宝石が、正確なバージョンではなくメジャーバージョンでそれらを指定することを示唆しています。たとえば...Gemfileに正確なバージョンを指定する必要がありますか?
このような正確なバージョンを見極める方が良いでしょうのように、それは私には思えた Bundler docsに基づいしかしgem "haml-rails", "~> 0.3.4" # "$ bundle install" will acquire the
# latest version before 1.0.
、...
gem "haml-rails", "0.3.4"
ハムレールの宝石があり、そのすべての依存関係が漂っていません。数週間後に別のマシンでプロジェクトをチェックアウトし、$ bundle install
を実行すると、指定したすべてのバージョンとまったく同じバージョンになります。
私は、ポイントリリースで不具合が発生しているのを見たことがあります.Bundlerのアイデアの一部は、すべての宝石のバージョンが「Bundle.lock
」だったと思いました。
しかし、rubygems.orgでは「〜>」が多すぎますので、何か不足しているかもしれません。
BundlerとGemの管理を理解する上で非常に役立ちます。
宝石はGemfile.lockに記録された定評のあるバージョンにとどまります。では、「〜>」を追加する目的は何ですか?それはどのように有利ですか? – Ethan
@ethan RubyGemsには[doc](http://rubygems.rubyforge.org/rubygems-update/Gem/Version.html)の説明があります(「バージョンの災害の防止」を参照)。その要点は、バージョン番号の最後の整数を増やすことだけです(例: '〜> 1.0.5'はバージョン1.0.9999に更新できますが、1.1.xには決してできません)。このメカニズムは、宝石の更新を可能にするものですが、非互換性を導入することなく、物事を壊すことはありません(宝石はアウトラインをリンクする "Rationalバージョン管理"ポリシーに従っているものとします)。 –
@ethanここではRubyDocsサイトの "[悲観的な演算子](http://docs.rubygems.org/read/chapter/16#page74)"(〜>)と[合理的なバージョン管理](http ://docs.rubygems.org/read/chapter/7)。 –