Composer设置忽略版本匹配的方法

Composer简介php

Composer 是 PHP 的一个依赖管理工具。它容许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每一个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认状况下它不会在全局安装任何东西。所以,这仅仅是一个依赖管理。html

执行composer install遇到错误:Your requirements could not be resolved to an installable set of packages. 这是由于不匹配composer.json要求的版本。nginx

完整错误以下:laravel

?
1
2
3
4
5
6
7
8
9
10
11
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能够设置忽略版本匹配,命令是:json

?
1
composer install --ignore-platform-reqs

or缓存

?
1
composer update --ignore-platform-reqs

再次执行composer命令能够正常安装包了。composer

若是提示警告:工具

?
1
2
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没法缓存下载的包,这样就每次都得从新下载,把目录改为可写可读便可。ui

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

另外,在虚拟机中也设置composer为国内镜像,否则下载速度慢的要死,执行:spa

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

OK,大功告成。

相关文章
相关标签/搜索