Composer简介

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

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

完整错误如下:

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可以设置忽略版本匹配,命令是:

1
composer install --ignore-platform-reqs

or

1
composer update --ignore-platform-reqs

再次执行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无法缓存下载的包,这样就每次都得重新下载,把目录改成可写可读即可。

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

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

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

OK,大功告成。

最新文章

  1. win10下vs2015创建asp,net core项目并运行在ubuntu14.04下
  2. Python % 格式化字符串
  3. HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447
  4. Android开发--微信布局(ListView)基本运用
  5. Android view 的事件分发机制
  6. 通过js实时检测文本框内容
  7. 计数方法,博弈论(扫描线,树形SG):HDU 5299 Circles Game
  8. inet address example(socket)
  9. Oracle Client: TNS: Connect timeout ocurred.
  10. AES加密 C++调用Crypto++加密库 样例
  11. Cassandra issue - "The clustering keys ordering is wrong for @EmbeddedId"
  12. pig的内置函数小总结(不全)
  13. Effective C++ 读书笔记(13-32)
  14. Xamarin 学习笔记 - Page(页面)
  15. flask登录插件 flask-login
  16. Multi-Targeting and Porting a .NET Library to .NET Core 2.0
  17. this guy gonna be a daddy
  18. MT【21】任意基底下的距离公式
  19. mysql中float、double、decimal三种类型,以及数值产生误差的原因
  20. Java 实现两个整数变量的交换

热门文章

  1. AOP设计思想_开发流程
  2. (40) Aeroo 服务安装
  3. linux文件复制与权限赋值
  4. Hash哈希类型
  5. VaildForm 自定义提示消息
  6. 学习swift开源项目
  7. [转]Web3.0时代,企业知识管理新趋势
  8. 用dbforge调试procedure
  9. php变量函数,回调函数
  10. HttpURLConnection发送和接受返回值