Cách khắc phục các bản cập nhật synap bị hỏng: Gói Gói ở trạng thái không nhất quán rất xấu


15

Tôi có Dell Mini9 chạy Ubuntu 8.10. Một ngày nọ, tôi có một ý tưởng tuyệt vời để xem liệu tôi có thể cài đặt một ngăn xếp LAMP không. Tôi gặp sự cố khi cài đặt MySQL 5.0. Tôi không nhớ lỗi, nhưng kể từ khi tất cả các nỗ lực chạy trình quản lý cập nhật, synap hoặc apt-get đều không thành công với lỗi về mysql-server-5.0: "Gói ở trạng thái không nhất quán rất xấu".

Tôi đã thử apt-get remove mysql-server-5.0và cũng installkhông có may mắn. Cả hai đều thất bại với cùng một lỗi dưới đây. Làm thế nào tôi có thể sửa lỗi này?

$ sudo apt-get loại bỏ mysql-server-5.0
Đọc danh sách gói ... Xong
Xây dựng cây phụ thuộc       
Đọc thông tin trạng thái ... Xong
Các gói sau đã được cài đặt tự động và không còn cần thiết:
  dhcdbd libisc32
Sử dụng 'apt-get autoremove' để xóa chúng.
Các gói sau sẽ được KHAI THÁC:
  máy chủ mys-5.0
0 nâng cấp, 0 mới cài đặt, 1 để loại bỏ và 164 không được nâng cấp.
1 không được cài đặt hoặc gỡ bỏ hoàn toàn.
Sau thao tác này, dung lượng đĩa 85,4 MB sẽ được giải phóng.
Bạn có muốn tiếp tục [Y / n] không? 
dpkg: xử lý lỗi mysql-server-5.0 (--remove):
 Gói ở trạng thái không nhất quán rất xấu - bạn nên
 cài đặt lại nó trước khi cố gắng loại bỏ.
Đã bắt gặp các lỗi trong quá trình xử lí thông tin:
 máy chủ mys-5.0
E: Quá trình phụ / usr / bin / dpkg trả về mã lỗi (1)

Cân nhắc sử dụng <pre> cho đầu ra màn hình khi không cần tô sáng cú pháp.
John Oxley

Câu trả lời:


19

Không có câu trả lời nào khác làm việc cho tôi trên Maverick.

Trong trường hợp của tôi, tôi thấy điều này làm việc:

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

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

(thay thế "flashplugin-nonfree" bằng tên của gói bị hỏng và thay thế "prerm" bằng loại tập lệnh không thành công - trong trường hợp của tôi đó là "postrm", tập lệnh xóa bài.)

Và họ nói Ubuntu rất dễ sử dụng !! càu nhàu


--purge là tốt hơn để thả deps bị hỏng
stepancheg

1
Tôi đã tìm kiếm hàng giờ để tìm giải pháp cho một vấn đề tương tự, và đây là giải pháp duy nhất có hiệu quả. Cảm ơn bạn.
LukeGT

6

Tôi đã có cùng một vấn đề với cài đặt mysql. Bạn cần thanh lọc các gói. Chỉ cần loại bỏ một gói không loại bỏ các tập tin cấu hình đi kèm với nó.

Ngoài ra, tôi sẽ đề cập đến mysql-server-5.0 , nhưng nhận ra rằng có một gói trình bao bọc mysql-server luôn trỏ đến phiên bản mới nhất. tức là nếu bạn yêu cầu cài đặt mysql-server , apt-get sẽ cho bạn biết rằng nó phụ thuộc vào mysql-server-5.0 và cài đặt cả hai. Nếu bạn có gói máy chủ mysql trên hệ thống, bạn nên đảm bảo rằng nó cũng bị mất trước khi bạn cố gắng cài đặt lại.

  • Hãy chắc chắn rằng máy chủ mysql (mysqld) không chạy. Nếu có, hãy mang nó xuống:

    sudo /etc/init.d/mysqld dừng lại

  • Kiểm tra xem có gói nào phụ thuộc vào mysql-server-5.0 không:

    sudo apt-cache yêu cầu mysql-server-5.0

    Nếu họ làm như vậy, bạn sẽ cần sử dụng tùy chọn --force để gỡ cài đặt.

  • Lọc gói (bao gồm tùy chọn - Force , tùy thuộc vào # 2)

    sudo apt-get --purge loại bỏ - lực lượng mysql-server-5.0

  • Đảm bảo các tệp cài đặt cũng bị xóa bằng cách chạy

    sudo apt-get autoclean
    sudo apt-get autoremove

  • Cài đặt lại gói máy chủ

    sudo apt-get cài đặt mysql-server-5.0

Điều này hy vọng sẽ khắc phục vấn đề của bạn. Tuy nhiên, gói vẫn có thể bị hỏng, nếu bạn thực hiện bất kỳ thay đổi nào đối với các tệp đến từ gói phổ biến mysql .

mysql-common là gói cơ sở được sử dụng bởi cả các thành phần máy khách và máy chủ. Nếu mọi thứ không hoạt động, hãy thử cài đặt lại gói này. Chắc chắn sẽ có các gói phụ thuộc vào điều này; kiểm tra bằng cách sử dụng số 2 ở trên. Lọc máy chủ mysql trước khi cài đặt lại mysql-common . Ngoài ra, đừng quên cài đặt lại mysql-common , nếu không hệ thống của bạn sẽ bị hỏng.


1

Bạn có thể muốn aptitudethử, có xử lý phụ thuộc tốt hơn:

sudo aptitude remove mysql-server-5.0

Lỗi ở đây là dpkg, vì vậy tôi không nghĩ rằng aptitudesẽ nhất thiết phải trả giá tốt hơn. Đừng làm cho tôi sai, tôi là tất cả cho aptitudequa apt-get, nhưng vào cuối ngày, cả hai đều tay thực nitty-gritty qua dpkg(mà bạn sẽ được hạnh phúc để nghe ban đầu được thực hiện trong Perl).
Telemachus

;-) Tôi chỉ nghĩ rằng nó có thể đáng để thử.
innaM

0

Thử

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

Nếu gói khác bị hỏng, hãy thử apt-get remove --forcegói đó.


0

Các dpkglỗi mà bạn có ở đó gợi ý rằng vấn đề xảy ra khi dpkgđang cố gắng để thực sự loại bỏ các gói. (Vào cuối ngày, apt-getSynaptictương tự bắt tay vào công việc thực tế dpkg.)

Bạn đã thử làm chính xác những gì tin nhắn nói và cài đặt lại trước chưa?

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

Nghe có vẻ ngớ ngẩn, nếu dpkgbị nghẹt thở trong quá trình xóa (vì một số tệp được cho là đã bị mất trong thời gian tạm thời), sau đó cài đặt lại và sau đó gỡ bỏ có thể giúp ích. Hãy chắc chắn rằng mysqlnó không chạy trước khi bạn cố gắng cài đặt hoặc gỡ bỏ nó, như nagul gợi ý .


0

dpkg -r --force-remove-reinstreq <package> loại bỏ một gói mà không cần kiểm tra nếu nó yêu cầu cài đặt lại.

Sau đó, bạn sẽ có thể cài đặt lại gói với trình quản lý gói ưa thích của bạn.


0

Tôi đã có vấn đề này với người đưa thư. Đã xóa /etc/init.d/mailman với

rm /etc/init.d/mailman

đã sửa nó :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.