Bug 24044

Summary: Не работает --reinstall, если в репозитории старее версия, чем в системе
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: aptAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: boyarsh, glebfm, imz, ldv, placeholder, rider
Version: unstable   
Hardware: all   
OS: Linux   

Description Anton Farygin 2010-09-08 21:09:03 MSD
# apt-get install --reinstall pm-utils
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Переустановить pm-utils невозможно, потому что этот пакет нельзя скачать.
0 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 305 не будет обновлено.

При этом pm-utils доступен в репозитории, репозиторий подключен по NFS.

если сделать так, то всё устанавливается:
# rpm -e --nodeps pm-utils
# apt-get install -f
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Исправление зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  pm-utils
Следующие НОВЫЕ пакеты будут установлены:
  pm-utils
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 305 не будет обновлено.
Необходимо получить 0B/45,4kB архивов.
После распаковки потребуется дополнительно 98,3kB дискового пространства.
Продолжить? [Y/n] 
Совершаем изменения...  
Preparing...                 ########################################### [100%]
1: pm-utils                  ########################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
Comment 1 Dmitry V. Levin 2010-09-08 21:12:54 MSD
--reinstall
    Re-Install packages that are already installed and at the newest version.

Из этого описания мне кажется, что reinstall просто не предназначен для состаривания пакетов.
Comment 2 Anton Farygin 2010-09-08 21:49:10 MSD
может быть и так, но я точно помню, что раньше эта функция работала - я ей пользовался.
Comment 3 Sir Raorn 2010-09-09 00:33:10 MSD
cmdline/apt-get.cc:


1490      if (Pkg->CurrentVer == 0 || Pkg.CurrentVer().Downloadable() == false)
1491         ioprintf(c1out,_("Reinstallation of %s is not possible, it cannot be downloaded.\n"),
1492              Pkg.Name());

Т.о. переустановить можно только тот же самый пакет, с теми же %name-%version-%release, а не только %name.
Comment 4 Anton Farygin 2011-02-13 13:38:39 MSK
Сообщение могло бы быть более информативным, а reinstall можно сделать более правильным - для любой версии и релиза.

Дима, что ты думаешь по этому поводу ?
Comment 5 Repository Robot 2011-02-13 16:50:10 MSK
apt-0.5.15lorg2-alt38 -> sisyphus:

* Sun Feb 13 2011 Dmitry V. Levin <ldv@altlinux> 0.5.15lorg2-alt38
- Enhanced ReInstall error diagnostics (closes: #24044).