Вопрос или проблема
Я только что обновился с 22.04 до 24.04, и когда я запустил ap update, я получил следующие ошибки.
Ign:1 https://ppa.launchpadcontent.net/nginx/stable/ubuntu noble InRelease
Err:2 https://ppa.launchpadcontent.net/nginx/stable/ubuntu noble Release
404 Not Found [IP: 185.125.190.80 443]
........
Reading package lists... Done
E: The repository 'https://ppa.launchpadcontent.net/nginx/stable/ubuntu noble Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Как я могу получить обновленную версию репозитория NGINX?
PPA NGINX больше не используются для 22.04 или 24.04. Конфигурация стала слишком сложной из-за Debian. На данный момент, если вам обязательно нужна последняя версия NGINX, вы должны следовать официальным инструкциям NGINX по использованию их репозиториев.
Официальные инструкции NGINX, приведенные выше, используют традиционный стиль списка apt, однако в 24.04 и позже файлы sources
DEB822 проще для чтения и понимания. Поэтому я адаптирую официальные инструкции NGINX здесь для использования DEB822.
-
Установите все необходимые пакеты.
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
-
Скачайте и сохраните официальный ключ подписи NGINX, чтобы apt мог проверять пакеты.
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /etc/apt/keyrings/nginx-archive-keyring.gpg >/dev/null
-
Убедитесь, что этот файл содержит ключ с отпечатком
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
:gpg --dry-run --quiet --no-keyring --import --import-options import-show /etc/apt/keyrings/nginx-archive-keyring.gpg
-
Создайте файл
/etc/apt/sources.list.d/nginx.sources
со следующим содержимым. Вместо{SUITE}
ниже замените его на выводlsb_release -cs
:Types: deb URIs: http://nginx.org/packages/ubuntu Suites: {SUITE} Components: nginx Architectures: amd64 Signed-By: /etc/apt/keyrings/nginx-archive-keyring.gpg
Вам не нужно следовать ‘apt pinning’, который рекомендует документация NGINX на данный момент.
- Запустите
sudo apt update && sudo apt install nginx
, чтобы обновить источники репозиториев и установить NGINX из upstream-репозиториев.
Ответ или решение
Обновление операционной системы часто сопровождается переменами в управлении репозиториями и установке пакетов. В случае с Ubuntu 24.04 Noble, вы столкнулись с проблемой отсутствия файла Release для репозитория NGINX PPA. Это происходит потому, что официальные PPA NGINX больше не поддерживаются для новой версии Ubuntu, в том числе 24.04. Исторически использовавшиеся PPA обеспечивали удобный способ получения обновлений для NGINX, однако с развитием дистрибутивов Linux и изменением потребностей пользователей, подход изменился. Поэтому, в данной ситуации имеет смысл обратиться к официальным инструкциям NGINX для использования их репозиториев.
Теория (Theory): Репозиторий PPA (Personal Package Archive) создается для упрощения распространения и обновления определенного программного обеспечения на различных версиях Ubuntu. Однако, использование PPA может нести в себе определенные риски, такие как возможные проблемы с безопасностью или совместимостью. Стандартный подход к установке программ через официальные репозитории Ubuntu более надежен, так как пакетное ПО подвергается тщательной проверке.
Пример (Example): В вашем случае, после обновления до Ubuntu 24.04, старый PPA NGINX больше не доступен. При попытке обновления командой apt update
система сообщает об ошибке 404 и отсутствии файла Release. Это свидетельствует о том, что URL-адрес репозитория больше не активен или не поддерживается для вашей версии дистрибутива. Это может привести к проблемам с безопасностью и стабильностью системы, так как PPA, который не поддерживается, может содержать устаревшее ПО, не подлежащее обновлению.
Применение (Application): Чтобы исправить проблему и получить последнюю версию NGINX, необходимо следовать официальным инструкциям NGINX для установки из их репозиториев. Предоставленные инструкции подойдут для использования системного формата DEB822, который более удобен для чтения. Вот шаги, которые стоит предпринять:
-
Установите все необходимые зависимости, чтобы обеспечить работу
apt
с новыми репозиториями:sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
-
Скачайте и сохраните официальный ключ подписи NGINX, который обеспечивает проверку подлинности пакетов:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /etc/apt/keyrings/nginx-archive-keyring.gpg >/dev/null
-
Убедитесь, что ключ импортирован корректно, сравнив его отпечаток:
gpg --dry-run --quiet --no-keyring --import --import-options import-show /etc/apt/keyrings/nginx-archive-keyring.gpg # Отпечаток должен быть: 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
-
Создайте файл
/etc/apt/sources.list.d/nginx.sources
со следующим содержимым, заменив{SUITE}
на текущий код вашего дистрибутива через командуlsb_release -cs
:Types: deb URIs: http://nginx.org/packages/ubuntu Suites: {SUITE} Components: nginx Architectures: amd64 Signed-By: /etc/apt/keyrings/nginx-archive-keyring.gpg
-
Затем выполните команду обновления и установки NGINX из нового репозитория:
sudo apt update && sudo apt install nginx
Эти шаги позволят вам получить актуальное обновление NGINX, обеспечивая актуальность и безопасность пакетов. Используя большей частью официальные репозитории, вы минимизируете риски и готовы к дальнейшему использованию более безопасного и управляемого метода управления пакетами в вашей системе Ubuntu 24.04.