2012-01-26 7 views
4

デプスファイル内のすべてのバンドルを更新せずにただ1つのバンドルをアップデートする方法はありますか?私は現在、すべてのベンダーバンドルをインストールするために "php vendors install"を使用しており、一度に1つのバンドルだけを更新するコマンドは認識していません。symfony2:ベンダーバンドルを1つだけ更新する

答えて

5

1)ちょうどあなたのDEPSファイル(./deps)

2)更新したいものを除いてすべてのバンドルを削除し、depsのファイル

3を保存)のコマンドを実行してみましょう開く:PHPのビンを/ベンダーアップデート

バンドルを更新します。

4)あなたのdepsのファイルに戻ると、以前のすべての削除バンドルラインを書き換えます!

乾杯!

3

ショートバージョン: 「最良の方法」これを行うには、あなたの設定に依存します。以前に "php bin/vendors update"を実行したことがあるならば、deps.lockファイルから更新したいバンドルの行を削除し、あなたのベースから "php bin/vendors install"を実行するのが最善でしょうsymfonyフォルダ。

ロングバージョン: 私は、さまざまなベンダコマンドは何をすべきかのいくつかの明確化が順番にあると思います。

1)PHPビン/ベンダーは

このコマンドのダウンロード(必要な場合)をインストールしてsymfony /ベンダーにベンダーバンドルのソースファイルをインストールします。このコマンドは最初にdeps.lockを見て、そこにリストされているgitコミット/バージョンを確認してから、あなたのdepsファイルを見てそこにリストされているバージョンを確認します。特定のバンドルにどちらのバージョンも指定されていない場合は、そのバンドルのバンドルコードの最新バージョンをダウンロードします。バージョンが見つかった場合は、そのバージョンのベンダーバンドルコードをダウンロードしてインストールします。

このコマンドでは、deps.lockに何も配置されません。

2)PHPのbinが/ベンダーが--reinstall

このコマンドは、PHPのビンと同じことをしてインストール/それは常にsymfonyの/ベンダーにそれをインストールする前に、コードをダウンロードします以外のベンダーは、インストールしてください。

このコマンドは、deps.lockには何も入れていないだろう。

3)PHPビン/ベンダーは

このコマンドはdeps.lockを無視して、ダウンロードします更新(必要な場合)とsymfony /ベンダーにDEPSファイルに記載されているバンドルコードのバージョンをインストールします。

それがコードのダウンロードとインストール完了したら、それはgitのは、あなたのdeps.lockファイルに各バンドルのダウンロードされたコードのID /バージョンをコミット入れます。こうすると、上記のインストールコマンドのいずれかを実行すると、deps.lockファイルから関連行を削除しない限り、またはupdateコマンドを再度実行しない限り、ダウンロードされたコードのバージョンは変更されません。

deps.lockファイルの背後にある考え方は、それが誤ってサードパーティのバンドルコードのより最近のバグ非稼働バージョンにバンドルをアップグレードしてからあなたを防ぐことです。 Symfonyとそのバンドルは絶え間なく開発されているので、バグでなくても変更が頻繁に起こり、コードが壊れてしまいます。できるだけ早くあなたのバージョンをdeps.lockに閉じ込めたいと思うでしょうし、そうするために外出したいと思ったら更新するだけです。

deps.lockでバンドルバージョンをロックダウンしたら、deps.lockファイルから関連する行を削除して、インストールコマンドの1つを実行して特定のバンドルを更新する必要があります上記の短い答えで。そのコードをインストールしたバージョンにロックしたい場合は、自分でdeps.lockに行を追加するか、depsからすべてを削除し、上の答えのようにphp bin/vendor updateを実行します。

関連する問題