15

У меня Dell Mini9 под управлением Ubuntu 8.10. Однажды у меня появилась блестящая идея посмотреть, смогу ли я установить стек LAMP. У меня были проблемы с установкой MySQL 5.0. Я не помню ошибки, но с тех пор все попытки запустить update-manager, synaptic или apt-get завершаются с ошибкой о mysql-server-5.0: "Пакет находится в очень плохом несовместимом состоянии".

Я попытался apt-get remove mysql-server-5.0 а также install но безуспешно. Оба терпят неудачу с той же самой ошибкой ниже. Как я могу это исправить?

$ sudo apt-get remove mysql-server-5.0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  dhcdbd libisc32
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  mysql-server-5.0
0 upgraded, 0 newly installed, 1 to remove and 164 not upgraded.
1 not fully installed or removed.
After this operation, 85.4MB disk space will be freed.
Do you want to continue [Y/n]? 
dpkg: error processing mysql-server-5.0 (--remove):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 mysql-server-5.0
E: Sub-process /usr/bin/dpkg returned an error code (1)

7 ответов7

19

Ни один из других ответов не работал для меня на Maverick.

В моем случае я обнаружил, что это работает:

sudo rm /var/lib/dpkg/info/flashplugin-nonfree.prerm

sudo dpkg --remove --force-remove-reinstreq flashplugin-nonfree

(заменив «flashplugin-nonfree» именем сломанного пакета, и заменив "prerm" на тип сценария, который не удался - в моем случае это был "postrm", сценарий после удаления.)

И они говорят, что Ubuntu прост в использовании! ворчать ворчать

6

У меня была точно такая же проблема с установкой MySQL. Вы должны очистить пакет. Простое удаление пакета не удаляет файлы конфигурации, которые были с ним.

Также я собираюсь сослаться на mysql-server-5.0, но понимаю, что есть пакет - обертка mysql-server, который всегда указывает на последнюю версию. т.е. если вы попросите установить mysql-server, apt-get должен сообщить вам, что это зависит от mysql-server-5.0 и установить оба. Если у вас есть пакет mysql-server в системе, вы должны убедиться, что он пропал, прежде чем пытаться переустановить.

  • Убедитесь, что сервер mysql (mysqld) не работает. Если это так, опустите его:

    sudo /etc/init.d/mysqld stop

  • Проверьте, зависят ли какие-либо пакеты от mysql-server-5.0:

    sudo apt-cache rdepends mysql-server-5.0

    Если они это сделают, вам нужно будет использовать параметр --force для удаления.

  • Очистить пакет (включая опцию --force , в зависимости от # 2)

    sudo apt-get --purge удалить --force mysql-server-5.0

  • Убедитесь, что файлы установщика также очищены, запустив

    sudo apt-get autoclean
    sudo apt-get autoremove

  • Установите серверный пакет снова

    sudo apt-get установить mysql-server-5.0

Надеюсь, это должно исправить вашу проблему. Тем не менее, пакет все еще может быть поврежден, если вы внесли какие-либо изменения в файлы, полученные из пакета mysql-common .

mysql-common - это базовый пакет, используемый как клиентскими, так и серверными компонентами. Если что-то не работает, попробуйте переустановить этот пакет. Там определенно будут пакеты, которые зависят от этого; проверьте используя # 2 выше. Очистите mysql-сервер перед переустановкой mysql-common. Также не забудьте переустановить mysql-common, иначе ваша система будет сильно повреждена.

1

Возможно, вы захотите попробовать aptitude , который лучше обрабатывает зависимости:

sudo aptitude remove mysql-server-5.0
0

Пытаться

sudo dpkg -i reconfigure mysql-server-5.0
sudo apt-get remove --force mysql-server-5.0

Если другой пакет сломан, попробуйте apt-get remove --force также.

0

У меня была эта проблема с почтальоном. Удален /etc/init.d/mailman с

rm /etc/init.d/mailman

починил это :)

0

Имеющаяся у вас ошибка dpkg предполагает, что проблема возникает, когда dpkg пытается фактически удалить пакет. (В конце дня, apt-get и Synaptic и т.п. передают фактическую работу dpkg .)

Вы пытались делать именно то, что говорится в сообщении, и сначала переустанавливать ?

apt-get install --reinstall mysql-server-5.0

Как бы глупо это не звучало, если dpkg задыхается во время процесса удаления (потому что какой-то файл, который он должен удалить, пропал в промежутке времени), то переустановка и последующее удаление могут иногда помочь. Убедитесь, что mysql не запущен, прежде чем пытаться установить или удалить его, как рекомендует nagul.

0

dpkg -r --force-remove-reinstreq <package> удаляет пакет, не проверяя, требует ли он переустановки.

После этого вы сможете переустановить пакет с вашим предпочтительным менеджером пакетов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .