Реагирует ли сборочница на переименование пакетов
(перенаправлено с «Girar does not delete obsoleted pkgs»)
Иногда зарождался у кого-нибудь[1][2] миф (не находивший подтверждения), что, увидев сочетание Provides&Obsoletes, обозначающее переименование пакетов, сборочница girar сама удалит старый пакет.
at@:
Это миф. Пакеты автоматически ставятся на удаление только при пересечении имен (чтобы в репозитории не оказалось двух пакетов с одним именем). Да и то, это было сделано только потому, что на начальном этапе не было команды del. С командой del эта возможность уже выглядит немножко избыточной и немножко опасной. По-моему, лучше бы было, если бы сборщик осознавал и явно запрашивал удаление.
Вот эксперименты (в репозитории пакетов p8), показавшие что автоматического удаления не произойдёт. С пакетом с новым именем python-module-ansible-augeas:
Provides: ansible-augeas = %EVR Obsoletes: ansible-augeas
- Пакет со старым именем на момент эксперимента имелся -- #171873 p8 EPERM del=ansible-augeas:
2016-Nov-03 16:13:00 :: plan: src +0 -1 =17452, noarch +0 -1 =17082
- Сборка пакета с новым именем с указанием EVR только на Provides (как выше и в примере в ALT Packaging HOWTO) не удаляет старый -- #171899 p8 EPERM python-module-ansible-augeas.git=0.0.1-alt3.M80P.3:
2016-Nov-04 19:05:34 :: plan: src +1 -1 =17453, noarch +1 -1 =17083
- Сборка пакета с новым именем с указанием EVR на Provides и Obsoletes не удаляет старый -- #171896 p8 EPERM (try 2) python-module-ansible-augeas.git=0.0.1-alt3.M80P.2:
2016-Nov-04 16:11:04 :: plan: src +1 -1 =17453, noarch +1 -1 =17083
- Сборка пакета с новым именем без указания EVR на Provides и Obsoletes не удаляет старый -- #171895 p8 EPERM python-module-ansible-augeas.git=0.0.1-alt3.M80P.1:
2016-Nov-04 16:00:20 :: plan: src +1 -1 =17453, noarch +1 -1 =17083
- Копирование пакета с новым именем (без указания EVR на Provides и Obsoletes) не удаляет старый -- #171876 p8 EPERM (try 2) copy=python-module-ansible-augeas:
2016-Nov-03 16:37:48 :: plan: src +1 -1 =17453, noarch +1 -1 =17083