Ошибка package has no installation candidate часто возникает при установке пакетов в системах на базе Debian и Ubuntu. Например, если вы пытаетесь установить htop командой sudo apt install htop, и система сообщает, что «htop has no installation candidate» — это значит, что пакет недоступен для вашей версии системы или не найден в текущих репозиториях.
Почему появляется ошибка «package has no installation candidate»
- Пакет отсутствует в подключённых репозиториях.
- Репозитории устарели, и индекс пакетов не обновлён.
- Используется неверное имя пакета.
- Система устарела, и её репозитории перемещены в архив.
Пошаговое решение (на примере пакета htop)
1. Обновите индекс пакетов
Цель: убедиться, что система знает о последних версиях пакетов.
sudo apt updateКоманда обновит списки пакетов из всех источников. Если появятся ошибки, проверьте URL и доступность зеркал.
2. Проверьте корректность имени пакета
Цель: исключить опечатку или устаревшее название.
apt-cache search htopЕсли в списке нет htop, попробуйте альтернативное название или убедитесь, что репозиторий, где он должен находиться, подключён.
3. Проверьте активные репозитории
Цель: убедиться, что система использует актуальные источники.
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/В файлах должны присутствовать строки с актуальными зеркалами, например для Ubuntu 22.04:
deb http://archive.ubuntu.com/ubuntu jammy main universeЕсли вы видите старую ветку вроде bionic или stretch, система, вероятно, использует устаревшие репозитории.
4. Подключите недостающие репозитории
Цель: добавить источники, где содержится нужный пакет.
sudo add-apt-repository universe
sudo apt updateВ Ubuntu пакет htop находится в репозитории universe. Если команда add-apt-repository отсутствует, установите её:
sudo apt install software-properties-common5. Проверьте версию дистрибутива
Цель: понять, поддерживается ли ваша версия и доступны ли репозитории.
lsb_release -aЕсли система устарела (например, Ubuntu 18.04), официальные зеркала могли быть перенесены. Используйте архивные репозитории:
deb http://old-releases.ubuntu.com/ubuntu bionic main universe6. Очистите кэш и повторите установку
Цель: удалить устаревшие данные и попробовать снова.
sudo apt clean
sudo apt update
sudo apt install htopЕсли пакет найден — установка пройдёт успешно.
7. Проверьте пакет вручную на сайте
Можно вручную убедиться, что пакет существует для вашей версии Ubuntu:
https://packages.ubuntu.com/jammy/htopЕсли пакет отсутствует, значит он не поддерживается для вашего дистрибутива.
Альтернативные методы
Используйте apt-file для поиска пакетов
Если вы не уверены, в каком пакете находится нужный файл:
sudo apt install apt-file
sudo apt-file update
apt-file search bin/htopЭто поможет определить, какой пакет содержит нужный бинарник или библиотеку.
Добавьте PPA или внешний репозиторий (при необходимости)
sudo add-apt-repository ppa:bashtop-monitor/bashtop
sudo apt update
sudo apt install htopИспользуйте PPA только из надёжных источников. Перед добавлением проверьте репутацию и актуальность PPA.
Проверка результата
- Попробуйте установить пакет повторно:
- Проверьте, что пакет установлен:
sudo apt install htopОшибка has no installation candidate должна исчезнуть.
dpkg -l | grep htopЕсли в выводе указана версия и статус ii — установка прошла успешно.
Как избежать ошибки в будущем
- Регулярно обновляйте индексы пакетов:
sudo apt update. - Следите за поддержкой вашей версии Ubuntu или Debian.
- Проверяйте правильность имени пакета перед установкой.
- Используйте только официальные или надёжные репозитории.
FAQ
Что означает «no installation candidate»?
APT не может найти подходящий пакет в доступных репозиториях для вашей версии системы.
Можно ли установить пакет вручную?
Да, скачайте соответствующий .deb с packages.ubuntu.com, но это менее безопасно.
Ошибка осталась после всех шагов?
Скорее всего, пакет не поддерживается для вашей версии — обновите систему или найдите альтернативу.
Смотрите также: Ошибка «Could not get lock /var/lib/dpkg/lock» — как исправить.