Для пользователя 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-get install libtinfo6
отчеты недоступны, но ссылаются на другой пакет, но неapt-cache search libtinfo6
дают результатов. Есть ли другой способ сделать подобное?terminfo
в следующий раз, когда это произойдет; это случилось раньше, и, скорее всего, это случится снова.Иногда это происходит потому, что APT просто ничего не знает о том, о чем вы говорите, но это можно решить, выполнив:
После выполнения этого, как правило , ошибка уходит , потому
apt
иapt-get
знают , как делать то , что я спрашиваю прямо сейчас.источник
apt-get update
следует,apt-get upgrade -y
потому что-y
обходит подтверждение пользователя. Нет смысла использовать его сapt-get update
. Тем не менее, это не отвечает на вопрос, вообще.apt-get update
.apt-get update
отвечает на вопрос AB (пакет существует в репо , ноapt-get install
иapt-cache
не знают об этом.)sudo apt-get update
свободен от споров и был правильным решением для меня.