Как удалить пакет, сценарий которого после установки и перед удалением завершился неудачно?

25

У меня проблема с пакетом openqrm.

Как мне это убрать?

root@wl183004:/# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]? 
Setting up openqrm (4.6-ubuntu1) ...
.: 33: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error processing openqrm (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 openqrm
E: Sub-process /usr/bin/dpkg returned an error code (1)

root@wl183004:/# apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up openqrm (4.6-ubuntu1) ...
.: 33: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error processing openqrm (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 openqrm
E: Sub-process /usr/bin/dpkg returned an error code (1)

root@wl183004:/# apt-get remove --purge openqrm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libshadow-ruby1.8 bind9 libopenipmi0 nagios-plugins-basic open-iscsi
  nagios-plugins-standard memcached libupsclient1 collectd-core nagios-images
  bind9utils tftpd-hpa radiusclient1 libdbi0 libphp-adodb collectd libruby
  aoetools facter dhcp3-server open-iscsi-utils liboping0 libmemcached2
  libradius1 libyajl1 nagios-plugins puppet-common puppetmaster
  libopenssl-ruby1.8 libopenssl-ruby libesmtp5 libxmlrpc-ruby
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  openqrm*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 78.2MB disk space will be freed.
Do you want to continue [Y/n]? 
(Reading database ... 313464 files and directories currently installed.)
Removing openqrm ...
.: 32: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error processing openqrm (--purge):
 subprocess installed pre-removal script returned error exit status 2
.: 33: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 openqrm
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@wl183004:/# 
Марк Риера
источник

Ответы:

20

Вы можете попробовать обновить пакет, прежде чем очищать его. В некоторых случаях новый пакет исправит сценарий удаления ( dpkgсделан так, чтобы новые пакеты могли исправить даже сценарии перехода старых пакетов).

Если это не сработает, посмотрите, /var/lib/dpkg/info/openqrm.postinstкак предложил Кайл, найдите строку, которая не удалась, закомментируйте ее и попробуйте снова удалить. Повторите до успеха.

ℝaphink
источник
4
Я добавил выход 0 в начале openqrm.prerm. это сработало. спасибо
Марк Риера
но ... как нам это сделать? «Найдите строку, которая не удалась, закомментируйте ее»
ahnbizcad
Использование вашего любимого редактора и sudo
ℝaphink
добавить set -xв сценарий, чтобы увидеть, где он не работает, ср. cyberciti.biz/tips/debugging-shell-script.html
Максим Р.
Мне также пришлось отредактировать /var/lib/dpkg/info/*.prermфайл, чтобы получить пакет для удаления. Какой дизайн!
цыплята
18

У меня сработало следующее:

  • rm -rf /var/lib/dpkg/info/openqrm.*
  • rm -rf / usr / share / openqrm
  • rm -rf / etc / default / openqrm
  • rm -rf /etc/init.d/openqrm
  • apt-get purge openqrm
Donnied
источник
2
это сработало! Обобщая, просто замените "openqrm" на имя вашего пакета.
Анбизкад
Это помогло мне избавиться от неработающей apachedsустановки, которая полностью блокировала любую aptкоманду в моей системе, спасибо ... мы могли бы немного обобщить, выполнив сначала поиск по всем расположениям пакета sudo find / | grep [package name], затем удалив их все, затем используя sudo apt-get remove [package name] -purge --auto-remove( не по сценарию, некоторые из результатов, возможно, не будут удалены, хотя ...)
Cedbeu
7

Просто попробуйте прикоснуться к отсутствующему файлу. Если это только один файл, отсутствующий файл, это может быть отличным решением.

touch /usr/share/openqrm/etc/openqrm-server.conf

Теперь попробуйте удалить пакет с помощью apt-get или aptitude.

FBO
источник
Это сработало - наконец-то удалось удалить постфикс
Даррен Ньютон
2

Посмотрите на /var/lib/dpkg/info/openqrm.postinst и посмотрите, что он пытается сделать

рукав моря
источник
-1

Здесь есть сообщение о том же типе ошибки (хотя другой пакет). Вы уже пробовали dpkg --force-all?

charlesbridge
источник