Composer 未将软件包更新到最新版本
Posted
技术标签:
【中文标题】Composer 未将软件包更新到最新版本【英文标题】:Composer is not updating package to newest version 【发布时间】:2015-04-09 07:21:58 【问题描述】:tl;dr:我在强制 Composer 获取本地包的最新更改时遇到了麻烦。看来,这个问题是由于最新的更改不是包存储库中任何版本的一部分。
我在我的项目中使用yii2-language-picker
,并已按照文档中的说明添加它:
php composer.phar require --prefer-dist lajax/yii2-language-picker "1.*"
最近扩展作者发了a change。但是,这个更改is not part of any release,因为它是1 commit after latest release。如果我没记错的话(我对 Composer 还很陌生),这会导致 Composer 无法更新我的本地包——在 composer update
或 composer install
之后,我得到了 Nothing to install or update
。
由于最新的更改不是任何版本的一部分,因此建议我编辑composer.json
文件,将required
部分中的"lajax/yii2-language-picker": "1.*"
更改为"lajax/yii2-language-picker": "*"
并发出另一个composer update
。
我也完全删除了这个包,然后用"1.*"
和"**"
重新安装。
这些都没有带来任何影响。 Composer 仍然声称,没有什么可安装或更新的。
什么可能导致这种情况?在这种情况下我能做些什么吗,或者我剩下的唯一选择就是坐下来等到包/存储库作者将该更改作为另一个版本的一部分?
我试图手动更新这个包,但是在composer status
之后我得到了No local changes
,我很担心,一旦发布了实际的包更新,所有这些更改都会丢失。我应该在这种情况下进行任何本地更改还是应该坐下来等待?
【问题讨论】:
【参考方案1】:将 1.* 更改为 dev-master 可能会解决您的问题。
【讨论】:
请注意,依赖分支很可能会在某一时刻破坏整个包,使您的软件无法再更新,并阻止您添加新包。以上是关于Composer 未将软件包更新到最新版本的主要内容,如果未能解决你的问题,请参考以下文章
尝试通过 Composer 将 Laravel/Nova 更新到最新版本时出现 INVALID CREDENTIALS 错误