14

「berks help update」によると、コマンドは次のようになっています。

「Berksfile で指定されたクックブック (および依存関係) を更新する」

(はい...それだけです!)。

しかし、これは正確にはどういう意味ですか?

そして、これは Berksfile のさまざまな種類の「クックブック」仕様でどのように変化しますか?

4

1 に答える 1

14

update コマンドは、各クックブックの最新バージョン (定義したバージョン要件をまだ満たしているもの) を見つけようとします。たとえば、次の Berksfile があるとします。

cookbook 'foo', '~> 1.0.0'

これにより、Berkshelf は1.0.xシリーズのすべてのバージョンを受け入れるようになります。したがって、実行するberks installと (仮説的に)foo-1.0.5ローカルの berkshelf にインストールされます。ロックファイルは foo の定義をバージョン 1.0.5 で「ロック」するため、他の開発者や将来のインストールでは常にバージョン 1.0.5 が使用されます (これがロックファイルの要点です)。

(数ヶ月経ちます…)

次に、クックブックを最新バージョンに更新します。ただし、SemVerのため、1.0.x シリーズにとどまりたいと考えています。実行berks updateすると、ロックファイルのハード依存関係がロック解除されますが、制約は Berksfile に保持されます。したがって (仮説として)、コミュニティ サイトに次の foo クックブック バージョンがあるとします。

  • 1.0.5
  • 1.0.6
  • 1.0.8
  • 1.1.0
  • 2.0.0

berks updateは、ローカル バージョンを に更新します1.0.8。これは、制約を満たす最新の公開バージョンであるためです。

于 2014-01-13T17:16:21.200 に答える