Нестабильная версия Debian содержит старую версию пакета, отказывается обновляться, прерывая установку

Мне нужно установить Python-Twisted, так что...

$ sudo aptitude install python-twisted
[[...]]
The following packages have unmet dependencies:
 python-twisted-mail: Depends: python-twisted-core (>= 10.1) but
10.0.0-3 is to be installed.
 python-twisted-news: Depends: python-twisted-core (>= 10.1) but
10.0.0-3 is to be installed.
 python-twisted-words: Depends: python-twisted-core (>= 10.1) but
10.0.0-3 is to be installed.
 python-twisted-names: Depends: python-twisted-core (>= 10.1) but
10.0.0-3 is to be installed.
The following actions will resolve these dependencies:
[[...]]

Ой. Так что он не будет устанавливать Python-Twisted, потому что это зависит от... эй, подождите секунду... Давайте что-нибудь проверим... http://packages.debian.org/sid/python-twisted-core говорит, что последняя версия 10.1.0-1...

$ sudo aptitude update
[[...]]
$ aptitude show python-twisted-core
Package: python-twisted-core
New: yes
State: not installed
Version: 10.0.0-3
Priority: optional
[[...]]
$ apt-cache policy python-twisted-core
python-twisted-core:
  Installed: (none)
  Candidate: 10.0.0-3
  Version table:
     10.0.0-3 0
        500 http://ftp.us.debian.org unstable/main Packages

Да. Так что aptitude по какой-то причине до сих пор считает, что 10.0.0-3 - последняя версия. Что это не так. Зачем? Я на каком-то дерьмовом зеркале или это из-за мошеннических репозиториев?

$ cat /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free

Итак, я на основном зеркале Debian, это был день с момента обновления, так что любая задержка cron должна быть решена сейчас... и она все еще не работает. Я даже пробовал описанное выше на новой установке Debian Unstable, все еще на той же мелодии. Я сейчас официально понятия не имею, что делать. Возможно, люди с ошибками сервера могут помочь.

2 ответа

Решение

На основании результатов apt-cache policy python-twisted-core, apt не видит, что версия 10.1.0-1 существует. Он показывает версию 10.0.0-3 как устанавливаемую из ожидаемого источника.

Просто для справки, проблема может в том, что вы забыли запустить apt-get update (или что-то подобное, такое как aptitude update) или что команда обновления не выполнена по какой-либо причине, например, из-за сетевой ошибки. Но я не думаю, что это случилось с тобой.

Проблема может быть в том, что зеркало не обновлено. Но я проверил, похоже, что он имеет то же содержимое, что и другие зеркала.

Вы не говорите, на какой архитектуре вы находитесь. Я предполагаю, что ваша архитектура еще не имеет более новой версии.

Часто для появления пакета во всех архитектурах требуется несколько дней, поскольку некоторые архитектуры обладают большей вычислительной мощностью для сборки, чем другие. В то время как python-twisted-core не зависит от архитектуры, его исходный пакет - нет. Вы можете увидеть, какие архитектуры имеют какие версии, посмотрев страницу зависимого от архитектуры пакета из того же источника. Я вижу, что на сегодняшний день i386 имеет 10.1.0-1, но amd64 все еще имеет 10.0.0-3. python-twisted-mail из другого пакета, который распространяется быстро, потому что он зависит от архитектуры.

Такого рода беспокойство защищает вас от тестирования. Если вам действительно не нужна более новая версия, есть очень хороший шанс, что захват всех ваших пакетов с искаженным питоном из тестирования решит вашу проблему. Самый простой способ сделать это - добавить тестирование к вашему sources.list (так как тестируемые пакеты являются более старыми, чем пакеты из нестабильных, это не должно изменять то, что устанавливается, кроме случаев, когда вы даете явный запрос), и вручную выбираете версии 10.0.0-3 в интерактивном интерфейсе aptitude.

Настоящая проблема негласно может быть объяснена в соответствующем потоке debian-user:

Спасибо, я вижу. Проблема заключается в том, что пакет с искаженным исходным кодом (который создает бинарный пакет с Python-витой) еще не был загружен на amd64, и хотя Python-Twisted - это арка: весь пакет хранится в старой версии.

Раньше пакет arch: all был синхронизирован по всем аркам, но так как это часто создавало неустановимые возможности, когда foo (arch: any) зависел от foo-common (arch: all) той же исходной версии, а foo еще не была собрана, ftp-мастера изменили это.

В этом случае это имеет нежелательный побочный эффект, так как пакеты из другого исходного пакета зависят от новой версии python-twisted-core, что делает их неустановимыми на amd64.

Так что да. Как и в ответе Жиля, проблема заключалась в том, что пакет не был собран для amd64, но, поскольку основные биты пакета не зависят от платформы, он оказался не в том месте в случайном порядке. Я думаю. Но это не беспокойство, просто сделайте обходной путь, как описано в ответе Жиля, сообщите о своей проблеме в один из списков рассылки debian (например, debian-user), надейтесь, что они слегка озадачивают сообщение об ошибке, и наберитесь терпения. Это тоже пройдет. Особенно в Сиде.

Другие вопросы по тегам