Perbaiki paket yang setengah terinstalasi


42

Saya mendapatkan kesalahan saat menggunakan sudo apt-get upgradepernyataan:

dpkg: error processing libgfortran3:amd64 (--configure):
  package libgfortran3:amd64 is not ready for configuration
  cannot configure (current status `half-installed')
Errors were encountered while processing:
  libgfortran3:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Tampaknya tidak menghalangi instalasi / meningkatkan aplikasi lain. Saya percaya masalah ini muncul karena mematikan PC saya secara langsung ketika aplikasi sedang ditingkatkan.

Bagaimana saya bisa memperbaikinya?


Jawaban:


38
sudo dpkg --remove --force-remove-reinstreq --dry-run libgfortran3:amd64

Itu hanya lari kering. Saya tidak yakin apa yang libgfortran3akan dihapus akan tetapi jalankan itu dan lihat. Dengan asumsi itu tidak akan melahap seluruh sistem, jalankan lagi tanpa --dry-rundan kemudian Anda dapat sudo apt-get install ...paket yang Anda butuhkan kembali.


4
Berhasil, terima kasih! Sebagai catatan, saya menjalankannya dan katanya dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removalsaya mengunduh paket secara manual dari packages.ubuntu.com dan berlari sudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS. Kemudian semuanya menjadi baik.
— Bora M. Alper

1
Dalam kasus saya, setelah mengikuti instruksi ini, hanya menjalankan 'apt-get install -f' menginstal ulang paket dan juga memperbaiki beberapa orang lain dengan dependensi yang rusak karenanya. Ini untuk paket data libx11 pada debian 7.
— bchurchill

Tanpa --dry-run, seperti yang Anda katakan, itu berhasil untuk saya. Terima kasih!
— Forvas

70

Untuk setengah kesalahan paket yang terinstal, --reinstall bekerja untuk saya:

sudo apt-get install --reinstall packagename 

1
Ya, tetapi peringatan bahwa setelah menginstal ulang nama paket, apt-get kemudian akan melanjutkan untuk mengkonfigurasi paket yang setengah terkonfigurasi.
— Cedric Knight

5
ini lebih aman daripada jawaban yang diterima imho.
— Zanna

sudo apt-get install --reinstal ncurses-base dan kemudian saya menjalankan pembaruan sudo apt-get menggunakan pengguna root (sudo -s), itu berfungsi seperti itu ...
— ArifMustafa

besar. hanya solusi yang memecahkan masalah saya
— iWizard

ini melakukannya untuk saya. php-pear membuat saya sakit kepala. Terima kasih!
— pcarvalho

6
sudo apt install --reinstall packagename

Ini berfungsi seperti pesona. Itu menyelesaikan masalah yang telah saya alami selama berbulan-bulan. Kasus saya dengan paketlibmysqlcppconn7v5

Yang saya lakukan adalah lari sudo apt install --reinstall libmysqlcppconn7v5


3

Saya mendapat masalah "paket setengah terinstal" yang sama dengan paket kibana. Saya mendapat kesalahan berikut:

dpkg: error processing kibana (--configure):
package kibana is not ready for configuration
cannot configure (current status 'half-installed')
Errors were encountered while processing:
  kibana
E: Sub-process /usr/bin/dpkg returned an error code (1)

Jika ada yang masih menghadapi masalah seperti ini, maka Anda dapat mencoba ini:

sudo rm /var/lib/dpkg/info/kibana*
cd /var/cache/apt/archives
sudo rm kibana*
apt-get --reinstall install kibana

Ini bekerja untuk saya. Anda hanya perlu mengganti kata 'kibana' dengan nama paket yang setengah terinstal.


2

Jika Anda ingin memperbaikinya melalui GUI, Anda dapat menggunakan sinaptik. Synaptic adalah alat manajemen paket yang luar biasa yang dulu termasuk dalam versi ubuntu yang lebih lama. Untuk menginstalnya:

sudo apt-get install synaptic

klik pada memperbaiki paket yang rusak.


synaptic tidak mencantumkan paket dalam kategori rusak :(
— Barun

2

Ini akan memperbaiki masalah Anda tanpa menginstal ulang paket.

sudo dpkg --force-remove-reinstreq --remove <package_name here>

Diikuti oleh: sudo apt-get update


Mengapa --force-remove-reinstreq? Manajer paket tidak menyatakan bahwa instalasi ulang diperlukan. Secara umum, penghapusan reguler berfungsi dengan baik untuk paket yang tidak dikonfigurasi. -1
— David Foerster

Itu hanya apa yang saya lakukan ketika tidak sudo apt-get remove <packageada pilihan dan saya tidak ingin menginstal ulang paket yang setengah terinstal. Lalu, saya gunakan --force-remove-reinstrequntuk menghapus jung-jung itu .. PS: Ada di Linux Mint .. Saya ragu apakah itu akan berbeda karena Linux didasarkan pada Ubuntu ..
— CodeGeass

1
Manajer paket bekerja sama di semua distribusi berbasis Debian (itulah dpkgsingkatan dari semuanya), tetapi Anda tidak boleh menggunakan --force-*"berjaga-jaga". Pesan-pesan kesalahan ada karena suatu alasan dan tidak boleh dianggap enteng oleh pengguna yang tidak berpengalaman, itulah sebabnya Anda seharusnya tidak menyarankan --force-*opsi yang tidak perlu kepada mereka. Kalau tidak, kami hanya bisa merekomendasikan untuk selalu menggunakan --force-allatau, lebih baik lagi, menghapus --force-*opsi dari dpkgsemuanya dan menjadikannya sebagai perilaku default karena itu akan lebih mudah dan lebih nyaman.
— David Foerster

Oke, Akui saja ... Saya lebih peduli untuk menyelesaikan pekerjaan daripada, tahu apa dan bagaimana tepatnya itu dilakukan .. Permintaan maaf ..
— CodeGeass

Hm ... Saya hanya melihat bahwa jawaban yang diterima menyarankan hal yang sama. Jadi saya mungkin salah tentang --force-remove-reinstreqtidak perlu. Tetapi itu juga berarti bahwa jawaban Anda (hampir) merupakan duplikat dari itu. Semoga lain kali lebih beruntung.
— David Foerster
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.