通过Composer静默安装或更新symfony / flex失败

时间:2019-06-14 18:01:17

标签: php symfony composer-php

我有一个使用symfony / flex的项目,其中无法运行composer installcomposer update。我也不能用symfony / flex作为依赖项来创建新的作曲家项目,因为失败是相同的。例如;

mkdir foo && cd foo && composer require symfony/flex -vvv

始终具有以下输出;

...
Package operations: 1 install, 0 updates, 0 removals
Installs: symfony/flex:v1.2.6
  - Installing symfony/flex (v1.2.6): Reading /Users/me/.composer/cache/files/symfony/flex/17b622276922e6347ea129acd6238ae1c41d96b6.zip from cache
Loading from cache
 Extracting archiveExecuting command (CWD): unzip -qq  '/Users/me/projects/foo/vendor/symfony/flex/2064a553f7cdf064ba8c1b62c7087ec6' -d '/Users/me/projects/foo/vendor/composer/65215880'
Loading plugin Symfony\Flex\Flex
Downloading https://flex.symfony.com/versions.json

下载会在静默失败之前,在下载versions.json时暂停几秒钟。 vendor/symfony/flex存在。

此故障可能是什么原因?我的同事可以成功运行相同的命令,因此我认为本地作曲家遇到了问题。我尝试重新安装作曲家并清除缓存,但没有成功。

编辑:现在在现有项目中运行composer update -vvv时,我得到以下输出

...
Downloading https://repo.packagist.org/packages.json

它也挂在哪里,因此看起来作曲家无法下载某些JSON文件?软件包下载良好,因此看起来好像没有互联网。

编辑2:我也可以确认使用composer update --no-plugins在现有项目中确实可以使用。

2 个答案:

答案 0 :(得分:0)

当作曲家无法正常工作时,应重置它并进行更新。首先

$ composer clearcache

然后更新

$ composer self-update

然后运行诊断

$ composer diagnose

然后将cd定位到composer.json所在的位置并执行

$ composer dump-autoload

然后

$ composer install

应解决此问题。另一种方法包括

$ composer update symfony/flex --no-plugins --no-scripts

此外,这可能是由于symfony/flexsymfony/symfony之间的冲突引起的。要消除该冲突,请按照以下步骤操作

$ composer remove symfony/symfony

然后像这样编辑composer.json文件

{
    "require": {
        "symfony/flex": "^1.0",
     },
     "conflict": {
         "symfony/symfony": "*"
    }
}

答案 1 :(得分:0)

我有同样的问题。

我在自己的dns中添加了cloudflare dns 1.1.1.1。

这为我解决了