Bug 57789 - apt-mark не провайдит виртуальные пакеты
Summary: apt-mark не провайдит виртуальные пакеты
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: apt (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-07 01:12 MSK by Жора Змейкин
Modified: 2026-02-07 19:18 MSK (History)
7 users (show)

See Also:


Attachments
Набросок, который исправляет эту проблему (7.61 KB, patch)
2026-02-07 01:12 MSK, Жора Змейкин
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Жора Змейкин 2026-02-07 01:12:09 MSK
Created attachment 20650 [details]
Набросок, который исправляет эту проблему

apt-mark не умеет работать с виртуальными пакетами. При попытке пометить виртуальный пакет как auto или manual, команда выдаёт ошибку:

> # apt-mark auto LibreOffice
> LibreOffice can not be marked as it is not installed.

> apt-get install LibreOffice   # ок, ставит libreoffice
> rpm -q libreoffice            # libreoffice-25.8.4.2-alt3.x86_64
> apt-mark auto LibreOffice     # "LibreOffice can not be marked as it is not installed."
> apt-mark auto libreoffice     # ок

При этом `apt-get install LibreOffice` корректно резолвит виртуальный пакет в его провайдера (`libreoffice`) и устанавливает его. Это асимметрия поведения внутри одного APT.

Тот же `installer-alterator-pkg` вызывает `apt-mark manual` для пакетов перед установкой, и из-за этого пропускаются виртуальные пакеты.

Плюсом приходится усложнять другие скрипты, где используется `apt-mark`, ибо приходится учитывать, не является ли пакет виртуальным, потом его ещё резолвить. В целом это неочевидное поведение, что `apt-get` резолвит, а другие инструменты — нет.

Можно попробовать взять за основу этот патч, он частично написан AI, но в целом работает (правда там есть и другие изменения, лучше проверить внимательно).
Comment 1 Anton Farygin 2026-02-07 13:47:07 MSK
невозможно пометить виртуальный пакет, т.к. он может предоставляться множеством реальных.
Comment 2 Жора Змейкин 2026-02-07 19:18:48 MSK
(Ответ для Anton Farygin на комментарий #1)
> невозможно пометить виртуальный пакет, т.к. он может предоставляться
> множеством реальных.

Поэтому можно их резолвить в список пакетов, которые установлены в системе и уже помечать их.