web-dev-qa-db-ja.com

ロックファイルは、composer.jsonの最新の変更で最新ではありません

Githubリポジトリのクローンを作成し、そこにcomposer installを発行しようとしています。しかし、私はこれを取得しています:

警告:ロックファイルは、composer.jsonの最新の変更で最新ではありません。古い依存関係が発生している可能性があります。それらを更新するには、updateを実行します。

Your requirements could not be resolved to an installable set of packages.  
  Problem 1  
    - Conclusion: remove symfony/polyfill-intl-icu v1.9.0  
    - Installation request for symfony/polyfill-intl-icu v1.9.0 -> satisfiable by symfony/polyfill-intl-icu[v1.9.0].  
    - Conclusion: remove symfony/process v3.4.15  
    - symfony/polyfill-intl-icu v1.9.0 requires symfony/intl ~2.3|~3.0|~4.0 -> satisfiable by symfony/symfony[v4.0.0].  
    - don't install symfony/process v3.4.15|remove symfony/symfony v4.0.0  
    - don't install symfony/symfony v4.0.0|don't install symfony/process v3.4.15  
    - Installation request for symfony/process v3.4.15 -> satisfiable by symfony/process[v3.4.15].  

composer updateを実行している場合

Problem 1
- Conclusion: don't install symfony/symfony v4.1.7
- Conclusion: don't install symfony/symfony v4.1.6
- Conclusion: don't install symfony/symfony v4.1.5
- Conclusion: don't install symfony/symfony v4.1.4
- Conclusion: don't install symfony/symfony v4.1.3
- Conclusion: don't install symfony/symfony v4.1.2
- Conclusion: don't install symfony/symfony v4.1.1
- Conclusion: don't install symfony/symfony v4.1.0
- Conclusion: don't install symfony/symfony v4.0.14
- Conclusion: don't install symfony/symfony v4.0.13
- Conclusion: don't install symfony/symfony v4.0.12
- Conclusion: don't install symfony/symfony v4.0.11
- Conclusion: don't install symfony/symfony v4.0.10
- Conclusion: don't install symfony/symfony v4.0.9
- Conclusion: don't install symfony/symfony v4.0.8
- Conclusion: don't install symfony/symfony v4.0.7
- Conclusion: don't install symfony/symfony v4.0.6
- Conclusion: don't install symfony/symfony v4.0.5
- Conclusion: don't install symfony/symfony v4.0.4
- Conclusion: don't install symfony/symfony v4.0.3
- Conclusion: don't install symfony/symfony v4.0.2
- Conclusion: don't install symfony/symfony v4.0.1
- Conclusion: remove symfony/symfony v4.0.0
- don't install symfony/symfony v4.0.0|remove symfony/process v3.4.15
- don't install symfony/process v3.3.0|don't install symfony/symfony v4.0.0

composer.json(セクションが必要)

"require": {
    "php": ">=7.1",
    "symfony/symfony": "~4.0",
    "symfony/process": "^3.3",
    "doctrine/orm": "dev-fork as 2.5.6",
    "doctrine/doctrine-bundle": "1.*",
    "symfony/swiftmailer-bundle": "~3.1",
    "symfony/monolog-bundle": "~3.1",
    "sensio/framework-extra-bundle": "^5.1",
    "graylog2/gelf-php": "^1.4",
    "doctrine/doctrine-migrations-bundle": "^1.1",
    "awt/webauth-bundle": "3.0.*",
    "awt/canvas-client-bundle": "6.2.*"
}
3
user6313136

composerでdependsprohibitsを使用して、正確に何をすべきかを確認できます。

composer depends symfony/process 3.4.15

そして

composer prohibits symfony/symfony 4

この2つのコマンドは、競合とは何か、および何をすべきかを示します。

主な問題は、composer.jsoncomposer.lockが同期していないことです。最初のファイルはcomposer必要なパッケージとそのバージョンの制約を示し、2番目のファイルは一貫性を保つために共同編集者間でまったく同じパッケージバージョンを共有します。

リポジトリの所有者がこの問題を解決できない場合は、次の方法しかありません。

rm composer.lock
rm -rf vendor
composer install

これにより、ベンダーディレクトリの内容が削除され、composer.jsonに従って、すべての依存関係のフレッシュコピーがインストールされます。

2
Pmpr