为什么在作曲家中更新依赖项如此缓慢



我正在使用作曲家(http://getcomposer.org/)来管理Symfony2中已安装的捆绑包(symfony v 2.1.3)。作曲家的版本是 de3188c .

我有一个问题,当我将新捆绑包添加到 composer.json 中并执行它时,显示有关更新依赖项和下次下载它们的消息的时间非常低。

我在 composer.json 中有这些数据(见下文),执行时间约为 20 分钟!!互联网连接足够快,我可以非常快速地下载大文件......

有什么技巧可以让它更快吗?

{
"name": "symfony/framework-standard-edition",
"description": "The "Symfony Standard Edition" distribution",
"autoload": {
    "psr-0": { "": "src/" }
},
"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.1.*",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.0.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.1.*",
    "symfony/swiftmailer-bundle": "2.1.*",
    "symfony/monolog-bundle": "2.1.*",
    "sensio/distribution-bundle": "2.1.*",
    "sensio/framework-extra-bundle": "2.1.*",
    "sensio/generator-bundle": "2.1.*",
    "jms/security-extra-bundle": "1.2.*",
    "jms/di-extra-bundle": "1.1.*",
    "doctrine/doctrine-fixtures-bundle": "dev-master",
    "webignition/doctrine-migrations-bundle": "dev-master"
},
"scripts": {
    "post-install-cmd": [
        "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": [
        "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap",
        "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache",
        "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installAssets",
        "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installRequirementsFile"
    ]
},
"minimum-stability": "dev",
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web"
}

尝试在 composer.json 中为每个依赖项指定一个版本,并在调用 composer 时使用选项 --prefer-dist。它将从存储库(如果可用)而不是单个文件下载 ZIP 文件。

php composer.phar install --prefer-dist

既然你接受了答案,看起来这就解决了你的问题。以防万一其他人偶然发现了这个问题(就像我在搜索时所做的那样),就我而言,一个非常慢的 Composer 安装与我的 PHP 版本有关(警告的话,我是一个完全和彻底的 Composer 新手),即使 Composer 运行了它的标准检查并说一切都很好。我运行 Ubuntu 12.04 LTS,懒得从 Precise 存储库中的默认 PHP 5.3.10(与您正在运行的版本相同)升级。

通过作曲家安装 Twig 最初花了我大约 30 分钟。我在一个多小时后放弃了安装Doctrine。我升级到 5.4.17(使用此 PPA https://launchpad.net/~ondrej/+archive/php5),并在几秒钟内完成安装 Doctrine。

我发现它也很慢,慢了几十分钟。

对我来说,我添加了-vvv,发现它挂在类似的东西上 Downloading https://packagist.org/p/provider-active$53cdf887c8d2925b3501f47d6980fb7bda2310716369bf7a84857c6e62bbab0f.json

然后我去浏览器并尝试下载该 JSON 文件,果然如此。这 packagist.org 是缓慢的原因。

就我而言,上述建议并没有产生任何影响。所做的是使用HTTPS协议进行packagist

php composer.phar config --global repo.packagist composer https://packagist.org

composer config --global repo.packagist composer https://packagist.org

取决于您的设置

为了诊断这种用法,我使用了带有 -vvv 属性的 require 命令。

composer require larapack/dd -vvv

就我而言,我发现作曲家的速度慢是因为fxp/作曲家-资产-插件。

composer global show
composer global remove fxp/composer-asset-plugin

,瞧

相关内容

  • 没有找到相关文章

最新更新