Symfony2:只更新一个供应商包

时间:2012-01-26 19:07:04

标签: configuration symfony bundle

有没有办法只更新一个捆绑包而不更新deps文件中的每个捆绑包?我目前正在使用“php供应商安装”来安装所有供应商捆绑包,并且我不知道任何一次只更新一个捆绑包的命令。

2 个答案:

答案 0 :(得分:5)

1)只需打开您的deps文件(./deps)

2)删除除要更新的包之外的所有包,并保存deps文件

3)让我们运行命令:php bin / vendors update

它会更新捆绑包。

4)返回deps文件并重写之前删除的所有捆绑行!

干杯!

答案 1 :(得分:3)

简短版本: 执行此操作的“最佳方式”取决于您的设置。如果您之前运行过“php bin / vendors update”,那么最好从deps.lock文件中删除要更新的包的行,然后从您的库中运行“php bin / vendors install” symfony文件夹。

长版: 我认为对各种供应商命令的作用进行了一些澄清。

1)php bin / vendors install

此命令下载(如有必要)并将供应商捆绑包源文件安装到symfony / vendor中。此命令将首先查看deps.lock以查看其中列出的git提交/版本,然后它将查看您的deps文件以查看其中列出的版本。如果没有为某个捆绑包指定任何版本,它将下载该捆绑包的最新版本的捆绑包代码。如果找到版本,它将下载并安装该版本的供应商包代码。

此命令不会在deps.lock中添加任何内容。

2)php bin / vendors install --reinstall

此命令与php bin / vendors安装的功能相同,只是在将代码安装到symfony / vendor之前总会下载代码。

此命令不会在deps.lock中添加任何内容。

3)php bin / vendors update

此命令将忽略deps.lock,并将下载(如有必要)并将deps文件中列出的软件包代码版本安装到symfony / vendor中。

下载并安装代码完成后,它会将每个包的下载代码的git commit id / version放入deps.lock文件中。这样,当您运行上面列出的某个安装命令时,除非从deps.lock文件中删除相关行或者再次运行update命令,否则下载的代码版本不会更改。

deps.lock文件背后的想法是,它可以防止您意外地将捆绑包升级到更新的第三方捆绑代码的错误非工作版本。 Symfony和它的捆绑包都在不断发展,所以变化(即使它们不是错误)经常发生并且会破坏你的代码。您可能希望尽快将您的版本锁定在deps.lock中,并且只有在您不想这样做时才会更新。

一旦你在deps.lock中锁定了你的软件包版本,你只需要从你的deps.lock文件中删除相关的一行,运行一个install命令来更新一个特定的软件包,就像我说的那样上面简短的回答。如果您想将该代码锁定到刚刚安装的版本,您需要自己为deps.lock添加一行,或者从deps中删除所有内容并运行php bin / vendor update,如上面的答案所示。