Não é possível desinstalar o php-memcache usando o terminal

1

Eu desinstalei o php5 do meu computador com o comando

sudo apt-get -y purge php.*

executar este comando mostrará esta mensagem no terminal:

Errors were encountered while processing: php5-memcache php5-memcached

Então eu tentei desinstalar o memcache:

sudo apt-get remove php-memcache

Ele me mostrou a mensagem, que não é possível encontrar o pacote memcache:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package php-memcache

e, em seguida, no memcached:

apt-get remove php5-memcached

Ele me lança informações sobre dependências ausentes no php:

The following packages have unmet dependencies.
php5-memcache : Depends: php5-common (>= 4.3.11) but it is not going to be installed  
      Depends: php-pear (>= 1.4.0~b1) but it is not going to be installed
      Depends: phpapi-20121212
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Rodando

apt-get -f install

me lança erros sobre a remoção do memcache novamente.

Como eu entendi corretamente, eu cometi um erro, que eu não removi o memcache antes de desinstalar o php5? O que eu posso fazer agora? Preciso instalar o php novamente? Quando tento instalar dependências ausentes, recebo uma mensagem sobre outros pacotes ausentes. Não deve estar faltando pacotes automaticamente adicionados / removidos, ao usar "apt-get"?

Por googling eu encontrei, esse problema pode ser usando repositórios errados, que não são adequados para o meu sistema. Como posso detectar quais repositórios são os adequados para o meu sistema instalar / desinstalar pacotes apropriados para desinstalar o memcache? obrigado por qualquer ajuda

Eu tenho esses repositórios php adicionados ao meu sistema: link link link link

Eu tentei remover o memcache com o dpkg de acordo com @oerdnj, mas ainda tenho alguns erros:

tomas@Toshiba ~ $ sudo dpkg --purge php5-memcache
(Reading database ... 275094 files and directories currently   installed.)
Removing php5-memcache (3.0.8-4build1) ...
/var/lib/dpkg/info/php5-memcache.prerm: 9: /var/lib/dpkg/info/php5-  memcache.prerm: php5dismod: not found
dpkg: error processing package php5-memcache (--purge):
subprocess installed pre-removal script returned error exit status 127
Errors were encountered while processing:
php5-memcache

Eu também tentei a solução do segmento Como remover / instalar um pacote que não está totalmente instalado? mas me mostra os mesmos erros:

tomas@Toshiba ~ $ sudo apt-get install --reinstall dpkg
[sudo] password for tomas: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
php5-memcache : Depends: php5-common (>= 4.3.11) but it is not going      to be installed
Depends: php-pear (>= 1.4.0~b1) but it is not going to be installed
             Depends: phpapi-20121212
php5-memcached : Depends: libmemcached10 but it is not going to be installed
              Depends: php5-common (>= 5.2.0) but it is not going to be installed
              Depends: php5-common (< 6.0.0) but it is not going to be installed
              Depends: php-pear (>= 1.4.0~b1) but it is not going to be installed
              Depends: phpapi-20121212
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
    
por tomas.teicher 21.01.2016 / 12:24

2 respostas

1

Se o seu sistema estiver no estado em que apt-get está praticamente inutilizável, você pode tentar usar dpkg para remover o pacote afetado. Nesse caso, tente:

sudo dpkg --purge php5-memcache

dpkg é uma ferramenta de baixo nível para manipular pacotes e não é tão difícil ter todos os pacotes em estado consistente.

Como php5dismod está ausente do seu sistema, eu simplesmente recomendaria remover os arquivos /var/lib/dpkg/info/php5-memcache.prerm e /var/lib/dpkg/info/php5-memcache.postrm e limpar /etc/php5/ manualmente para rastrear a configuração do memcache (main memcache.ini symlinked to 20-memcache.ini pode ser encontrado lá).

Nota: Por favor, não tente outras coisas aleatórias da Internet, você pode quebrar o sistema ainda mais, se você não entender completamente o que você está fazendo.

    
por oerdnj 22.01.2016 / 13:07
0

Eu tive esse problema depois de atualizar para o Ubuntu 16.04 a partir de 14.04.

Se você abrir var/lib/dpkg/info/php5-memcached.prerm , verá este conteúdo:

#!/bin/sh

set -e

dpkg-maintscript-helper mv_conffile /etc/php5/conf.d/memcached.ini \
    /etc/php5/mods-available/memcached.ini 2.0.1-3 -- "$@"
rm -f /etc/php5/conf.d/memcached.ini

[ "" = "remove" ] && php5dismod memcached

exit 0

A maneira mais fácil de corrigir o erro é apenas comentar a linha php5dismod :

#!/bin/sh

set -e

dpkg-maintscript-helper mv_conffile /etc/php5/conf.d/memcached.ini \
    /etc/php5/mods-available/memcached.ini 2.0.1-3 -- "$@"
rm -f /etc/php5/conf.d/memcached.ini

# !!!!!!!!!!
# Do _not_ do anything with php5dismod
# [ "" = "remove" ] && php5dismod memcached
# !!!!!!!!!!

exit 0

Depois disso, você pode executar sudo apt-get -f install novamente e removerá sem problemas.

    
por h2ooooooo 24.05.2018 / 10:45