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 はグローバルに動作しており、致命的なエラーは発生していません。

最初は /usr/local/bin に配置されているにもかかわらず、composer がグローバルに実行されなかったが、最終的にグローバルに動作するようになった理由について仮説を持っている人はいますか? Ubuntu で AWS インスタンスを停止して起動することで問題が解決した可能性はありますか? そうでない場合、実際に何が解決し、そもそもなぜグローバルに動作しなかったのですか?

関連情報