我们正尝试通过Composer安装google / recaptcha 1.1软件包,为了进行安装,Composer要求我们安装phpdocumentor软件包,但是在运行时
# composer require --dev phpdocumentor / phpdocumentor dev-master
以前,在当前状态下,Composer向我们表明nikic / php-parser软件包存在问题,我们发现该软件包已在文件composer.lock中列出,并删除了该软件包,但是现在composer相对于软件包symfony给出了此错误/ console v4.1.1也已在composer.lock文件中列出,我们也尝试从composer.lock中删除此依赖项,但是我不确定通过消除这些依赖项是否可以正确执行操作。因为除了删除另一个错误外,另一个软件包还显示了错误,如果我们继续这样操作,最终将消除许多依赖关系。请帮忙!
答案 0 :(得分:1)
不要手动从composer.lock中删除内容
当您需要不通过特定版本(例如dev-master或^ 1)的软件包时,composer会下载符合composer.json的最新版本,并将这些版本记录在composer.lock上。
composer.lock只是作曲家安装的副产品
如果您手动编辑composer.lock,则基本上是在弄乱composers的内部结构。
删除软件包的正确方法是运行composer remove vendor/package
或从 composer.json 中手动将其删除,然后运行composer update
composer.lock是神圣的,请不要触摸它。
现在您已触摸它,并且想要拧开自己,所以:
rm composer.lock
composer install
composer require --dev phpdocumentor/phpdocumentor dev-master
相同的结果,不同的方法:
rm composer.lock
composer install
答案 1 :(得分:0)
您要安装的PhpDocumentor需要phpDocumentor/Reflection
,而后者需要nikic/php-parser
,并且此版本对于您的其他依赖项来说过高。
使用composer depends nikic/php-parser
来了解问题所在。