Bug 55192 - Мистический пакет удаляет clang и gcc.
Summary: Мистический пакет удаляет clang и gcc.
Status: CLOSED NOTABUG
Alias: None
Product: Branch p11
Classification: Unclassified
Component: apt (show other bugs)
Version: unspecified
Hardware: all Linux
: P5 normal
Assignee: Ivan Zakharyaschev
QA Contact: qa-p11@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-07-12 10:25 MSK by Сергей Жидких
Modified: 2025-07-14 12:09 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Сергей Жидких 2025-07-12 10:25:33 MSK
При попытке установить пакет gcc-++, удаляет clang, gcc и несколько других пакетов.
Я не знаю что это за пакет и для чего он нужен, но его существование и поведение вызывает много вопросов.
Лог установки:
$ sudo apt-get install gcc-++
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
  clang  clang-devel  clang19.1  clang19.1-devel  gcc  rpm-build  rpm-utils  rust  rust-analyzer  rust-cargo  rustfmt
0 будет обновлено, 0 новых установлено, 11 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 347MB дискового пространства.
Comment 1 Arseny Maslennikov 2025-07-12 11:16:33 MSK
Есть пакет gcc-c++, а вот пакета gcc-++ нет.
В этом случае apt, помимо прочего (`name=version`, ...) пытается найти на конце выражения `[+-]`. Если нашёлся минус, то это означает, что в транзакции пакет надо пометить к удалению.
Может, дело в этом? (Тогда странно, что два плюса потом не перебили этот эффект.)
Comment 2 Arseny Maslennikov 2025-07-12 11:19:22 MSK
(In reply to Arseny Maslennikov from comment #1)
> Есть пакет gcc-c++, а вот пакета gcc-++ нет.
> В этом случае apt, помимо прочего (`name=version`, ...) пытается найти на
> конце выражения `[+-]`. Если нашёлся минус, то это означает, что в
> транзакции пакет надо пометить к удалению.
> Может, дело в этом? (Тогда странно, что два плюса потом не перебили этот
> эффект.)

Если именно так и если сочетание `-++` работает в этой позиции как следует, то надо resolved/notabug ставить. :)
Comment 3 Arseny Maslennikov 2025-07-12 17:03:26 MSK
(In reply to Arseny Maslennikov from comment #1)
> Есть пакет gcc-c++, а вот пакета gcc-++ нет.
> В этом случае apt, помимо прочего (`name=version`, ...) пытается найти на
> конце выражения `[+-]`. Если нашёлся минус, то это означает, что в
> транзакции пакет надо пометить к удалению.
> Может, дело в этом? (Тогда странно, что два плюса потом не перебили этот
> эффект.)
  # apt-get install tzdata-+-++---++++++++++
  Reading Package Lists... Done
  Building Dependency Tree... Done
  The following packages will be REMOVED:
    tzdata
  0 upgraded, 0 newly installed, 1 removed and 0 not upgraded.
  Need to get 0B of archives.
  After unpacking 909kB disk space will be freed.
  Do you want to continue? [Y/n] n
  Abort.
Comment 4 Sergey V Turchin 2025-07-14 11:07:14 MSK
Конечные + и - используется apt-get для дополнительных манипуляций с пакетами.
Вы попросили удалить gcc.
Comment 5 Сергей Жидких 2025-07-14 11:42:26 MSK
Это очень странный синтаксис... Он хоть где-то используется? Для удаления пакетов есть более явная команда remove.
Comment 6 Arseny Maslennikov 2025-07-14 11:58:50 MSK
(In reply to Сергей Жидких from comment #5)
> Это очень странный синтаксис... Он хоть где-то используется? Для удаления
> пакетов есть более явная команда remove.

Да, в hsh-install, например.
Comment 7 Arseny Maslennikov 2025-07-14 12:05:24 MSK
(In reply to Arseny Maslennikov from comment #6)
> (In reply to Сергей Жидких from comment #5)
> > Это очень странный синтаксис... Он хоть где-то используется? Для удаления
> > пакетов есть более явная команда remove.
> Да, в hsh-install, например.
Не так. Среди ALT-specific софта — как минимум в girar оно используется:
https://git.altlinux.org/people/glebfm/packages/?p=girar.git&a=blob&f=gb/remote/gb-remote-check-install&hb=5b5cc13a7ce61093c38c1c099e6cbdba8071ecf5
В этом файле grep -F hsh-install.
Comment 8 Sergey V Turchin 2025-07-14 12:07:03 MSK
(Ответ для Сергей Жидких на комментарий #5)
> Он хоть где-то используется?
Везде, где нужна установка и удаление одной командой.
Comment 9 Sergey V Turchin 2025-07-14 12:09:13 MSK
(Ответ для Сергей Жидких на комментарий #5)
> Это очень странный синтаксис...
Не вижу ничего странного. Равносильные команды:
apt-get install pkg1 pkg2-
apt-get remove pkg1+ pkg2