Cara memperbaiki pembaruan sinaptik yang rusak: "Paket dalam kondisi tidak konsisten yang sangat buruk"

15

Saya memiliki Dell Mini9 yang menjalankan Ubuntu 8.10. Suatu hari saya punya ide cemerlang untuk melihat apakah saya bisa menginstal tumpukan LAMP. Saya kesulitan menginstal MySQL 5.0. Saya tidak ingat kesalahan, tetapi sejak semua upaya untuk menjalankan pembaruan-manajer, sinaptik, atau apt-get gagal dengan kesalahan tentang mysql-server-5.0: "Paket dalam keadaan tidak konsisten yang sangat buruk".

Saya sudah mencoba apt-get remove mysql-server-5.0dan juga installtetapi tidak berhasil. Keduanya gagal dengan kesalahan yang sama di bawah ini. Bagaimana saya bisa memperbaikinya?

$ sudo apt-get hapus mysql-server-5.0
Membaca daftar paket ... Selesai
Membangun pohon ketergantungan       
Membaca informasi keadaan ... Selesai
Paket-paket berikut secara otomatis diinstal dan tidak lagi diperlukan:
  dhcdbd libisc32
Gunakan 'apt-get autoremove' untuk menghapusnya.
Paket-paket berikut akan DIHAPUS:
  mysql-server-5.0
0 ditingkatkan, 0 baru dipasang, 1 untuk dihapus dan 164 tidak ditingkatkan.
1 tidak sepenuhnya diinstal atau dihapus.
Setelah operasi ini, ruang disk 85,4MB akan dibebaskan.
Apakah Anda ingin melanjutkan [Y / n]? 
dpkg: kesalahan pemrosesan mysql-server-5.0 (--remove):
 Paket dalam keadaan tidak konsisten sangat buruk - Anda harus
 pasang kembali sebelum mencoba menghapus.
Galat ditemukan saat memproses:
 mysql-server-5.0
E: Sub-proses / usr / bin / dpkg mengembalikan kode kesalahan (1)
spoulson
sumber
Pertimbangkan untuk menggunakan <pre> untuk output layar di mana penyorotan sintaks tidak diperlukan.
John Oxley

Jawaban:

19

Tidak ada jawaban lain yang bekerja untuk saya di Maverick.

Dalam kasus saya, saya menemukan ini berfungsi:

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

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

(mengganti "flashplugin-nonfree" dengan nama paket yang rusak, dan mengganti "prerm" dengan jenis skrip yang gagal - dalam kasus saya ini adalah "postrm", skrip post-removal.)

Dan mereka mengatakan Ubuntu mudah digunakan !! menggerutu menggerutu

Robin Green
sumber
--purge lebih baik untuk menjatuhkan deps yang rusak
stepancheg
1
Saya sudah mencari berjam-jam untuk solusi untuk masalah yang sama, dan ini adalah satu-satunya yang berhasil. Terima kasih.
LukeGT
6

Saya memiliki masalah yang sama persis dengan menginstal mysql. Anda harus membersihkan paket itu. Hanya menghapus paket tidak menghapus file konfigurasi yang menyertainya.

Juga, saya akan merujuk ke mysql-server-5.0 , tetapi menyadari bahwa ada paket wrapper mysql-server yang selalu menunjuk ke versi terbaru. yaitu jika Anda meminta untuk menginstal mysql-server , apt-get harus memberi tahu Anda bahwa itu tergantung pada mysql-server-5.0 dan menginstal keduanya. Jika Anda memiliki paket mysql-server pada sistem, Anda harus memastikan itu hilang juga sebelum Anda mencoba menginstal ulang.

  • Pastikan server mysql (mysqld) tidak berjalan. Jika ya, bawa turun:

    sudo /etc/init.d/mysqld berhenti

  • Periksa apakah ada paket yang bergantung pada mysql-server-5.0:

    sudo apt-cache rdepends mysql-server-5.0

    Jika ya, Anda harus menggunakan opsi --force untuk menghapus instalasi.

  • Bersihkan paket (termasuk opsi --force , tergantung pada # 2)

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

  • Pastikan file penginstal juga dihapus dengan menjalankan

    sudo apt-get autoclean
    sudo apt-get autoremove

  • Instal paket server lagi

    sudo apt-get install mysql-server-5.0

Semoga ini dapat memperbaiki masalah Anda. Namun, paket tersebut mungkin masih rusak, jika Anda membuat perubahan pada file yang berasal dari paket mysql-common .

mysql-common adalah paket dasar yang digunakan oleh komponen client dan server. Jika masih tidak berfungsi, coba instal ulang paket ini. Pasti akan ada paket yang tergantung pada ini; periksa menggunakan # 2 di atas. Bersihkan server mysql sebelum menginstal ulang mysql-common . Juga, jangan lupa untuk menginstal ulang mysql-common , kalau tidak sistem Anda akan sangat rusak.

Nagul
sumber
1

Anda mungkin ingin aptitudemencoba, yang memiliki penanganan dependensi yang lebih baik:

sudo aptitude remove mysql-server-5.0
innaM
sumber
Kesalahan di sini adalah dpkg, jadi saya pikir aptitudetidak perlu ongkos lebih baik. Jangan salah paham, saya sudah aptitudeselesai apt-get, tetapi pada akhirnya, mereka berdua menyerahkan seluk beluk dpkgyang sebenarnya (yang Anda akan senang mendengar awalnya diterapkan di Perl).
Telemakus
;-) Saya hanya berpikir mungkin patut dicoba.
innaM
0

Mencoba

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

Jika ada paket lain yang rusak, coba apt-get remove --forcepaket itu juga.

John Oxley
sumber
0

The dpkgkesalahan yang telah ada menunjukkan bahwa masalah terjadi ketika dpkgsedang mencoba untuk benar-benar menghapus paket. (Pada akhirnya, apt-getdan Synapticsejenisnya menyerahkan pekerjaan yang sebenarnya untuk dpkg.)

Sudahkah Anda mencoba melakukan persis seperti yang dikatakan pesan dan menginstal ulang terlebih dahulu?

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

Walaupun terdengar konyol, jika dpkgtersedak selama proses penghapusan (karena beberapa file yang seharusnya dihapus telah hilang untuk sementara), instal ulang dan kemudian hapus terkadang dapat membantu. Pastikan itu mysqltidak berjalan sebelum Anda mencoba menginstal atau menghapusnya, seperti yang disarankan nagul .

Telemakus
sumber
0

dpkg -r --force-remove-reinstreq <package> menghapus sebuah paket tanpa memeriksa apakah itu membutuhkan instalasi ulang.

Setelah itu Anda harus dapat menginstal ulang paket dengan manajer paket pilihan Anda.

Jaime Soriano
sumber
0

Saya punya masalah dengan tukang pos. /Etc/init.d/mailman dihapus dengan

rm /etc/init.d/mailman

memperbaikinya :)

Stéphan Champagne
sumber