Lab / DevOPS / Ubuntu Server / VPS

Ubuntu Server: Repository 'ondrej/php' changed its 'Label' value как перейти на packages.sury.org/php?

На сервере с Ubuntu 24 / 22 LTS после выполнения apt update у меня появилось такое сообщение:

Repository 'https://ppa.launchpadcontent.net/ondrej/php/ubuntu noble InRelease' changed its 'Label' value from 'PPA for PHP' to 'Use https://packages.sury.org/php/ instead'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

У меня это вылезло на Ubuntu Server с подключенным ppa:ondrej/php.

Суть проблемы простая: репозиторий PHP PPA от Ondřej Surý теперь рекомендует использовать другой репозиторий https://packages.sury.org/php/ для установки и обновления PHP в вашей системе:

Ниже привожу короткий рабочий вариант, как заменить старый репозиторий на новый.

1. Делаем бэкап apt sources

sudo cp -a /etc/apt/sources.list.d /root/sources.list.d.bak.$(date +%F-%H%M%S)

2. Удаляем старый PPA ondrej/php

sudo add-apt-repository --remove -y ppa:ondrej/php

Если команда выше по какой-то причине отработала с ошибками, можно руками удалить старые .list файлы:

sudo rm -f /etc/apt/sources.list.d/ondrej-ubuntu-php*.list
sudo rm -f /etc/apt/sources.list.d/ondrej-php*.list

3. Добавляем ключ нового репозитория

sudo install -d -m 0755 /etc/apt/keyrings

curl -fsSL https://packages.sury.org/php/apt.gpg \
  | sudo gpg --dearmor -o /etc/apt/keyrings/deb.sury.org-php.gpg

sudo chmod 0644 /etc/apt/keyrings/deb.sury.org-php.gpg

4. Добавляем packages.sury.org/php

Команда сама возьмёт codename текущей Ubuntu, например noble:

. /etc/os-release

echo "deb [signed-by=/etc/apt/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ ${VERSION_CODENAME} main" \
  | sudo tee /etc/apt/sources.list.d/deb-sury-org-php.list

5. Обновляем apt

sudo apt update

6. Проверяем, откуда теперь берётся PHP

Например для PHP 8.4:

apt-cache policy php8.4-cli php8.4-fpm php8.4-common

В выводе должен быть новый источник:

https://packages.sury.org/php

7. Обновляем пакеты

sudo apt upgrade

Перед обновлением можно посмотреть список пакетов:

sudo apt list --upgradable

Быстрый временный вариант

Если нужно просто пропустить предупреждение apt и продолжить обновление текущего репозитория:

sudo apt-get --allow-releaseinfo-change update

Но нормальный вариант для сервера — сразу перейти на новый источник packages.sury.org/php, чтобы дальше PHP-пакеты приходили уже оттуда.