#Что означает ошибка
Unable to locate package
Команда apt install имя ищет пакет в списках, загруженных из репозиториев (/etc/apt/sources.list и /etc/apt/sources.list.d/). Если списка нет или в нём нет имени, apt сообщает E: Unable to locate package. Три основные причины: вы не выполнили apt update, пакета нет в подключённых репозиториях, либо имя написано неверно.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не обновлён индексПосле установки системы кэш пакетов пуст. | apt-cache policy имя пусто. | Выполните sudo apt update. |
Нет репозиторияПакет в contrib, non-free или в стороннем репозитории. | В sources.list только main. | Добавьте компоненты или репозиторий. |
| Опечатка в имениНазвание пакета отличается от названия программы. | apt search находит похожее имя. | Найдите точное имя через apt search. |
Другая версия DebianПакет есть в testing, но нет в stable. | На пакет есть в другой версии. | Используйте backports или установите вручную. |
#Пошаговое решение
- Обновите спискиВ Ubuntu, Debian или Linux Mint откройте «Терминал» сочетанием Ctrl+Alt+T и введите
sudo apt update. При запросе введите пароль пользователя (символы не отображаются). Успех — списки получены без строкE:; предупрежденияW:тоже прочитайте. Если ошибка осталась, сохраните адрес репозитория и точную строку сообщения. Команда лишь обновляет сведения о пакетах, не устанавливая их. - Найдите правильное имя пакетаВ терминале Debian проверьте точное написание пакета, затем выполните
apt-cache search ЧАСТЬ_НАЗВАНИЯ, подставив ключевое слово, иapt-cache policy ИМЯ_ПАКЕТА. Если нет кандидата, выполнитеsudo apt updateи проверьте источники нужного выпуска. Не устанавливайте произвольный пакет с похожим названием и не подключайте чужую ветку Debian ради одной программы. - Проверьте источники своего выпуска DebianСначала узнайте установленный выпуск командой
cat /etc/os-release— например, Debian 12 использует имя bookworm, Debian 13 — trixie. Затем просмотрите/etc/apt/sources.listи файлы/etc/apt/sources.list.d/*.sourcesлибо*.list. В.sourcesнайдитеURIs:,Suites:,Components:иSigned-By:; в.list— строкиdeb. Проверьте совпадение выпуска, не копируя универсальную строку для Debian 12 в систему Debian 13. Перед любыми изменениями сохраните копию файла. - Добавьте компонент только если он действительно нуженВ Debian существуют компоненты
main,contrib,non-freeиnon-free-firmware, но для большинства свободных пакетов достаточноmain. По официальному описанию нужного пакета выясните, в каком компоненте он находится. Если компонент отсутствует, исправьте только соответствующую запись собственного выпуска: в файле.sourcesэто полеComponents:, в старом.list— список слов после названия выпуска. После сохранения выполнитеsudo apt update. Не смешивайте строки Debian 12 и 13. - Убедитесь, что пакет существует для вашей версииВыполните
cat /etc/os-release,dpkg --print-architectureиapt-cache policy ИМЯ_ПАКЕТА, заменив последнее на реальное имя из ошибки. Проверьте пакет в официальном каталоге Debian для именно вашего выпуска и архитектуры. Если кандидата нет, не добавляйте репозиторий другого выпуска; найдите поддерживаемую альтернативу. - Используйте backports только если пакет там естьBackports — отдельный, необязательный источник. Сначала проверьте на официальном сайте Debian, существует ли сборка нужного пакета для backports вашего выпуска, и прочитайте условия её установки. Если пакет действительно есть, настройте соответствующий источник своего выпуска по официальной инструкции и выполните пробную проверку зависимостей. Не добавляйте строку
bookworm-backportsв Debian 13 и не включайте backports для всех пакетов без необходимости. - Проверьте архитектуруОткройте терминал и выполните
dpkg --print-architecture, затемdpkg --print-foreign-architectures. Сравните архитектуру (amd64,arm64и т. п.) с доступными сборками выбранного пакета в официальном каталоге Debian. Если пакет существует только для другой архитектуры, не меняйте основную архитектуру системы наугад и не устанавливайте чужой.deb: используйте совместимую сборку или альтернативное ПО. - Диагностические примеры с существующим пакетом curlLinux · Терминал (Bash)КомандаНужен sudoДиагностические примеры с существующим пакетом curl. Для поиска своего пакета подставьте его фактическое имя; ничего не устанавливают.
cat /etc/os-releasedpkg --print-architectureapt search --names-only curlapt-cache policy curl