我將 Composer 安裝到 /usr/local/bin 但它不是全域的

我將 Composer 安裝到 /usr/local/bin 但它不是全域的

我運行的是 Ubuntu 18.04.6 LTS

我需要安裝 Composer 所以我使用以下命令安裝:

sudo apt-get install composer

但這會安裝一個 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 中,但 Composer 仍然沒有在全球範圍內啟動

於是我開始擺弄它。我停止了我的AWS 實例,然後再次啟動它,再次運行上述備用安裝命令(composer-setup.php),現在Composer 在全域範圍內工作(澄清一下:我沒有嘗試在重新啟動實例後立即在全域範圍內部運行Composer;而是安裝了再次使用替代安裝方法,然後嘗試全域運行它並且它起作用了)。

現在 Composer 可以在全球範圍內工作,並且沒有致命錯誤。

有沒有人假設為什麼 Composer 最初被放置在 /usr/local/bin 中但最終開始在全球範圍內工作,但沒有在全球範圍內運行?是否有可能透過 Ubuntu 停止並啟動我的 AWS 執行個體解決了這個問題?如果沒有,那麼到底是什麼解決了這個問題?

相關內容