Не удается самостоятельно обновить композитор?

Я пытаюсь обновить композитора без удачи!

Что я пробовал:

$ composer self-update

[InvalidArgumentException]
Команда "самообновление" не определена.

$ sudo -H composer self-update

[InvalidArgumentException]
Команда "самообновление" не определена.

$ sudo apt-get install composer

Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Композитор уже является новейшей версией. Следующие пакеты были автоматически установлены и больше не требуются: libntdb1 linux-headers-4.2.0-30 linux-headers-4.2.0-30-generic linux-image-4.2.0-30-generic linux-image-extra- 4.2.0-30-generic python-ntdb Используйте 'apt-get autoremove', чтобы удалить их. 0 обновлено, 0 недавно установлено, 0 для удаления и 10 не обновлено.

Я пытаюсь самостоятельно обновить композитора, потому что каждый раз, когда я пытаюсь:

$ composer update

Загрузка в репозитории composer информации о пакете Обновление зависимостей (включая require-dev) [RuntimeException]
Не удалось загрузить пакет rmrevin/yii2-fontawesome в http://packagist.org: [UnexpectedValueException] Не удалось проанализировать ограничение версии v4.1.: Неверная строка версии "v4.1."
[UnexpectedValueException]
Не удалось проанализировать ограничение версии v4.1.: недопустимая строка версии "v4.1."

Любые идеи о том, как решить эту проблему?

Моя версия PHP:

php --version

PHP 5.6.11-1ubuntu3.4 (cli) Copyright (c) 1997-2015 PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies с Zend OPcache v7.0.6-dev, Copyright (c) 1999 -2015, от Zend Technologies

Моя версия для композитора:

composer --version

Версия Composer @package_branch_alias_version @(@package_version @) @release_date @

Ответ 1

В соответствии с комментарием @JimL я смог самостоятельно обновить композитор:

  • Удаление Composer из диспетчера пакетов (apt).
  • Я установил его в соответствии с официальной документацией

Теперь он работает так, как ожидалось.

Ответ 2

Как сказал @Waqleh, вам нужно удалить composer и установить его снова. Сначала выполните:

sudo apt-get remove composer

Затем выполните эти команды (с https://getcomposer.org/download/):

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Теперь переместите composer.phar в каталог, который находится на вашем пути (например, https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx):

sudo mv composer.phar /usr/local/bin/composer

И запустите composer из любого каталога. Все это!

PS: если вы используете PHPStorm (или, возможно, другие IDE), вам придется закрыть его и открыть снова.

Ответ 3

установите последнюю версию:

удалить композитора: например, Ubuntu/Debian:

sudo apt-get remove composer

руководство по установке:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

по прошествии некоторого времени вы можете обновить, и вам не нужно использовать префикс sudo :

composer self-update

Ответ 4

sudo chown -R your_user_name /home/your_user_name/

sudo apt-get remove composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php
php -r "unlink('composer-setup.php');"


sudo mv composer.phar /usr/bin/composer

И это работает.