我有一个使用symfony / flex的项目,其中无法运行composer install
或composer 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
在现有项目中确实可以使用。
答案 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/flex
和symfony/symfony
之间的冲突引起的。要消除该冲突,请按照以下步骤操作
$ composer remove symfony/symfony
然后像这样编辑composer.json
文件
{
"require": {
"symfony/flex": "^1.0",
},
"conflict": {
"symfony/symfony": "*"
}
}
答案 1 :(得分:0)
我有同样的问题。
我在自己的dns中添加了cloudflare dns 1.1.1.1。
这为我解决了