Как понизить версию Composer, PHP и NPM
TL;DR: если вы работаете над различными проектами, для каждого из которых требуются разные версии PHP, Composer и/или NPM, вам может потребоваться изменить версию всех или некоторых перестановок любой из этих утилит.
В этой статье описываются шаги, которые необходимо предпринять для понижения версии Composer, PHP или NPM при работе над любым проектом.
Понизить версию Composer, PHP и NPM
Понижение версии Composer 2 до Composer 1
Последние пару месяцев я без проблем использую Composer 2; однако мне только что нужно было понизить версию Composer для текущего проекта.
Для этого введите в терминале следующую команду:
$ sudo composer self-update --1
Обычно это работает. Если прошло некоторое время с тех пор, как вы делали что-либо подобное, вам может потребоваться обновить свои ключи.
Подтвердить ключи
Команды терминала для обновления этого достаточно просты с точки зрения того, как это сделать, но будет удобно иметь следующий URL-адрес.
Сначала возьмите этот URL: https://composer.github.io/pubkeys.html
.
Затем введите следующую команду:
$ composer self-update --update-keys
Оттуда терминал подскажет, для какого ключа нужно ввести. После этого вы сможете завершить процесс понижения версии.
Понизить версию PHP
Я использую Homebrew для управления различными установками PHP, которые у меня есть. Я работал над проектом, в котором использовался PHP8, но мне нужно было понизить его версию.
Предполагая, что у вас уже есть существующий пакет для версии PHP, которую вы хотите использовать, вы можете использовать одну из предыдущих установленных версий.
Например, у меня /usr/local/Cellar/php@7.3
на локальной машине установлен PHP 7.3.26. Чтобы узнать, какие версии у вас установлены, я делаю что-то вроде этого:
$ ls /usr/local/Cellar/php*
И схема вернет каталоги версий PHP, которые я установил. На момент написания этой статьи у меня было:
/usr/local/Cellar/php
который8.0.3
/usr/local/Cellar/php@7.3
который7.3.27
Чтобы использовать старую версию, мне сначала нужно отключить текущую версию PHP:
$ brew unlink php
А затем создайте ссылку на предыдущую версию:
$ brew link php@7.3 --force --overwrite
И важно использовать имя каталога (например php@7.3
, терминал возвращает выше).
Чтобы убедиться, что это работает, вы должны иметь возможность запустить $ php -v
и увидеть текущую версию.
Понизить NPM
Как и в предыдущих двух пунктах выше, мне нужно было понизить версию пакета, который пришел как информация при запуске npm i
в терминале.
Предполагая, что в предупреждении, ошибке или уведомлении указана нужная вам версия, используйте ее в качестве руководства для того, какую версию следует понизить.
Сначала определите текущую версию, запустив:
$ npm -v
Затем, используя информацию из сообщения в терминале, выполните следующую команду:
$ npm install -g npm@6.13.4
Готово, еще раз проверьте версию, используя ту же команду, что и выше, и она должна совпадать с тем, что вы только что установили.
Не все сразу
Очевидно, что вам может понадобиться изменить все это не одновременно, а по одному. И это не необычно. Этот пост является результатом моей работы над чем-то, от внешнего интерфейса до внутреннего, что потребовало обновления всей среды.
В конечном счете, обновляйте или понижайте версию только того, что вам нужно. Один не требует обновления других.