Проблемы с PHP в Ubuntu после обновления mysql до версии 5.7

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

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

Я обнаружил, что мне нужно установить пакет php5-mysqlnd с помощью команды sudo apt-get install 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


person Mojtaba    schedule 10.06.2016    source источник
comment
Похоже, вы используете пользовательский репозиторий donate.sury.org, пожалуйста, добавьте свою конфигурацию apt в вопрос. И попробовать с репозиториями по умолчанию?   -  person A.L    schedule 13.06.2016


Ответы (1)


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

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, который требовался для доступа к определенному и очень разборчивому репозиторию. Обновление прошло нормально, но затем я больше не мог фиксировать изменения исходного кода.

person LSerni    schedule 15.06.2016