Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Вы пытаетесь установить программу в Ubuntu, а в ответ получаете непонятную ошибку? Знакомая ситуация? Команда `apt install` вдруг выдает угрожающее сообщение "package has no installation candidate", и установка останавливается. Ваш пакетный менеджер словно ослеп и не видит нужную программу.

Не спешите паниковать! Эта ошибка — не приговор, а лишь сигнал, что системе нужна ваша помощь. Чаще всего она возникает, когда вы пытаетесь поставить устаревшее ПО, например, php5 в свежих версиях Ubuntu, или просто ищете что-то очень специфическое.

Мы подготовили для вас пошаговый план, который проведет вас от самых простых решений к более сложным. Вы узнаете, как заставить систему "увидеть" нужный пакет. Мы разберем, как обновить списки пакетов, активировать дополнительные репозитории Canonical и найти рабочие PPA на Launchpad.

А если и это не поможет, у нас есть запасной вариант — ручная установка через `dpkg` с поиском на специальных сайтах-архивах. Мы покажем, как безопасно добавить чужие репозитории, чтобы установить программу, и как потом все "починить", чтобы не сломать систему при следующем обновлении.

Хватит ломать голову над одной строчкой в терминале. Переходите к полной статье и верните контроль над установкой программ в свои руки!


В дистрибутиве Ubuntu и других, основанных на нем дистрибутивах, при установке новых пакетов пользователи могут столкнуться с ошибкой "package has no installation candidate" или по русски "Для пакета не найден кандидат на установку".

Эта ошибка может возникать при установке непопулярных программ или уже устаревших версий. Например, вы получите ее при попытке установить php5 или любой пакет, зависящий от этого в новой версии Ubuntu 16.04 или 16.10. В этой небольшой инструкции мы рассмотрим что означает ошибка "package has no installation candidate", а также как ее обойти и установить нужную программу.


Содержание статьи

Что означает package has no installation candidate?

Фактически, это означает то, что написано. Пакетный менеджер не нашел кандидата на установку для такого пакета. Ошибка будет выглядеть вот так в русской локализации:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Или в английской:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Пакетный менеджер просто не знает где искать такой пакет. Его нет в официальных репозиториях, и нет в репозиториях, подключенных к вашей системе. Все это нам говорит пакетный менеджер:

Пакет php5 недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list

Из этого выплывает несколько способов решения проблемы, которые мы рассмотрим ниже.

Как решить package has no installation candidate?

Для начала нужно обновить списки пакетов из репозиториев, возможно, у вас старая версия системы и для нее этот пакет еще недоступен. Это особенно актуально для бета-версий Ubuntu. Для обновления выполните:

sudo apt update

Затем пробуйте снова установить ваш пакет. Если пакетный менеджер по-прежнему не может его найти, но вы точно знаете что такой пакет должен быть в официальных репозиториях, то, возможно, он есть в репозиториях партнеров Canonical. Нужно их добавить. Для этого откройте Источники программного обеспечения и установите все галочки:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Дальше система автоматически обновит список пакетов:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

После этого можно устанавливать ваш пакет. Если его до сих пор нет мы можем пойти дальше и выполнить поиск по PPA. На сайте launchpad.net есть форма поиска:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Например, будем искать наш php 5. Вводим запрос в форму поиска и в результатах в первой же строке видим PPA, в котором есть нужная версия php. Такое решение подходит для многих пакетов.

На странице PPA мы уже видим способ добавления его в систему:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Например, для добавления этого PPA выполните такие команды:

sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update

После этого вы без труда установите нужный пакет.

Но если пакет не был найден в PPA, то остается только один способ - скачать deb установщик с сайта Ubuntu и установить его вручную. Вы можете скачать пакеты от старых версий ubuntu на сайте packages.ubuntu.com. Но вам нужно будет скачать все зависимости. Тут тоже есть отличная форма поиска:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Было найдено четыре версии, нам нужна последняя, для Trusty:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

На странице кликните по архитектуре, в данном случае all, для загрузки:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Осталось только выбрать зеркало для загрузки и скачать файл:

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

 

Затем установить его с помощью dpkg:

sudo dpkg -i ./php5_5.5.9+dfsg-1ubuntu4.20_all.deb

Но не забудьте, что вам нужны все зависимости. Чтобы не делать это вручную, можно добавить репозиторий этого пакета в /apt/sources.list и заставить пакетный менеджер работать вместо вас. В нашем случае на сайте сказано, что нужно добавить строчку:

deb http://cz.archive.ubuntu.com/ubuntu trusty-updates main

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Можно добавить только ее, но не всегда все зависимости будут находиться только в этом репозитории, так что будет лучше добавить сразу все репозитории нужной версии Ubuntu в этот файл. Например, для версии Trusty нужно добавить такие репозитории:

deb http://cz.archive.ubuntu.com/ubuntu trusty-updates main universe
deb http://security.ubuntu.com/ubuntu trusty-security main universe
deb http://cz.archive.ubuntu.com/ubuntu trusty main universe

Пакет не найден? Решаем ошибку установки в Ubuntu за 5 минут

Не забудьте обновить список пакетов:

sudo apt update

Далее можно установить нужную вам программу:

sudo apt install php5

После завершения, обязательно удалите все новые репозитории иначе при следующем обновлении, они сломают вам систему.

Выводы

В этой небольшой статье мы рассмотрели как исправить ошибку package php5 has no installation candidate, такой же процесс решения подойдет для любого подобного пакета. Если у вас остались вопросы, спрашивайте в комментариях!

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив