<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>36421</bug_id>
          
          <creation_ts>2019-03-26 10:59:31 +0300</creation_ts>
          <short_desc>apt-get install --reinstall не может переустановить установленный пакет при совпадении provides и conflicts или obsoletes и имени пакета</short_desc>
          <delta_ts>2026-10-07 10:26:46 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>apt</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aleksei Nikiforov">darktemplaralt</reporter>
          <assigned_to name="Ivan Zakharyaschev">imz</assigned_to>
          <cc>aen</cc>
    
    <cc>boyarsh</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>lav</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
    
    <cc>sotor</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179985</commentid>
    <comment_count>0</comment_count>
    <who name="Aleksei Nikiforov">darktemplaralt</who>
    <bug_when>2019-03-26 10:59:31 +0300</bug_when>
    <thetext>Воспроизведение:
# apt-get install cups-filters
# apt-get install cups-filters --reinstall
На вопрос ответить &quot;y&quot;.

Результат:
# apt-get install cups-filters --reinstall
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
0 будет обновлено, 0 новых установлено, 1 пакетов будет переустановлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/724kB архивов.
После распаковки потребуется дополнительно 0B дискового пространства.
Продолжить? [Y/n] y
        ghostscript-cups конфликтует с cups-filters-1.22.2-alt1.x86_64
        foomatic-filters конфликтует с cups-filters-1.22.2-alt1.x86_64
        ghostscript-cups конфликтует с (установлен) cups-filters-1.22.2-alt1.x86_64
        foomatic-filters конфликтует с (установлен) cups-filters-1.22.2-alt1.x86_64
E: Проверка группы транзакций не удалась


Ожидаемый результат:
Успешная переустановка пакета.


Поведение не консистентно. С одной стороны, такой пакет apt-get позволяет установить, с другой стороны, переустановка не возможна. С обновлением пакета проблем пока не замечал.

$ rpm -q --provides cups-filters
ghostscript-cups
foomatic-filters
cups-filters = 1.22.2-alt1:sisyphus+225163.100.1.1

$ rpm -q --conflicts cups-filters
cups &lt; 1.6.1-alt1
ghostscript-cups
foomatic-filters


Происходит это, похоже, из-за совпадения записей provides и conflicts.

Аналогичные проблемы возникают при попытке переустановить следующие пакеты:
javapackages-tools
libzvbi
python-module-mysqlclient
qmmp1
systemd-sysvinit
firefox-esr
selinux-policy-alt

Вот более полный список их ошибок:
        ghostscript-cups конфликтует с cups-filters-1.22.2-alt1.x86_64
        foomatic-filters конфликтует с cups-filters-1.22.2-alt1.x86_64
        ghostscript-cups конфликтует с (установлен) cups-filters-1.22.2-alt1.x86_64
        foomatic-filters конфликтует с (установлен) cups-filters-1.22.2-alt1.x86_64
        jpackage-utils &lt; 0:5.0.1 конфликтует с javapackages-tools-1:5.0.0-alt1_12jpp8.noarch
        jpackage-utils &lt; 0:5.0.1 конфликтует с (установлен) javapackages-tools-1:5.0.0-alt1_12jpp8.noarch
        libzvbi is obsoleted by libzvbi-0.2.35-alt1.x86_64
        libzvbi is obsoleted by (установлен) libzvbi-0.2.35-alt1.x86_64
        python-module-MySQLdb конфликтует с python-module-mysqlclient-1.4.2.post1-alt1.x86_64
        python-module-MySQLdb конфликтует с (установлен) python-module-mysqlclient-1.4.2.post1-alt1.x86_64
        qmmp &lt; 1:0.12.0-alt0.M80P.svn8288.1 конфликтует с qmmp1-1.2.6-alt1.x86_64
        qmmp &lt; 1:0.12.0-alt0.M80P.svn8288.1 конфликтует с (установлен) qmmp1-1.2.6-alt1.x86_64
        SysVinit конфликтует с systemd-sysvinit-1:241-alt3.noarch
        SysVinit конфликтует с (установлен) systemd-sysvinit-1:241-alt3.noarch
        firefox конфликтует с firefox-esr-60.6.1-alt1.x86_64
        firefox конфликтует с (установлен) firefox-esr-60.6.1-alt1.x86_64
        selinux-policy-altlinux конфликтует с selinux-policy-alt-0.0.43-alt1.noarch
        selinux-policy-altlinux конфликтует с (установлен) selinux-policy-alt-0.0.43-alt1.noarch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179986</commentid>
    <comment_count>1</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-03-26 11:01:24 +0300</bug_when>
    <thetext>У меня есть ощущение, что раньше такой проблемы не было.
По крайней мере я иногда пользовался reinstall и не сталкивался с таким поведением.

Поправить cups-filters не сложно, но всё-таки для начала хотелось бы понять корректность поведения apt&apos;а.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180981</commentid>
    <comment_count>2</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2019-04-19 07:44:05 +0300</bug_when>
    <thetext>Изменений нет.

# apt-get install --reinstall cups-filters
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
0 будет обновлено, 0 новых установлено, 1 пакетов будет переустановлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/724kB архивов.
После распаковки потребуется дополнительно 0B дискового пространства.
Продолжить? [Y/n] 
        ghostscript-cups конфликтует с cups-filters-1.22.5-alt1.x86_64
        foomatic-filters конфликтует с cups-filters-1.22.5-alt1.x86_64
        ghostscript-cups конфликтует с (установлен) cups-filters-1.22.5-alt1.x86_64
        foomatic-filters конфликтует с (установлен) cups-filters-1.22.5-alt1.x86_64
E: Проверка группы транзакций не удалась</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301390</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Makeenkov">amakeenk</who>
    <bug_when>2026-10-07 10:26:46 +0300</bug_when>
    <thetext>Актуализация: баг воспроизводится по-прежнему, на apt-0.5.15lorg2-alt103 (Sisyphus, октябрь 2026). Проверено на минимальном синтетическом пакете:

    Name: demo2
    Version: 1.0
    Release: alt1
    BuildArch: noarch
    Provides: virtual-demo = %EVR
    Conflicts: virtual-demo

# apt-get install --reinstall demo2
    virtual-demo конфликтует с demo2-1.0-alt1.noarch
    virtual-demo конфликтует с (установлен) demo2-1.0-alt1.noarch
E: Проверка группы транзакций не удалась
(rc=100)

Дополнительные факты, которые проясняют природу проблемы:

1. Это не специфика apt: чистый rpm ведёт себя так же.

   # rpm -Uvh demo2-1.0-alt1.noarch.rpm        # тот же NEVR, уже установлен
   ошибка: Неудовлетворенные зависимости:
       virtual-demo конфликтует с demo2-1.0-alt1.noarch
       virtual-demo конфликтует с (установлен) demo2-1.0-alt1.noarch

   То есть librpm при обновлении транзакцией того же NEVR проверяет
   Conflicts пакета против его же собственной установленной копии
   (которая одновременно поставляет virtual-demo).

2. Обновление на НОВУЮ версию того же пакета (1.0 -&gt; 1.1 с той же парой
   Provides/Conflicts) проходит штатно и в apt, и в rpm. Проблема
   затрагивает только переустановку / обновление на тот же NEVR.

3. Симуляция apt при этом проходит чисто:

   # apt-get install --reinstall -s demo2
   Inst demo2 [1.0-alt1] (1.0-alt1)
   Conf demo2 (1.0-alt1)
   (rc=0)

   т.е. pkgSimulate этот конфликт не моделирует — реальный прогон
   расходится с симуляцией (в том числе поэтому ошибка всплывает только
   на этапе выполнения транзакции).

4. В исходниках apt ошибка поднимается из librpm: apt-pkg/rpm/rpmpm.cc,
   функция pkgRPMLibPM::Run() — после AddToTransaction() вызывается
   rpmtsCheck(), сообщения «конфликтует с» печатает rpmpsPrint() librpm,
   затем apt отдаёт &quot;E: Проверка группы транзакций не удалась&quot;
   (_(&quot;Transaction set check failed&quot;)). apt при ReInstall выставляет
   probFilter RPMPROB_FILTER_REPLACEPKG / REPLACEOLDFILES / REPLACENEWFILES
   для rpmtsRun(), но rpmtsCheck() фильтры проблем не принимает — поэтому
   обойти проверку со стороны apt текущим механизмом нельзя.

Вывод: либо это особенность/баг librpm (конфликт пакета с самим собой при
переустановке того же NEVR), либо apt должен обрабатывать reinstall таких
пакетов иначе (например, удаление + установка вместо обновления
транзакцией). Обход для пользователей: apt-get remove &lt;pkg&gt; &amp;&amp; apt-get
install &lt;pkg&gt;.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>