Composer設定バージョンマッチングを無視する方法

2392 ワード

Componentoserの概要
ComposerはPHPの依存管理ツールです.プロジェクトが依存しているコードライブラリを明らかにすることができます.プロジェクトにインストールされます.Composerはパッケージマネージャではありません.はい、「packages」と「libraries」に関連していますが、プロジェクトごとに管理され、vendorなどのディレクトリにインストールされます.デフォルトでは、グローバルに何もインストールされません.したがって、これは依存管理にすぎません.
composer installを実行中にエラーが発生しました:Your requirements could not be resolved to an installable set of packages.これはcomposerに合わないからです.jsonが要求するバージョン.
完全なエラーは次のとおりです.

vagrant@homestead:/usr/share/nginx/html/laravel-blog$ sudo composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for doctrine/instantiator 1.0.3 -> satisfiable by doctrine/instantiator[1.0.3].
- doctrine/instantiator 1.0.3 requires php ~5.3 -> your PHP version (7.0.3) does not satisfy that requirement.
Problem 2
- doctrine/instantiator 1.0.3 requires php ~5.3 -> your PHP version (7.0.3) does not satisfy that requirement.
- phpunit/phpunit-mock-objects 2.3.0 requires doctrine/instantiator ~1.0,>=1.0.1 -> satisfiable by doctrine/instantiator[1.0.3].
- Installation request for phpunit/phpunit-mock-objects 2.3.0 -> satisfiable by phpunit/phpunit-mock-objects[2.3.0].

ヒント私のPHP 7バージョンは高すぎてcomposerに合わない.jsonに必要なバージョンですが、PHP 7でも実行できるはずです.composerはバージョンマッチングを無視するように設定できます.コマンドは:

composer install --ignore-platform-reqs

or

composer update --ignore-platform-reqs

コンポーネントコマンドを再実行すると、パッケージが正常にインストールされます.
警告が表示された場合:

Cannot create cache directory /home/vagrant/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /home/vagrant/.composer/cache/files/, or directory is not writable. Proceeding without cache

これは仮想マシンでcomposerを実行し、このディレクトリに書き込み権限がないことを示し、composerはダウンロードしたパッケージをキャッシュできないため、毎回再ダウンロードし、ディレクトリを書き込み可能に変更すればよい.

sudo chmod -R 777 /home/vagrant/.composer/cache/files/

また、仮想マシンにもcomposerを国内ミラーとして設定します.そうしないと、ダウンロード速度が遅くて死にそうになります.

composer config -g repo.packagist composer https://packagist.phpcomposer.com

OK、大成功.