Bug 44062

Summary: Aptitude не учитывает содержимое файлов из /etc/apt/preferences.d/, задающих pin настройки
Product: Sisyphus Reporter: Nikolay Strelkov <nrbrtx>
Component: aptitudeAssignee: Gleb F-Malinovskiy <glebfm>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: aen, glebfm, golubevan, viy
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Pin не учтен в Aptitude, применен в apt-get none

Description Nikolay Strelkov 2022-10-17 21:59:44 MSK
Created attachment 11704 [details]
Pin не учтен в Aptitude, применен в apt-get

По некоторым причинам мне необходимо использовать старую версию программы Meld, соответственно я замораживаю ее версию с помощью файла в `/etc/apt/preferences.d/`:

```
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-meld
Package: meld
Pin: version 1.5.3-alt1.repacked.with.epm.2
Pin-Priority: 1001
EOF
```

Для консольного `apt-get` это действие срабатывает и `apt-cache policy meld` дает ожидаемый вывод:

```
$ apt-cache policy meld
meld:
  Installed: 1.5.3-alt1.repacked.with.epm.2@1666031185
  Candidate: 1.5.3-alt1.repacked.with.epm.2@1666031185
  Package Pin: 1.5.3-alt1.repacked.with.epm.2@1666031185
  Version Table:
     3.20.4-alt1:p10+284327.6300.7.1@1632414455 0
        500 http://mirror.yandex.ru p10/branch/noarch/classic pkglist
 *** 1.5.3-alt1.repacked.with.epm.2@1666031185 1001
        100 RPM Database
```

Однако при запуске Aptitude, пакет Meld имеет статус "Upgradable packages", т.е. будет обновлен при нажатии "Install/remove packages" (или <g>, <g>). Получается, что файлы настроек из `/etc/apt/preferences.d/` программа Aptitude игнорирует.

Пожалуйста, сделайте в ALT так, чтобы Aptitude читал настройки из файлов в `/etc/apt/preferences.d/` и учитывал их при построении списка пакетов для обновления.

Баг немного похож на https://bugzilla.altlinux.org/43442 с Synaptic, но там явно другие внутренние механизмы.
Comment 1 Anton Golubev 2023-01-20 09:24:45 MSK
Присоединяюсь, в моём случае "закреплены" все бинарные пакеты vim в локальном репозитории vimrepo/x86_64/hasher:

$ apt-cache policy
Файлы пакетов:
 100 RPM Database
1001 file: vimrepo/x86_64/hasher pkglist
     release v=Unknown,o=Unknown,a=Unknown,l=Unknown,c=hasher
 500 http://10.88.5.62 Sisyphus/x86_64-i586/classic pkglist
     release v=1674137625,o=ALT Linux Team,a=ALT Linux Sisyphus,l=Sisyphus,c=classic
     origin 10.88.5.62
 500 http://10.88.5.62 Sisyphus/noarch/classic pkglist
     release v=1674168218,o=ALT Linux Team,a=ALT Linux Sisyphus,l=Sisyphus,c=classic
     origin 10.88.5.62
 500 http://10.88.5.62 Sisyphus/x86_64/debuginfo pkglist
     release v=1674154069,o=ALT Linux Team,a=ALT Linux Sisyphus,l=Sisyphus,c=debuginfo
     origin 10.88.5.62
 500 http://10.88.5.62 Sisyphus/x86_64/classic pkglist
     release v=1674154069,o=ALT Linux Team,a=ALT Linux Sisyphus,l=Sisyphus,c=classic
     origin 10.88.5.62

# apt-get dist-upgrade
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Подсчет обновлений... Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
  apt-repo firmware-linux
2 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.

# aptitude safe-upgrade
Reading Package Lists... Done
Building Dependency Tree
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Done
Следующие пакеты будут обновлены:
  apt-repo firmware-linux vim-X11 vim-X11-gtk3 vim-common vim-console vim-enhanced vim-minimal xxd
9 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.

Видно, что поведение aptitude отличается от apt-get тем, что программа игнорирует приоритет репозитория.