Linux — проблема с PHP в Ubuntu после обновления mysql до v5.7

Я обновил версию mysql с 5.5 до 5.7 на своей Ubuntu.

Но ничего, что связано с MySQL, не сработало после этого. Я также обновил пакет php5-mysql.

Я узнал, что мне нужно установить пакет php5-mysqlnd с помощью команды sudo apt-get установить php5-mysqlnd. Но это не может быть установлено. сообщение:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:

The following packages have unmet dependencies:
php5-mysqlnd : Depends: phpapi-20121212
Depends: php5-common (= 5.5.36+dfsg-1+donate.sury.org~trusty+1) but 5.6.18+dfsg-1+deb.sury.org~trusty+1 is to be installed
E: Unable to correct problems, you have held broken packages.

Моя версия PHP 5.6.18-1 + deb.sury.org ~ trusty + 1

2

Решение

У вас есть несколько пакетов из одного хранилища, а некоторые другие из основного хранилища. Кроме того, и здесь появляется ошибка, некоторые из этих пакетов Ручной. Вы выбрали не обновить их:

php5-mysqlnd : Depends: phpapi-20121212
Depends: php5-common (= 5.5.36...) but 5.6.18... is to be
installed
E: Unable to correct problems, you have held broken packages.

Что, вероятно, случилось

Во время предыдущего обновления в системе произошла ошибка, и было предложено несколько решений, одно из которых было «… продолжить и сломать зависимости«. Вы выбрали это — то есть, вы подписали отказ от APT, говоря:» Я никогда не буду обновляться тот».

Теперь вы хотите сделать именно это — и вы больше не можете.

Что тебе необходимо сделать

Вам необходимо идентифицировать эти удерживаемые пакеты, определить, почему они хранятся, и соответственно обновить их; или вернитесь к MySQL 5.5, если будет нарушена более важная зависимость.

apt-get update

apt-get --ignore-hold --dry-run upgrade

скажет вам, что произойдет, если вы попытаетесь обновить и те пакеты, которые в настоящее время удерживаются. Вы можете попробовать также --fix-missing а также --fix-broken опции. Но самый важный ответ, который вам нужен, это почему эти пакеты были сдержаны в первую очередь.

Если вы просто продолжите и проигнорируете удержанные пакеты, вы рискуете сломать что-то, что не может быть легко восстановлено. Я сделал это однажды, когда невольно обновил скрытый пакет Subversion, который требовался для доступа к конкретному и очень привередливому хранилищу. Обновление прошло нормально, но я больше не мог фиксировать исходные изменения.

1

Другие решения

Других решений пока нет …