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が要求するバージョン.
完全なエラーは次のとおりです.
ヒント私のPHP 7バージョンは高すぎてcomposerに合わない.jsonに必要なバージョンですが、PHP 7でも実行できるはずです.composerはバージョンマッチングを無視するように設定できます.コマンドは:
or
コンポーネントコマンドを再実行すると、パッケージが正常にインストールされます.
警告が表示された場合:
これは仮想マシンでcomposerを実行し、このディレクトリに書き込み権限がないことを示し、composerはダウンロードしたパッケージをキャッシュできないため、毎回再ダウンロードし、ディレクトリを書き込み可能に変更すればよい.
また、仮想マシンにもcomposerを国内ミラーとして設定します.そうしないと、ダウンロード速度が遅くて死にそうになります.
OK、大成功.
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、大成功.