Версия PHP по умолчанию на Ubuntu Server 20.04 — 7.4.3, я хочу обновить ее до 7.4.30. Я добавил ppa:ondrej/php в репозиторий apt, но apt upgrade показывает, что он обновит PHP до 8.1. Как мне сообщить apt, что я не хочу переходить на PHP 8?
решение1
вкратце:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
Полное объяснение:
Поскольку вы уже добавили репозиторий ppa:ondrej/php
(через sudo add-apt-repository ppa:ondrej/php
), вы можете использовать его apt-cache
для вывода списка доступных версий, которые можно установить, а затем apt install
установить конкретную версию.
Инструмент apt
использует псевдонимы для упрощения установки популярных приложений. Как вы нечаянно обнаружили, apt install php
теперь является псевдонимом для apt install php8.1
. Репозиторий ondrej/php добавляет пакеты для php8.1
, php8.0
, и php7.4
, а также добавляет псевдоним для , php
указывающий на php8.1
.
Поскольку вы хотите установить php 7.4.30, вам нужно будет явно включить номер версии в apt install
команду. apt-cache
Команда выведет список всех доступных версий. Я предпочитаю использовать , apt-cache madison
потому что мне проще читать вывод, чем apt-cache showpkg
или apt-cache policy
, но любая из этих команд предоставит вам необходимую информацию — используйте любую предпочтительную команду.
apt-cache madison php7.4
вернет что-то вроде этого:
php7.4 | 1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1 | http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages
php7.4 | 7.4.3-4ubuntu2.12 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
php7.4 | 7.4.3-4ubuntu2.12 | http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
php7.4 | 7.4.3-4ubuntu1 | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
Столбцы организованы следующим образом:
<package name> | <version> | <repository>
apt
поддерживает установку определенной версии пакета с использованием необязательного package=version
синтаксиса. В этом случае желаемая версия — 1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
, которая находится в репозитории ondrej/php.
Собираем все вместе:
sudo apt install php7.4=1:7.4.30-5+ubuntu20.04.1+deb.sury.org+1
решение2
Разработчики Ubuntu включают исправления ошибок и обновления безопасности в официальные пакеты. Они сохраняют основную версию. Поэтому нет необходимости обновляться до младших релизов upstream.
Вы можете видеть, что в Ubuntu 20.04 установлена 7.4.3-4ubuntu2.12
версия PHP.
Вы можете обратиться кЖурнал изменений
Это частая ошибка — искать такого рода «улучшения».