エラーログを追っていく。
vagrant@homestead:[該当ディレクトリ ]$ phpunit You need to set up the project dependencies using Composer: composer install You can learn all about Composer on https://getcomposer.org/.
vagrant@homestead:[該当ディレクトリ ]$ composer require phpunit Finished: success: 13, skipped: 0, failure: 0, total: 13 [InvalidArgumentException] Could not find package phpunit. Did you mean one of these? phpunit/phpunit phpunit/php-timer codeception/stub brianium/paratest symfony/phpunit-bridge
そこで、phpunit/phpunitを選択
$ composer require phpunit/phpunit Finished: success: 1, skipped: 0, failure: 0, total: 1 Using version ^8.5 for phpunit/phpunit ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for sebastian/version (locked at 1.0.6) -> satisfiable by sebastian/version[1.0.6]. - phpunit/phpunit 8.5.0 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - phpunit/phpunit 8.5.1 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - phpunit/phpunit 8.5.2 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - Conclusion: don't install sebastian/version 2.0.1 - Installation request for phpunit/phpunit ^8.5 -> satisfiable by phpunit/phpunit[8.5.0, 8.5.1, 8.5.2]. Installation failed, reverting ./composer.json to its original content.
そこで、
$ composer require phpunit/phpunit ^8.5 Finished: success: 3, skipped: 0, failure: 0, total: 3 ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Installation request for sebastian/version (locked at 1.0.6) -> satisfiable by sebastian/version[1.0.6]. - phpunit/phpunit 8.5.0 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - phpunit/phpunit 8.5.1 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - phpunit/phpunit 8.5.2 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - Conclusion: don't install sebastian/version 2.0.1 - Installation request for phpunit/phpunit ^8.5 -> satisfiable by phpunit/phpunit[8.5.0, 8.5.1, 8.5.2]. Installation failed, reverting ./composer.json to its original content.
そこで、
$ composer require sebastian/version Finished: success: 1, skipped: 0, failure: 0, total: 1 Using version ^2.0 for sebastian/version ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - phpunit/php-code-coverage 2.2.4 requires sebastian/version ~1.0 -> satisfiable by sebastian/version[1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6] but these conflict with your requirements or minimum-stability. - phpunit/php-code-coverage 2.2.4 requires sebastian/version ~1.0 -> satisfiable by sebastian/version[1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6] but these conflict with your requirements or minimum-stability. - phpunit/php-code-coverage 2.2.4 requires sebastian/version ~1.0 -> satisfiable by sebastian/version[1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6] but these conflict with your requirements or minimum-stability. - Installation request for phpunit/php-code-coverage (locked at 2.2.4) -> satisfiable by phpunit/php-code-coverage[2.2.4]. Installation failed, reverting ./composer.json to its original content.
phpunit
$ phpunit You need to set up the project dependencies using Composer: composer install You can learn all about Composer on https://getcomposer.org/.
バージョン指定置けるキャレットの理解が曖昧だっったので、
^[version] Caret(キャレット)記号を用いたときです。 major.minor.patchのうち、一番左の0以外の数字のバージョンを更新しないような、更新が可能です。 { "dependencies": { "foo": "^1.1.1", // >=1.1.1 and <2.0.0 "bar": "^0.1.1", // >=0.1.1 and <0.2.0 "hoge": "^0.0.1" // >=0.0.1 and <0.0.2 } }
つまり、phpunit/phpunit ^8.5で出たエラーは、
Problem 1 - Installation request for sebastian/version (locked at 1.0.6) -> satisfiable by sebastian/version[1.0.6]. - phpunit/phpunit 8.5.0 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - phpunit/phpunit 8.5.1 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - phpunit/phpunit 8.5.2 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1]. - Conclusion: don't install sebastian/version 2.0.1 - Installation request for phpunit/phpunit ^8.5 -> satisfiable by phpunit/phpunit[8.5.0, 8.5.1, 8.5.2].
これは
- sebastian/version[1.0.6] のインストールを実行トライ。 - phpunit/phpunit 8.5.0は、sebastian/version 2.0.1以上が必要。 - phpunit/phpunit 8.5.1は、sebastian/version 2.0.1以上が必要。 - phpunit/phpunit 8.5.2は、sebastian/version 2.0.1以上が必要。 - 結果: sebastian/version 2.0.1はインストールしない。 - phpunit/phpunit ^8.5以上のインストールを実行トライ。
composer show [パッケージ名]で確認してみよう
$ composer show sebastian/version name : sebastian/version descrip. : Library that helps with managing the version number of Git-hosted PHP projects keywords : versions : * 1.0.6 type : library license : BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) (OSI approved) https://spdx.org/licenses/BSD-3-Clause.html#licenseText source : [git] https://github.com/sebastianbergmann/version.git 58b3a85e7999757d6ad81c787a1fbf5ff6c628c6 dist : [zip] https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6 58b3a85e7999757d6ad81c787a1fbf5ff6c628c6 path : [仮想環境内] names : sebastian/version
念のため
$ php -v PHP 7.3.9-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Sep 2 2019 12:54:24) ( NTS )