我将 Composer 安装到了 /usr/local/bin,但它不是全局的

我将 Composer 安装到了 /usr/local/bin,但它不是全局的

我正在运行 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 实例是否能解决这个问题?如果没有,那么究竟是什么解决了这个问题,为什么它一开始就不能全局运行?

相关内容