我正在运行 Ubuntu 18.04.6 LTS
我需要安装 Composer,因此我使用以下命令进行安装:
sudo apt-get install composer
但这会安装一个版本的作曲家,当我使用它时会出现以下错误:
Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named par ameters in /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php:205 ubuntu
作曲家的 github 注释表明这个错误已经修复,但是我一直遇到它,而没有在网上找到任何真正的解决方案。
所以我卸载了:
sudo apt-get purge --auto-remove composer
我最终通过使用以下替代方法进行安装解决了该问题:
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
它说一切都设置正确,但尽管我把它放在 /usr/local/bin 中,作曲家仍然无法在全球范围内启动
所以我开始摆弄它。我停止了我的 AWS 实例,然后重新启动它,再次运行上述备用安装命令 (composer-setup.php),现在 composer 可以全局运行了(澄清一下:我没有在重新启动实例后立即尝试全局运行 composer;而是使用备用安装方法再次安装,然后尝试全局运行它,它成功了)。
现在作曲家在全球范围内工作并且没有致命错误。
有没有人能假设为什么 composer 最初放在 /usr/local/bin 中却无法全局运行,但最后却开始全局运行?停止并启动我的 Ubuntu AWS 实例是否能解决这个问题?如果没有,那么究竟是什么解决了这个问题,为什么它一开始就不能全局运行?