Я использую 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 решили проблему? Если нет, то что на самом деле решило проблему и почему он изначально не работал глобально?