Commit cba68b41 authored by Vitaly Lipatov's avatar Vitaly Lipatov

epm remove: don't try removing after rpm -e said there is not such package

parent 696d258e
При удалении, если ошибка состоит в отсутствии пакета, не нужно переключаться на apt-get
epme вызывает apt-get remove для пакетов, которых нет при удалении через rpm
yum versionlock - сравнить/обобщить
https://itfb.com.ua/kak-zablokirovat-obnovlenie-odnogo-iz-paketov-ili-ispolzuem-yum-versionlock/
......@@ -24,8 +20,6 @@ epm hs поиск с историей какой версией и changelog
https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks_(Русский)
systemctl edit юнит
аналог epm purge: запоминаем список файлов, удаляем пакеты и по возможности всё, от чего зависит (рекурсивно).
--interactive
......@@ -55,8 +49,6 @@ Usage: openvpn {start|stop|reload|restart|reopen|condstop|condrestart|condreload
# anyservice --quiet list
epmqf - если каталог есть, искать полный /usr/share/node
TODO: yaourt (pacman frontend), need we?
https://archlinux.fr/man/yaourt.8.html
......@@ -106,8 +98,6 @@ dotty - через ссылки на реальные названия (epm req
Команда
docmdmore
Дописывать .service для systemd, если не указано другое.
Установка (для отсутствующих файлов пакетов) и удаление (в любом случае) должны производиться с укороченными именами (которые воспримет верхний уровень)
Дописать таблицу на вики на основании реализованных команд.
......
#!/bin/sh
#
# Copyright (C) 2012-2014, 2016, 2017, 2019, 2020 Etersoft
# Copyright (C) 2012-2014, 2016, 2017, 2019, 2020 Vitaly Lipatov <lav@etersoft.ru>
# Copyright (C) 2012-2014, 2016, 2017, 2019-2021 Etersoft
# Copyright (C) 2012-2014, 2016, 2017, 2019-2021 Vitaly Lipatov <lav@etersoft.ru>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
......@@ -23,6 +23,13 @@ load_helper epm-print
load_helper epm-sh-warmup
load_helper epm-sh-install
__check_rpm_e_result()
{
grep -q "is not installed" $1 && return 2
return $2
}
# Try remove with low level removing
epm_remove_low()
{
......@@ -34,10 +41,12 @@ epm_remove_low()
*-rpm)
cd /tmp || fatal
__epm_check_vendor $@
sudocmd rpm -ev $noscripts $nodeps $@
# keep status
#cd - >/dev/null
return ;;
store_output sudocmd rpm -ev $noscripts $nodeps $@
__check_rpm_e_result $RC_STDOUT $?
RES=$?
clean_store_output
cd - >/dev/null
return $RES ;;
*-dpkg|-dpkg)
# shellcheck disable=SC2046
sudocmd dpkg -P $(subst_option nodeps --force-all) $(print_name "$@")
......@@ -312,13 +321,8 @@ epm_remove()
epm_remove_low $pkg_names && return
local STATUS=$?
# TODO: check if we need continue with hi level
# TODO: we need fail if
# # rpm -ev python2-nase
# error: package python2-nase is not installed
if [ -n "$direct" ] || [ -n "$nodeps" ]; then
if [ -n "$direct" ] || [ -n "$nodeps" ] || [ "$STATUS" = "2" ]; then
return $STATUS
fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment