「berks help update」によると、コマンドは次のようになっています。
「Berksfile で指定されたクックブック (および依存関係) を更新する」
(はい...それだけです!)。
しかし、これは正確にはどういう意味ですか?
そして、これは Berksfile のさまざまな種類の「クックブック」仕様でどのように変化しますか?
「berks help update」によると、コマンドは次のようになっています。
「Berksfile で指定されたクックブック (および依存関係) を更新する」
(はい...それだけです!)。
しかし、これは正確にはどういう意味ですか?
そして、これは Berksfile のさまざまな種類の「クックブック」仕様でどのように変化しますか?
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 クックブック バージョンがあるとします。
berks update
は、ローカル バージョンを に更新します1.0.8
。これは、制約を満たす最新の公開バージョンであるためです。