【发布时间】:2014-04-17 18:11:15
【问题描述】:
php composer.phar update 这样做了(删除了 2.3.0 包并安装了整个 2.2.5 Zend Framework):
$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing zendframework/zend-filter (2.3.0)
- Removing zendframework/zend-view (2.3.0)
- Removing zendframework/zend-eventmanager (2.3.0)
- Removing zendframework/zend-loader (2.3.0)
- Removing zendframework/zend-escaper (2.3.0)
- Removing zendframework/zend-log (2.3.0)
- Removing zendframework/zend-servicemanager (2.3.0)
- Removing zendframework/zend-stdlib (2.3.0)
- Installing zendframework/zendframework (2.2.5)
Loading from cache
Writing lock file
Generating autoload files
为什么要这么做?我的 composer.json 看起来像这样,并没有暗示任何指导上述事件过程的内容:
"repositories":[
{
"type":"composer",
"url":"https://packagist.org/"
},
{
"type":"composer",
"url":"http://packages.zendframework.com/"
}
],
"require": {
"zendframework/zend-log" : "2.*",
"zendframework/zend-escaper" : "2.*",
"zendframework/zend-filter" : "2.*",
"zendframework/zend-view" : "2.*"
}
我的期望是:删除 2.3.0,安装 2.3.1 包
【问题讨论】:
-
在运行
update之前,您的依赖项中是否有任何更改(添加/删除)? -
不管怎样;故事的寓意是尽可能具体与您的版本号。所以使用
~2.3(即>=2.3和<3.0)或2.3.*。 Composer 会通过一系列逻辑来找出哪一组版本满足您的所有依赖项。如果您更具体,那么您只需要更新您的composer.json,如果您决定要一个新版本。它消除了update的一些“机会”。 -
那是你完整的
composer.json吗?您是否需要将 zend 设置为低于您定义的其他东西? -
它几乎是整个 composer.json(减去名称、描述和许可证)。我认为 JSON 中没有任何内容被移动/更改
-
@Sam 耶!将其更改为
~2.3有效!随意使用您的评论作为答案
标签: php composer-php