Не удалить php-кэш-память с помощью терминала

Я удалил php5 от своего компьютера с командой

sudo apt-get -y purge php.*

выполнение этой команды покажет мне это сообщение в терминале:

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

Таким образом, я пытался удалить кэш-память:

sudo apt-get remove php-memcache

Это показало мне сообщение, что не может найти пакет кэш-памяти:

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

и затем memcached:

apt-get remove php5-memcached

Это бросает меня информация о недостающих зависимостях в 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).

Выполнение

apt-get -f install

бросает меня ошибки об удалении кэш-памяти, снова.

Как я понимаю правильно, я сделал ошибку, что я не удалил кэш-память, прежде чем я удалил php5? Что я могу сделать теперь? Я должен установить php снова? Когда я пытаюсь установить недостающие зависимости, я получаю сообщение о другой недостающие пакеты. Не должен отсутствовать пакеты автоматически добавили/удалили, когда использование "склонного - добирается"?

Путем поиска с помощью Google я нашел, та проблема может быть при помощи неправильных репозиториев, которые не подходят для моей системы. Как я могу обнаружить, какие репозитории являются правом для моей системы к install/unistall соответствующим пакетам для удаления кэш-памяти? спасибо за любую справку

Мне добавили такие php репозитории к моей системе: http://ppa.launchpad.net/ondrej/php5/ubuntu http://ppa.launchpad.net/ondrej/php5/ubuntu http://ppa.launchpad.net/ondrej/php-7.0/ubuntu http://ppa.launchpad.net/ondrej/php-7.0/ubuntu

Я пытался удалить кэш-память с dpkg согласно @oerdnj, но я получил все еще некоторые ошибки:

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

Я также попробовал решение от потока, Как удалить/установить пакет, который не полностью установлен? но это показывает мне те же ошибки:

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).
1
задан 13 April 2017 в 15:24

2 ответа

Если Ваша система находится в состоянии, где apt-get главным образом неприменимо, Вы могли попытаться использовать dpkg для удаления затронутого пакета в этой попытке случая:

sudo dpkg --purge php5-memcache

dpkg инструмент низкого уровня для управления пакетами, и он не так старается иметь все пакеты в согласованном состоянии.

С тех пор php5dismod отсутствует в Вашей системе, которую я просто рекомендовал бы удалить /var/lib/dpkg/info/php5-memcache.prerm и /var/lib/dpkg/info/php5-memcache.postrm файлы и убрать /etc/php5/ вручную для трассировок конфигурации кэш-памяти (основной memcache.ini, symlinked к 20-memcache.ini мог бы быть найден там).

Примечание: не пробуйте другие случайные вещи из Интернета, Вы могли бы, повредил систему еще больше, если Вы не полностью понимаете то, что Вы делаете.

1
ответ дан 7 December 2019 в 16:03

У меня была эта проблема после обновления к Ubuntu 16.04 от 14,04.

Если Вы открываетесь var/lib/dpkg/info/php5-memcached.prerm Вы будете видеть это содержание:

#!/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

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

exit 0

Самый легкий способ зафиксировать ошибку состоит в том, чтобы просто прокомментировать 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
# [ "$1" = "remove" ] && php5dismod memcached
# !!!!!!!!!!

exit 0

После этого можно работать sudo apt-get -f install снова и это удалит его без проблемы.

0
ответ дан 7 December 2019 в 16:03

Другие вопросы по тегам:

Похожие вопросы: