我有这样的composer.json:
{
"require": {
"symfony/yaml" : "dev-master",
"symfony/console" : "dev-master",
"ebuildy/ebuildy" : "dev-master",
"keboola/php-encryption": "dev-master",
"pear-pear.php.net/mail_mime" : "*",
"pear-pear.php.net/http_request2" : "*",
"pear-pear.php.net/mail_mimedecode" : "*",
"microsoft/windowsazure": "*",
"rollbar/rollbar": "dev-master",
"facebook/php-sdk-v4" : "4.0.*",
"happyr/linkedin-api-client": "dev-master",
"zircote/swagger-php" : "dev-master",
"google/apiclient" : "dev-master"
},
"autoload": {
"psr-0": {
"bizlunch": "src/"
}
},
"minimum-stability": "dev"
}
刚添加“google / apiclient”,我想安装这个新软件包而不检查其他软件包要求(因为在我的开发机器上“keboola / php-encryption”抱怨crypt ext缺失和其他东西)。
什么是正确的命令?尝试已更新PACKAGE,但这失败了:
$root: php composer.phar update google/apiclient
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
- keboola/php-encryption dev-master requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system.
答案 0 :(得分:2)
如果要忽略本地系统的详细信息,可以使用--ignore-platform-reqs
标志。请记住,它可能会在生产中导致无法使用的锁定文件。
让我们在一个假想的场景中展示它:
ext-crypt
,也没有在生产中。 cryptX
包
cryptX:1.0
中使用lib-crypt-polyfill
(这与ext-crypt
使用PHP代码所做的事情一样)cryptX:2.0
中,他们将依存关系更改为ext-crypt
。 现在,如果您要正常安装它,您将获得版本1(这是唯一满足依赖项的版本)。但是使用--ignore-platform-reqs
,它就像在系统中可用的任何东西一样工作。因此,它很高兴安装了版本2,该版本在您的计算机上不起作用,但更重要的是,它在您的生产服务器上也不起作用。
答案 1 :(得分:0)
一样简单
php composer.phar update google/apiclient
或者您可以指定多个单独的包
php composer.phar update google/apiclient zircote/swagger-php rollbar/rollbar