Я удалил 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).
Если Ваша система находится в состоянии, где 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
мог бы быть найден там).
Примечание: не пробуйте другие случайные вещи из Интернета, Вы могли бы, повредил систему еще больше, если Вы не полностью понимаете то, что Вы делаете.
У меня была эта проблема после обновления к 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
снова и это удалит его без проблемы.