Почему apt / apt-get рекомендует отсутствующие пакеты?

Вопрос или проблема

Иногда 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 могут рекомендовать пакеты, которые отсутствуют, по нескольким причинам: репозитории могут быть неактивны, пакеты могут быть устаревшими, или произошла ошибка в метаданных. Важно следить за актуальностью репозиториев и учитывать возможные изменения при установке пакетов. Проблемы с отсутствующими пакетами могут быть решены, если вы будете следить за обновлениями и документацией, а также проверять настройки системы.

Оцените материал
Добавить комментарий

Капча загружается...