Я установил 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

В нем говорилось, что все настроено правильно, но Composer по-прежнему не запускался глобально, несмотря на то, что я поместил его в /usr/local/bin

Итак, я начал возиться с этим. Я остановил свой экземпляр AWS, а затем снова запустил его, снова запустил указанную выше команду альтернативной установки (composer-setup.php), и теперь composer работает глобально (для ясности: я не пытался запустить composer глобально сразу после перезапуска экземпляра; вместо этого я снова установил его с помощью метода альтернативной установки, а затем попробовал запустить его глобально, и это сработало).

Теперь Composer работает глобально и никаких фатальных ошибок нет.

Есть ли у кого-нибудь гипотеза, почему composer не работал глобально, несмотря на то, что изначально был помещен в /usr/local/bin, но затем, наконец, начал работать глобально? Возможно ли, что остановка и запуск моего экземпляра AWS с Ubuntu решили проблему? Если нет, то что на самом деле решило проблему и почему он изначально не работал глобально?

Связанный контент