Composer 在将 laravel 更新到 5.6 时卡在“有些地方发生了变化,再次查看所有规则”

Composer stuck on `Something's changed, looking at all rules again` while updating laravel to 5.6

我正在尝试更新我的 Laravel 应用程序。我当时是 5.2,现在是 5.5。到这里为止一切正常。

现在我已经在我的 composer 文件中将其更改为 5.6.*,无论我 运行 composer update 多少次,它都会卡在

Something's changed, looking at all rules again (pass #142)

不管我让它继续进行多少遍。

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.5.*",
        "laravelcollective/html": "5.5.*",
        "jenssegers/agent": "^2.6",
        "doctrine/dbal": "v2.5.5",
        "guzzlehttp/guzzle": "~6.0",
        "laravel/cashier": "~6.0",
        "spatie/laravel-backup":"^3.0.0",
        "maatwebsite/excel": "~2.1.0",
        "rap2hpoutre/laravel-log-viewer":"0.8.0",
        "arcanedev/log-viewer": "4.2.*",
        "tymon/jwt-auth": "0.5.*",
        "aws/aws-sdk-php-laravel": "3.1.0",
        "league/flysystem-aws-s3-v3": "~1.0.0",
        "tecnickcom/tcpdf": "^6.2",
        "ip2location/ip2location-laravel": "^1.0",
        "geoip2/geoip2":"~2",
        "maxmind-db/reader": "~1.0",
        "pusher/pusher-php-server": "~3.0",
        "maknz/slack-laravel": "^1.0",
        "laravel/tinker": "1.0.10"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~6.0",
        "symfony/css-selector": "3.1.*",
        "symfony/dom-crawler": "3.1.*",
        "filp/whoops": "~2.0"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\": "app/"
        },
        "files": [
           "app/helpers.php"
        ]
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\Foundation\ComposerScripts::postInstall"
        ],
        "post-update-cmd": [
            "Illuminate\Foundation\ComposerScripts::postUpdate"
        ],
        "post-autoload-dump": [
            "Illuminate\Foundation\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

最初是第三方包 https://github.com/spatie/laravel-backup 出现问题,导致出现问题,但我也尝试将其删除。还是一样的问题。 :(

我尝试一次删除依赖并更新

"laravel/cashier": "~6.0"

这是导致问题的原因。将其更改为 ~7.0,现在可以正常工作了。

其他人遇到这个问题,只需尝试删除所有依赖项并尝试一次安装一个,很可能您会找到罪魁祸首,然后您可以尝试单独更新那个。

对我来说,罪魁祸首是 phpspec/phpspec,从 Laravel 5.2 开始似乎是 no longer needed

如果你安装这个扩展“nesbot/carbon”:“^2.17”,就升级他

可能需要多遍。

我不知道它在做什么,但对我来说它持续了 980 遍。

升级Laravel版本后,部分依赖不兼容。所以,我们必须升级一些依赖的版本。 Laravel 文档中清楚地概述了此升级。 (https://laravel.com/docs/5.3/upgrade)