Вопрос или проблема
Иногда apt
/ apt-get
рекомендует дополнительные пакеты:
# sudo apt-get install zangband angband moria endless-sky
[...]
Будут установлены следующие дополнительные пакеты:
angband-data endless-sky-data zangband-data
Предложенные пакеты:
angband-audio angband-bigtiles
Будут установлены следующие НОВЫЕ пакеты:
angband angband-data endless-sky endless-sky-data moria zangband zangband-data
Но попытка их установить чаще всего терпит неудачу:
# sudo apt-get install angband-audio angband-bigtiles
[...]
Пакет angband-audio недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника.
Пакет angband-bigtiles недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника.
E: Пакет 'angband-audio' не имеет кандидата на установку
E: Пакет 'angband-bigtiles' не имеет кандидата на установку
Что здесь происходит?
В некоторых случаях эти пакеты находятся в репозиториях, которые не включены в вашей системе. Именно это происходит с angband-audio
: он находится в non-free в Debian testing и unstable. Если вы не используете testing или unstable с включенным non-free, или не включили эти репозитории, вы не сможете его установить. (В Debian 12 это действительно ошибка в angband
; но она ничего не ломает, поэтому вряд ли будет исправлена там. Это будет исправлено в Debian 13.)
В других случаях это просто ошибка — обычно это старый пакет, который больше не существует или никогда не существовал. Именно это происходит с angband-bigtiles
; кажется, он никогда не был доступен в Debian. Возможно, поддерживающий angband
на тот момент планировал упаковать его, но так и не сделал этого.
В более ранних версиях Debian angband
и angband-audio
были доступны и могли быть установлены; но angband-audio
имел ошибки в более поздних версиях и был удален, без соответствующего обновления метаданных angband
. Упаковка angband
была переработана для Debian 13, и все эти проблемы должны быть исправлены при его выпуске.
Если вы установили эти пакеты в другой среде/распределении, где angband-audio
и angband-bigtiles
были доступны, они бы использовались. Они недоступны в ваших текущих репозиториях.
Проверьте информацию о angband
, которая может подсказать, что делать. Начните с dpkg -L angband
.
Ответ или решение
Почему apt / apt-get рекомендует отсутствующие пакеты?
Системы управления пакетами в Linux, такие как apt
и apt-get
, играют ключевую роль в установке и управлении программным обеспечением. Однако при установке пакетов вы можете столкнуться с ситуацией, когда apt
или apt-get
рекомендуют пакеты, которые недоступны, что может вызывать путаницу и недоумение. Давайте рассмотрим причины, по которым это может происходить.
1. Рекомендации и предложенные пакеты
Когда вы запускаете команду установки, такие как sudo apt-get install zangband angband moria endless-sky
, система сообщает о дополнительных пакетах, которые будут установлены. В данном случае это:
angband-data
endless-sky-data
zangband-data
Эти пакеты являются зависимостями, которые необходимы для корректной работы установленных программ. Однако могут появляться "предложенные" пакеты, такие как angband-audio
и angband-bigtiles
, которые не являются обязательными для работы основной программы.
2. Отсутствие пакетов в активных репозиториях
Одной из распространенных причин, по которой может возникнуть проблема с отсутствующими пакетами, является то, что соответствующие репозитории не включены в вашу систему. В случае с angband-audio
, этот пакет находится в репозиториях non-free
, которые могут быть неактивны в вашем окружении. Чтобы устранить эту проблему, необходимо проверить настройки ваших репозиториев в файле /etc/apt/sources.list
и убедиться, что репозиторий non-free
активен.
3. Устаревшие или поврежденные ссылки на пакеты
Иногда пакеты могут отсутствовать из-за того, что они устарели или были удалены из репозитория без обновления метаданных других пакетов. Например, angband-bigtiles
никогда не существовал в Debian и, следовательно, не может быть установлен, несмотря на то, что angband
упоминает о его существовании. Это может быть следствием недоработки разработчика пакетов или изменения в структуре пакетов со временем.
4. Ошибки в метаданных пакетов
При обновлении и переработке пакетов может случиться так, что метаданные не обновляются должным образом. Это означает, что такие пакеты, как angband-audio
, которые ранее работали в других версиях Debian, могут внезапно стать недоступными в новых релизах из-за изменений в зависимости и структуры пакетов. Это довольно распространенная проблема, особенно если пакет был выдан давно, и актуализация метаданных не была выполнена.
5. Проверка информации о пакетах
Для более детального понимания о том, какие версии пакетов доступны и какие зависимости могут быть у пакетов, полезно выполнять команду dpkg -L angband
, чтобы увидеть, какие файлы и зависимости присутствуют в конкретной установке пакета. Это может помочь вам выяснить, как правильно установить дополнительные функции и возможности.
Заключение
В итоге, apt
и apt-get
могут рекомендовать пакеты, которые отсутствуют, по нескольким причинам: репозитории могут быть неактивны, пакеты могут быть устаревшими, или произошла ошибка в метаданных. Важно следить за актуальностью репозиториев и учитывать возможные изменения при установке пакетов. Проблемы с отсутствующими пакетами могут быть решены, если вы будете следить за обновлениями и документацией, а также проверять настройки системы.