Главная >> Инструкции >> Ошибка package has no installation candidate

Ошибка package has no installation candidate

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

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


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

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

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

pack

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

pack1

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

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

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

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

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

sudo apt update

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

pack2

pack3

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

pack4

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

pack5

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

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

pack6

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

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

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

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

pack7

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

pack8

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

pack9

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

pack10

 

Затем установить его с помощью 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

pack11

Можно добавить только ее, но не всегда все зависимости будут находиться только в этом репозитории, так что будет лучше добавить сразу все репозитории нужной версии 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

pack12

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

sudo apt update

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

sudo apt install php5

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

Выводы

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

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