【问题标题】:Cannot update "Updating dependencies (including require-dev)" with composer update -v无法使用 composer update -v 更新“更新依赖项(包括 require-dev)”
【发布时间】:2013-06-19 13:58:32
【问题描述】:

无法使用 composer update -v 更新“更新依赖项(包括 require-dev)”

使用 Windows 7 PHP:为 CLI Composer 版本启用了 5.4.7 OpenSSL c93aecee4d3998d17a1986f042187d38dd394397

得到错误:

E:\xampp\htdocs\partner-portal>composer update -v
Loading composer repositories with package information
Updating dependencies (including require-dev)

  [ErrorException]
  zlib_decode(): data error

Exception trace:
 () at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Util/RemoteFilesystem.php:166
 Composer\Util\ErrorHandler::handle() at n/a:n/a
 zlib_decode() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Util/RemoteFilesystem.php:166
 Composer\Util\RemoteFilesystem->get() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Util/RemoteFilesystem.php:76
 Composer\Util\RemoteFilesystem->getContents() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Repository/ComposerRepository.php:541
 Composer\Repository\ComposerRepository->fetchFile() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Repository/ComposerRepository.php:278
 Composer\Repository\ComposerRepository->whatProvides() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/DependencyResolver/Pool.php:240
 Composer\DependencyResolver\Pool->computeWhatProvides() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/DependencyResolver/Pool.php:229
 Composer\DependencyResolver\Pool->whatProvides() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php:179
 Composer\DependencyResolver\RuleSetGenerator->addRulesForPackage() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php:274
 Composer\DependencyResolver\RuleSetGenerator->getRulesFor() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/DependencyResolver/Solver.php:166
 Composer\DependencyResolver\Solver->solve() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Installer.php:446
 Composer\Installer->doInstall() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Installer.php:208
 Composer\Installer->run() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Command/UpdateCommand.php:103
 Composer\Command\UpdateCommand->execute() at phar://C:/ProgramData/Composer/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:244
 Symfony\Component\Console\Command\Command->run() at phar://C:/ProgramData/Composer/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:882
 Symfony\Component\Console\Application->doRunCommand() at phar://C:/ProgramData/Composer/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:212
 Symfony\Component\Console\Application->doRun() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Console/Application.php:117
 Composer\Console\Application->doRun() at phar://C:/ProgramData/Composer/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:119
 Symfony\Component\Console\Application->run() at phar://C:/ProgramData/Composer/bin/composer.phar/src/Composer/Console/Application.php:83
 Composer\Console\Application->run() at phar://C:/ProgramData/Composer/bin/composer.phar/bin/composer:43
 require() at C:\ProgramData\Composer\bin\composer.phar:15


update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock]
 [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [
-o|--optimize-autoloader] [packages1] ... [packagesN]

编辑:添加 composer.json ->

{
    "name": "symfony/framework-standard-edition",
    "license": "MIT",
    "type": "project",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "composer/composer": "1.0.*@dev",
        "symfony/symfony": "2.3.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.2.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.3.*",
        "symfony/swiftmailer-bundle": "2.3.*",
        "symfony/monolog-bundle": "2.3.*",
        "sensio/distribution-bundle": "2.3.*",
        "sensio/framework-extra-bundle": "2.3.*",
        "sensio/generator-bundle": "2.3.*",
        "incenteev/composer-parameter-handler": "~2.0",
        "sonata-project/admin-bundle": "dev-master",
        "sonata-project/doctrine-orm-admin-bundle": "dev-master",
        "sonata-project/intl-bundle": "dev-master",
        "sonata-project/cache-bundle": "dev-master",
        "sonata-project/user-bundle": "dev-master",
        "sonata-project/media-bundle": "dev-master"
    },
    "scripts": {
        "post-install-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ],
        "post-update-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]
    },
    "config": {
        "bin-dir": "bin",
        "process-timeout": 5000
    },
    "minimum-stability": "dev",
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web",
        "incenteev-parameters": {
            "file": "app/config/parameters.yml"
        },
        "branch-alias": {
            "dev-master": "2.3-dev"
        }
    }
}

【问题讨论】:

  • 看来 Composer 无法解压缩某些内容。能否清空缓存目录(getcomposer.org/doc/03-cli.md#composer-home)看看问题是否依然存在?
  • 另外,您是从 packagist.com 下载软件包,还是拥有自己的存储库,或者使用本地 zip 文件?
  • 感谢您的查询,是的,清除缓存目录,我没有自己的 repo 或没有本地 zip。只有当我删除所有缓存和供应商文件夹时它才能正常工作。然后执行“作曲家安装”。但在那之后,当我执行“composer update”时,就会出现这个错误。
  • 是的,可能是它从 packagist.com 下载包
  • 并且清除“C:\Users\\AppData\Roaming\Composer”中的数据有什么作用吗?

标签: symfony composer-php


【解决方案1】:

这似乎与this question 中的问题相同。

zlib_decode(): data error

请仔细阅读我在那里回复的可能解决方案列表。

此外,请确保您的 composer.json 和 composer.phar 都不包含 BOM 加上两者都是 UTF-8 编码的。

使用

显示更多调试消息
composer -vvv update

请尝试将 Composer/Util/RemoteFilesystem.php 中的 if 语句从 line 164 更改为

if ($decode) {
    $result = file_get_contents('compress.zlib://data:application/octet-stream;base64,'.base64_encode($result));
}

您可以使用koto/phar-util 提取/重新构建您的composer.phar。

【讨论】:

  • 是的,我使用“composer diagnostic”命令,但发现一切正常。并且 composer.json 和 composer.phar 包含两者都是 UTF-8 编码的。
猜你喜欢
  • 2019-06-12
  • 2014-04-21
  • 1970-01-01
  • 2018-12-23
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多