Для пользователя Ubuntu (или другого дистрибутива с управлением пакетами apt) весьма характерно возникновение ошибки:
user@box ~ $ sudo apt-get install x
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package x is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'x' has no installation candidate
Было задано несколько вопросов по этому поводу на различных сайтах StackExchange, например openvpn в AskUbuntu, но обычно они о том, как получить конкретный пакет, несмотря на ошибку.
Я не нашел ни одного пакета, который не был бы найден просто (хотя и не всегда легко) путем определения, распространяется ли он по-прежнему, и в каком репозитории, если это так, и обеспечения того, что репозиторий находится в apt.sources, или худший вариант худшая загрузка .deb или источника для компиляции.
Итак, мой вопрос носит более общий характер, и, хотя я предполагаю, что у него довольно простой и, следовательно, неинтересный ответ, я не могу придумать, как его найти обычными методами поисковой системы, поэтому я перехожу к AskUbuntu: команда или опция, которую я могу использовать, чтобы определить, какой пакет / какие пакеты ссылаются на отсутствующий пакет?
Вы можете искать пакет с помощью apt-cache:
apt-cache search x
Это выведет все пакеты, которые так или иначе ссылаются на x.
Иногда это происходит из-за того, что APT просто ничего не знает о том, о чем вы говорите, но это можно решить, выполнив:
apt-get update
После запуска обычно ошибка исчезает, потому что apt
и apt-get
знают, как делать то, что я сейчас спрашиваю.