1

ここに私の composer.json ファイルがあります:

{
    "name": "lorem-ipsum",
    "description": "Lorem Ipsum",
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.4",
        "symfony/console": ">=2.0.0,<2.2.0-dev",
        "symfony/config": ">=2.0.0,<2.2.0-dev",
        "symfony/dependency-injection": ">=2.0.0,<2.2.0-dev",
        "symfony/event-dispatcher": ">=2.0.0,<2.2.0-dev",
        "symfony/translation": ">=2.0.0,<2.2.0-dev",
        "symfony/yaml": ">=2.0.0,<2.2.0-dev",
        "symfony/finder": ">=2.0.0,<2.2.0-dev",
        "zendframework/zendframework": "2.*",
        "doctrine/doctrine-module": "dev-master",
        "doctrine/doctrine-orm-module": "0.*",
        "gedmo/doctrine-extensions": "dev-master"
    },
    "require-dev": {
        "phpunit/phpunit": "3.7.*",
        "behat/behat": "2.4.*@stable",
        "behat/mink": "1.4@stable",
        "behat/mink-goutte-driver": "*",
        "symfony/browser-kit": "2.1.*",
        "symfony/css-selector": "2.1.*",
        "symfony/dom-crawler": "2.1.*",
        "symfony/process": "2.1.*",
        "guzzle/http": "2.8.*",
        "behat/mink-sahi-driver": "*"
    },
    "autoload": {
        "psr-0": {
            "Behat\\Behat": "src/"
        }
    }
}

私がする時:

php composer.phar update --dev

私は得る:

パッケージ情報を含む composer リポジトリーをロードしています 依存関係を更新しています あなたの要件は、インストール可能なパッケージのセットに解決できませんでした。

  Problem 1
    - Conclusion: remove guzzle/parser v2.8.8
    - Conclusion: don't install guzzle/parser v2.8.8
    - fabpot/goutte 1.0.x-dev requires guzzle/guzzle 3.0.* -> satisfiable by guzzle/guzzle v3.0.0, guzzle/guzzle v3.0.1, guzzle/guzzle v3.0.2, guzzle/guzzle v3.0.3, guzzle/guzzle v3.0.4, guzzle/guzzle v3.0.5.
    - fabpot/goutte 1.0.x-dev requires guzzle/guzzle 3.0.* -> satisfiable by guzzle/guzzle v3.0.0, guzzle/guzzle v3.0.1, guzzle/guzzle v3.0.2, guzzle/guzzle v3.0.3, guzzle/guzzle v3.0.4, guzzle/guzzle v3.0.5.
    - Can only install one of: guzzle/guzzle v3.0.0, guzzle/guzzle v2.8.8.
    - Can only install one of: guzzle/guzzle v3.0.1, guzzle/guzzle v2.8.8.
    - Can only install one of: guzzle/guzzle v3.0.2, guzzle/guzzle v2.8.8.
    - Can only install one of: guzzle/guzzle v3.0.3, guzzle/guzzle v2.8.8.
    - Can only install one of: guzzle/guzzle v3.0.4, guzzle/guzzle v2.8.8.
    - Can only install one of: guzzle/guzzle v3.0.5, guzzle/guzzle v2.8.8.
    - Installation request for guzzle/parser v2.8.8 -> satisfiable by guzzle/guzzle v2.8.8, guzzle/parser v2.8.8.
    - Installation request for fabpot/goutte 1.0.x-dev -> satisfiable by fabpot/goutte 1.0.x-dev.

これは数日前には発生していませんでした。私はこの composer.json ファイルを数週間使用しており、常に正常にインストールされていました。

4

2 に答える 2

2

2.8.*問題は、require-dev でguzzle/httpが必要なようです。は開発依存関係にインストールされているため2.8.8、更新しようとすると、最初に通常の要件が更新されますが、開発要件の変更は完全に防止されます。

この時点で、 fabpot/goutte には guzzle が3.0.*必要2.8.8になったよう3.0.*です。

解決策は、rm -rf vendor/guzzle を実行して、現在の依存関係が現在の状態からなくなっていることを確認することです。次に、dev の依存関係が更新されるまで update を実行するとうまくいく2.8.8はず3.0.*です3.0.*。それが問題になる場合は、可能な場合は古いタグ付きバージョンの goutte を使用してみてください。

于 2012-11-22T16:32:44.020 に答える
0

今のところ、すべてのパッケージのバージョンを明示的に指定することで問題を解決しました。

{
    "name": "lorem-ipsum",
    "description": "Lorem ipsum",
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.4",
        "zendframework/zendframework": "2.0.4",
        "doctrine/doctrine-module": "0.5.2",
        "doctrine/doctrine-orm-module": "0.5.3",
        "gedmo/doctrine-extensions": "2.3.1"
    },
    "require-dev": {
        "phpunit/phpunit": "3.7.9",
        "guzzle/guzzle": "3.0.5",
        "behat/behat": "2.4.4",
        "behat/mink": "1.4",
        "behat/mink-goutte-driver": "1.0.3",
        "behat/mink-sahi-driver": "1.0.0",
        "squizlabs/php_codesniffer": "1.4.2",
        "phpmd/phpmd": "1.4.0"
    },
    "autoload": {
        "psr-0": {
            "Behat\\Behat": "src/"
        }
    }
}
于 2012-11-23T13:52:32.923 に答える