2012-01-26 55 views
4

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

回答

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斌/厂商安装--reinstall

这个命令做同样的事情为PHP斌/厂商安装,但它总是将其安装到symfony中/供应商之前下载代码。

该命令不会将任何东西放在deps.lock中。

3)PHP仓/供应商更新

这个命令将忽略deps.lock,并且将下载(如果必要的话),并安装在DEPS文件到symfony的/供应商列出束代码版本。

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

deps.lock文件背后的想法是,它可以防止您意外地将软件包升级到更新的第三方软件包代码的非工作版本。 Symfony及其捆绑包正在不断发展,所以更改(即使它们不是bug)发生得非常频繁,并会破坏您的代码。您可能希望尽快将您的版本锁定在deps.lock中,只有在您想要这样做时才更新。

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