LINUX.ORG.RU

Как с помощью dpkg удалить упрямый пакет?

 


0

1

Точнее я его когда-то удалил тупо из каталога, а теперь понадобилось его удалить из базы dpkg. И вот тут выяснилось, что там внутре думалка и неонка^W^W^W питонячий скрипт который пытается в процессе удаления удалить соответствующие скрипты с реального железа. Собственно это и послужило причиной удаления руками в прошлый раз, т.к. места это чудище жрало под 40гигов.

Так вот, суть проблемы: деинсталлятор пакета написан так, что даже dpkg -P –force-all его не берет. Как сделать так чтоб dpkg забыл нафиг про этот пакет вообще? Просто забыл, как будто его и не было.

# dpkg -P --force-all mantle-mp-mec1
(Reading database ... 378855 files and directories currently installed.)
Removing mantle-mp-mec1 (0.254.6-2-g6ac8b983.modified-0) ...
ERROR: 
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml
        
dpkg: error processing package mantle-mp-mec1 (--purge):
 installed mantle-mp-mec1 package pre-removal script subprocess returned error exit status 1
+ INSTALL_DIR=/opt/mantle
+ PYENV_DIR=/opt/mantle_pyenv
+ ldconfig
++ id -u epc
+ [[ ! -n 996 ]]
++ id -u epc
+ echo USER_ID=996
+ mkdir -p /opt/mantle/influxdb /opt/mantle/grafana
+ chown -R epc /opt/mantle/influxdb /opt/mantle/grafana
+ python3 -m pip install --upgrade docker-compose==1.26.2
Requirement already up-to-date: docker-compose==1.26.2 in /usr/local/lib/python3.8/dist-packages (1.26.2)
Requirement already satisfied, skipping upgrade: PyYAML<6,>=3.10 in /usr/lib/python3/dist-packages (from docker-compose==1.26.2) (5.3.1)
Requirement already satisfied, skipping upgrade: jsonschema<4,>=2.5.1 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (3.2.0)
Requirement already satisfied, skipping upgrade: python-dotenv<1,>=0.13.0 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (0.19.2)
Requirement already satisfied, skipping upgrade: six<2,>=1.3.0 in /usr/lib/python3/dist-packages (from docker-compose==1.26.2) (1.14.0)
Requirement already satisfied, skipping upgrade: dockerpty<1,>=0.4.1 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (0.4.1)
Requirement already satisfied, skipping upgrade: cached-property<2,>=1.2.0 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (1.5.2)
Requirement already satisfied, skipping upgrade: docker[ssh]<5,>=4.2.2 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (4.4.4)
Requirement already satisfied, skipping upgrade: websocket-client<1,>=0.32.0 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (0.59.0)
Requirement already satisfied, skipping upgrade: requests<3,>=2.20.0 in /usr/lib/python3/dist-packages (from docker-compose==1.26.2) (2.22.0)
Requirement already satisfied, skipping upgrade: texttable<2,>=0.9.0 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (1.6.4)
Requirement already satisfied, skipping upgrade: distro<2,>=1.5.0 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (1.6.0)
Requirement already satisfied, skipping upgrade: docopt<1,>=0.6.1 in /usr/local/lib/python3.8/dist-packages (from docker-compose==1.26.2) (0.6.2)
Requirement already satisfied, skipping upgrade: setuptools in /usr/lib/python3/dist-packages (from jsonschema<4,>=2.5.1->docker-compose==1.26.2) (45.2.0)
Requirement already satisfied, skipping upgrade: attrs>=17.4.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema<4,>=2.5.1->docker-compose==1.26.2) (21.4.0)
Requirement already satisfied, skipping upgrade: pyrsistent>=0.14.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema<4,>=2.5.1->docker-compose==1.26.2) (0.18.1)
Requirement already satisfied, skipping upgrade: paramiko>=2.4.2; extra == "ssh" in /usr/lib/python3/dist-packages (from docker[ssh]<5,>=4.2.2->docker-compose==1.26.2) (2.6.0)
+ mkdir -p /media/tcs/jpg
+ mkdir -p /media/tcs/csv
+ mkdir -p /media/vcs
+ mkdir -p /var/log/mantle
+ mkdir -p /var/opt/ics
+ echo 'loading macros and scripts into CNC...'
loading macros and scripts into CNC...
+ cd /opt/mantle/cnc
+ python3 -c 'import macro_manager; print(macro_manager.cnc_load_all_macros())'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'macro_manager'
dpkg: error while cleaning up:
 installed mantle-mp-mec1 package post-installation script subprocess returned error exit status 1
Processing triggers for libc-bin (2.31-0ubuntu9.18) ...
Errors were encountered while processing:
 mantle-mp-mec1

INSTALL_DIR=/opt/mantle…

Нефига «всякую левую манду» тащить в систему.

Есть универсальный метод - бэкап. Но для этого думалка должна была быть у тебя.

Впрочем не поздно ещё сейчас, пока «в конец не умандохал систему».

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)

А в /var/lib/dpkg найти падучий скрипт и поправить его руками не прокатывает? Я на кривый рм-скрипты налетал очень редко и очень давно, и тогда пересобирал пакеты руками с пустами скриптами, но может есть способ попроще.

thesis ★★★★★
()
Ответ на: комментарий от andytux

Нефига «всякую левую манду» тащить в систему.

ты еще скажи «нафига работу работать»

ckotctvo
() автор топика

dpkg --force-remove-reinstreq <pkg>.

       remove-reinstreq:
        Remove a package, even if it's broken and marked to require
        reinstallation.  This may, for example, cause parts of the
        package to remain on the system, which will then be
        forgotten by dpkg.
yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от yars068

не работает. я все способы уже перепробовал. может есть какой-то еще кроме вырезания руками.

ckotctvo
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария