Як виправити зламані синаптичні оновлення: "Пакет знаходиться в дуже поганому непослідовному стані"


15

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

Я спробував apt-get remove mysql-server-5.0і, installале не пощастило. Обидва не вдається з однаковою помилкою нижче. Як я можу це виправити?

$ sudo apt-get remove mysql-server-5.0
Читання списків пакетів ... Готово
Побудова дерева залежності       
Читання інформації про стан ... Готово
Наступні пакети були автоматично встановлені і більше не потрібні:
  dhcdbd libisc32
Щоб видалити їх, використовуйте "apt-get autoremove".
Наступні пакети будуть видалені:
  mysql-сервер-5.0
0 оновлених, 0 нещодавно встановлених, 1 для видалення та 164 не оновлених.
1 не повністю встановлений або видалений.
Після цієї операції буде звільнено диск на 85,4 Мб.
Ви хочете продовжити [Y / n]? 
dpkg: обробка помилок mysql-server-5.0 (--remove):
 Пакет знаходиться в дуже поганому непослідовному стані - слід
 перевстановіть її перед спробою видалення.
Під час опрацювання виникли помилки:
 mysql-сервер-5.0
E: Підпроцес / usr / bin / dpkg повернув код помилки (1)

Подумайте про використання <pre> для виводу на екран, де виділення синтаксису не потрібне.
Джон Окслі

Відповіді:


19

Жодна з інших відповідей не працювала для мене на Маверик.

У моєму випадку я виявив, що це спрацювало:

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

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

(заміна "flashplugin-nonfree" на ім'я зламаного пакету та заміна "prerm" на тип скрипту, який не вдався - в моєму випадку це було "postrm", сценарій після видалення.)

І кажуть, що Ubuntu простий у використанні !! бурмоче бурчання


--purge краще скинути розбиті
депи

1
Я годинами шукав рішення подібної проблеми, і це єдине, що працювало. Дякую.
LukeGT

6

У мене була та сама проблема з встановленням mysql. Вам потрібно очистити в Packge. Просто вилучення пакету не видаляє конфігураційні файли, що додаються до нього.

Також я посилаюся на mysql-server-5.0 , але розумію, що існує пакувальний пакет mysql-сервер, який завжди вказує на останню версію. тобто якщо ви попросите встановити mysql-сервер , apt-get повинен сказати вам, що це залежить від mysql-server-5.0 та встановити обидва. Якщо у вас є пакунок сервера mysql-сервера , вам слід переконатися, що це теж минуло, перш ніж спробувати перевстановити.

  • Переконайтесь, що сервер mysql (mysqld) не працює. Якщо це так, збийте його:

    sudo /etc/init.d/mysqld зупинка

  • Перевірте, чи залежать якісь пакети від mysql-server-5.0:

    sudo apt-cache rdepends mysql-server-5.0

    Якщо вони є, вам потрібно буде скористатися опцією --force для видалення.

  • Очистіть пакет (включіть опцію --force , залежно від №2)

    sudo apt-get --purge remove --force mysql-server-5.0

  • Переконайтеся, що файли інсталятора також очищені за допомогою запуску

    sudo apt-get autoclean
    sudo apt-get autoremove

  • Встановіть серверний пакет ще раз

    sudo apt-get install mysql-server-5.0

Це, маємо надію, вирішити вашу проблему. Однак пакет все-таки може бути зламаний, якщо ви внесли будь-які зміни у файли, що надходили з загального пакета mysql .

mysql-common - базовий пакет, що використовується як клієнтськими, так і серверними компонентами. Якщо все ще не працює, спробуйте встановити цей пакет. Однозначно будуть пакети, які залежать від цього; перевірити за допомогою №2 вище. Очистіть mysql-сервер перед перевстановленням mysql-common . Також не забудьте перевстановити mysql-common , інакше ваша система буде дуже зламана.


1

Ви aptitudeможете спробувати, що покращує залежність:

sudo aptitude remove mysql-server-5.0

Помилка тут є dpkg, тому я не думаю, aptitudeщо обов'язково було б краще. Не зрозумійте мене неправильно, я все aptitudeзакінчився apt-get, але наприкінці дня вони обоє передають справжню азотну крупу dpkg(про що ви будете раді почути, що спочатку було впроваджено в Perl).
Телемах

;-) Я просто подумав, що варто спробувати.
innaM

0

Спробуйте

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

Якщо його інший пакет зламаний, спробуйте apt-get remove --forceтакож його.


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> видаляє пакет, не перевіряючи, чи потребує перевстановлення.

Після цього ви маєте змогу перевстановити пакет разом із бажаним менеджером пакунків.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.