Inability to delete Steam from the repository using epm
[rirusha@sakura ~]$ epmi steam
sudo: a password is required
Please enter sudo user password to use sudo in the current session.
[sudo] password for rirusha:
$ sudo apt-get -o APT::Install::VirtualVersion=true -o APT::Install::Virtual=true install steam
Reading Package Lists... Done
Building Dependency Tree... Done
Selecting i586-steam.32bit for 'steam'
i586-steam.32bit is already the newest version.
0 upgraded, 0 newly installed, 0 removed and 0 not upgraded.
[rirusha@sakura ~]$ epme steam
$ sudo rpm -ev --noscripts steam
error: package steam is not installed
Version: EPM package manager version 3.62.13-alt1 Telegram: https://t.me/useepm https://wiki.etersoft.ru/Epm Running on ALTLinux/Sisyphus ('apt-rpm' package manager uses 'rpm' package format) Copyright (c) Etersoft 2012-2024 This program may be freely redistributed under the terms of the GNU AGPLv3.
I can delete steam via play --remove, but I believe that an application installed via epm install should not be deleted only via play.
Пакет steam в репозитории называется i586-steam. Вы указывали неверное название. Чтобы не закладываться на это, можно использовать epm play --remove steam Он выберет правильное название пакета для системы.
Оказывается, суть issue в том, что apt-get remove умеет удалять по провайдсам пакета:
# rpm -ev python3(libxml2)
error: package python3(libxml2) is not installed
# apt-get remove "python3(libxml2)"
Выбрано python3-module-libxml2 для 'python3(libxml2)'
Пример с dnf:
[lav@fedora64 ~]$ epm prov python3-steam
$ rpm -q --provides python3-steam
python-steam = 1.4.4-7.fc41
python3-steam = 1.4.4-7.fc41
python3.13-steam = 1.4.4-7.fc41
python3.13dist(steam) = 1.4.4
python3dist(steam) = 1.4.4
[lav@fedora64 ~]$ epme python-stream
$ sudo rpm -ev python-stream
error: package python-stream is not installed
[lav@fedora64 ~]$ sudo dnf remove python-stream
Нет пакетов на удаление для аргумента: python-stream
Нечего делать.
Пример с apt-get в Ubuntu:
# epm prov info
$ dpkg -s info
info-browser
$ epme info-browser
$ sudo dpkg -P info-browser
dpkg: warning: ignoring request to remove info-browser which isn't installed
# apt-get remove info-browser
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Virtual packages like 'info-browser' can't be removed
Таким образом, мы имеем уникальное поведение apt в Альте, которое стоит поддержать, даже ценой дополнительных действий.
Добавлю проверку на наличие пакета или переход на уровень выше, если ошибка удаления.
До:
$ epme steam
$ sudo rpm -ev --noscripts steam
error: package steam is not installed
После:
$ epme steam
$ sudo rpm -ev steam
ошибка: пакет steam не установлен
$ sudo apt-get remove steam
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано i586-steam.32bit для 'steam'
Следующие пакеты будут УДАЛЕНЫ:
i586-steam.32bit
И короткое удаление при наличии пакета:
$ epme i586-steam
$ sudo rpm -ev i586-steam
Подготовка пакетов...
i586-steam-1.0.0.82-alt2.i586