#Что означает сообщение
E: Unable to locate package <имя>
«E: Unable to locate package имя» в Ubuntu и Debian значит, что apt не нашёл пакет в известных репозиториях. Причины: не обновлён индекс, пакета нет в вашей версии дистрибутива, не включён нужный репозиторий (universe, multiverse), опечатка в имени.
Решается обновлением списков и проверкой имени через поиск.
apt ищет пакет только в локальных списках, которые заполняются командой apt update из подключённых репозиториев. Если пакета нет в этих списках — вы увидите эту ошибку.
#Причины
- Списки пакетов не обновлялись (свежая система, образ контейнера).
- Опечатка или неверное имя пакета (у пакетов в Debian/Ubuntu свои имена).
- Не включён компонент репозитория (
universe,multiverse) либо пакет есть только в другом выпуске. - Версия системы больше не поддерживается, а репозитории перенесены в архив.
- Неверная архитектура процессора (пакет есть не для всех).
#Способ 1. Обновите списки пакетов
sudo apt update#Способ 2. Проверьте имя пакета
cat /etc/os-releaseapt-cache search --names-only . | head -n 20#Способ 3. Включите компонент universe
Многие популярные программы в Ubuntu находятся в universe. Включите его и обновите списки:
universe к источникам пакетов Ubuntu.sudo apt install software-properties-commonsudo add-apt-repository universesudo apt updateКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Способ 4. Проверьте версию системы и источники
old-releases.ubuntu.com.lsb_release -agrep -rhE "^(deb|Types|URIs|Suites)" /etc/apt/sources.list /etc/apt/sources.list.d/#Как проверить результат
apt-cache policy имя-пакета показывает версию в графе Candidate, а sudo apt install имя-пакета выполняется без ошибки.
#Если не помогло
Проверьте доступ в интернет и работу зеркала (ping archive.ubuntu.com, настройки прокси в /etc/apt/apt.conf.d/). Если пакета нет в вашем выпуске, ищите его в официальном сайте пакета или установите через snap/flatpak, но сначала убедитесь, что это поддерживается разработчиком.
#Пошаговое решение
- Обновите индексОткройте терминал Debian/Ubuntu, выполните
sudo apt updateи введите пароль пользователя с правом sudo. Если видны ошибки404, DNS или отсутствия подписи, сохраните их текст и сначала восстановите нужный репозиторий. При успешном обновлении команда покажет завершение чтения списков пакетов. Тогда повторите поиск имени, а не установку из неизвестного архива. - Проверьте имя пакетаВ выводе команды установки скопируйте точное имя отсутствующего пакета. В терминале выполните
apt-cache search слово, заменив текст в кавычках на уникальное слово из имени, а затемapt-cache policy точное-имяс настоящим именем пакета. Если нет кандидата, проверьте вашу версию ОС (cat /etc/os-release) и доступные для неё официальные репозитории; не добавляйте репозиторий чужого выпуска Debian/Ubuntu. - Включите universeДля Ubuntu с поддерживаемым выпуском пакет может находиться в компоненте
universe. Сначала проверьте, что вы действительно используете Ubuntu командойcat /etc/os-release, затем при необходимости установитеsoftware-properties-commonиз официального репозитория и выполнитеsudo add-apt-repository universe. Послеsudo apt updateповторитеapt policy ИМЯ_ПАКЕТА. На Debian и других дистрибутивах отдельная командаuniverseне применяется; не добавляйте сторонние PPA как первую меру. - Проверьте источникиСначала запишите адрес и имя репозитория из сообщения об ошибке. В Debian/Ubuntu проверьте
/etc/apt/sources.listи файлы/etc/apt/sources.list.d/, в Fedora —/etc/yum.repos.d/, в Arch/Manjaro —/etc/pacman.d/mirrorlist. Сверьте адрес с официальной документацией именно вашей версии Linux, сохраните копию файла конфигурации и меняйте только неисправную запись. Затем обновите метаданные соответствующим менеджером пакетов. - Подключите репозиторий разработчикаЕсли пакет отсутствует в официальных репозиториях вашего выпуска, откройте сайт разработчика и убедитесь, что он предоставляет источник именно для вашего дистрибутива и версии. Проверьте адрес, публичный ключ и полный отпечаток по опубликованной инструкции; используйте отдельный
signed-by, не отключая проверку подписей. На рабочих серверах согласуйте подключение стороннего репозитория с администратором. Не копируйте команды неизвестного сайта, обещающие «исправить apt».
#Обновление индекса и поиск
Выполните sudo apt update, затем найдите пакет: apt-cache search ключевое_слово или apt search ключевое_слово. Проверьте точное имя: оно часто содержит версию (python3-pip, openjdk-17-jdk, php8.2-fpm). Посмотреть доступные версии: apt-cache policy имя.
#Репозитории
Включите universe и multiverse: sudo add-apt-repository universe и sudo add-apt-repository multiverse, затем sudo apt update. Проверьте /etc/apt/sources.list и файлы в /etc/apt/sources.list.d/: версия дистрибутива (lsb_release -cs) должна совпадать с кодовым именем в источниках. Для устаревших релизов (Ubuntu 18.04 и старше) репозитории перенесены на old-releases.ubuntu.com.
#Сторонние пакеты
Если пакета нет в официальных репозиториях (Docker, Node.js, VS Code), добавьте репозиторий разработчика по инструкции на его сайте или скачайте .deb и установите sudo apt install ./файл.deb. Для PHP — , для Node.js — . Проверьте, что включена сеть и работает DNS (ping archive.ubuntu.com).
sudo apt updateapt-cache search keywordlsb_release -cs