运行“作曲家更新”时的意思“?,php,composer-php"/>

首页 > 解决方案 > "锁定"是什么意思运行“作曲家更新”时的意思“?

问题描述

我正在尝试执行composer update <package>但收到以下错误:

<package>[<tag>] 可以满足请求的包 <package>(锁定在 <tag>,需要为 <version>),但这些与您的要求或最低稳定性相冲突。

同时,该标签<tag>仅作为字符串存在于我的 composer.lock 文件中,我认为该文件仅由 修改composer update,而不是回读。

我试过 running composer why-not <package>,但它的输出并没有真正解释这个问题:

<program> <other-version> 需要 <package> (<version>)

在这种情况下,“锁定”是什么意思?我该如何解决这个问题?

标签: phpcomposer-php

解决方案


包被锁定意味着与版本约束一起使用的分支上的最后一次提交的提交哈希在最后dev-<branch>一次运行期间保存在composer update锁定文件中,以确保部署时的确定性(可重现)构建。

如果composer.lock您:

  1. composer update [<package>]

... 或者 ...

  1. composer install在作曲家的当前目录中使用composer.json礼物而不是锁定文件运行,它会自动生成锁定文件

推荐阅读