Pertanyaan Bagaimana cara menghapus / menginstal paket yang tidak sepenuhnya terinstal?


Saya pergi menginstal bsnes beberapa hari yang lalu dan karena alasan apa pun instalasi gagal. Sekarang, saya tidak dapat memperbarui, menginstal paket baru, atau melakukan perintah apt-get karena mereka semua mencoba memproses paket yang rusak ini dan gagal. Mencoba memasang paket baru juga menghancurkannya dengan nasib yang sama. Kesalahan yang saya dapatkan adalah:

Setting up google-chrome-stable (33.0.1750.152-1) ...
/var/lib/dpkg/info/google-chrome-stable.postinst: 124: /var/lib/dpkg/info/google-chrome-stable.postinst: update-alternatives: not found
dpkg: error processing google-chrome-stable (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up bsnes (0.088-7) ...
/var/lib/dpkg/info/bsnes.postinst: 5: /var/lib/dpkg/info/bsnes.postinst: update-alternatives: not found
dpkg: error processing bsnes (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 google-chrome-stable
 bsnes
E: Sub-process /usr/bin/dpkg returned an error code (1)

Saya telah mencari di Google dan di sini di Tanya Ubuntu tetapi belum menemukan solusi yang berfungsi. Perbaikan yang disarankan umumnya adalah untuk menjalankan yang berikut:

sudo apt-get clean && sudo apt-get autoremove
sudo apt-get -f install
sudo dpkg --configure -a

Namun ini tidak berhasil. Perintah apt-get semua gagal dengan kesalahan yang sama seperti di atas dan perintah dpkg tidak membantu. Hal lain yang sering mereka sarankan untuk membersihkannya melalui Synaptic atau baris perintah, yang juga gagal.

Terima kasih untuk bantuannya


45
2018-03-24 02:42


asal




Jawaban:


Untuk pengguna tingkat lanjut, gunakan dengan resiko Anda sendiri.

Menurut pesan kesalahan berikut:

subprocess installed post-installation script returned error exit status 127

Anda mungkin ingin mengedit /var/lib/dpkg/info/[package_name].postinst dan komentar semuanya (atau lebih baik lagi, cobalah untuk memahaminya dan mengidentifikasi masalah), lalu coba apt-get lagi.

Perhatikan bahwa meskipun dalam pertanyaan khusus ini, pesan menyangkut "pasca-pemasangan", dapat disebutkan misalnya, "pra-penghapusan" atau "pasca-penghapusan" sebagai gantinya (di mana kasus ekstensi file yang akan diedit akan menjadi .prerm atau .postrm).


48
2018-06-05 07:58



Sebenarnya ini adalah metode terbaik. Menginstal ulang dpkg tidak selalu membantu. - Danatela
Terima kasih banyak. Saya harus memperbaikinya /var/lib/dpkg/info/[package_name].prermtetapi posting Anda memberi saya arah yang benar. Tentunya untuk pengguna tingkat lanjut, ini berisiko! - sмurf
Jawaban terbaik. Terima kasih! Mengoreksi .prerm dan .postrm file memperbaiki masalah. - fuser


Selain yang sudah Anda posting, ada beberapa perintah lain yang dapat membantu.

  • Autoclean membersihkan repositori lokal dari file paket yang diambil.

    sudo apt-get autoclean
    
  • Paksa pemasangan / penghapusan paket. Gunakan dengan hati-hati

    sudo apt-get --force-yes install <pkgname>
    

    dan

    sudo apt-get --force-yes remove <pkgname>
    

Juga seperti biasa, Anda bisa menggunakannya dpkg untuk menginstal, menghapus dan membersihkan paket.

  • Memasang

    sudo dpkg -i <pkgname>
    
  • Menghapus

    sudo dpkg -r <pkgname>
    
  • Membersihkan

    sudo dpkg -P <pkgname>
    

36
2018-03-24 04:10



Baik dpkg dan perintah apt-get --force-yes mengembalikan kesalahan yang sama seperti yang saya dapatkan sebelumnya. Autoclean tidak mengembalikan kesalahan tetapi juga sepertinya tidak melakukan apa-apa dengan dua paket yang rusak. - Bijak
@Bijak Anda pasti sudah mencoba membersihkan bsnes .Apakah kamu? - Registered User
Yap, dengan dpkg -P, apt-get purge, dan dengan Synaptic - Bijak
Posting output dpkg -l |grep bsnes - Registered User
rF bsnes 0.088-7 amd64 Emulator Akurat SNES / SuperFamicom - Bijak


Jadi, setelah lebih banyak googling dan benar-benar hati-hati membaca pesan kesalahan lagi sepertinya dpkg perlu diinstal ulang.

sudo apt-get install --reinstall dpkg

Apa yang memberi tahu bahwa ini adalah masalah (jika ada yang mencari dan melihat ini) adalah itu update-alternatives: not found ada di pesan kesalahan. Segera setelah dpkg diinstal ulang, paket-paket lain mulai diinstal secara normal secara otomatis.


21
2018-03-25 03:26



Mengapa hanya jawaban yang benar (dan diterima) sejauh ini dalam daftar dengan kurang dari ⅓ suara dari jawaban teratas? +1 - David Foerster
untuk satu: karena tidak berfungsi untuk paket yang tidak dapat diunduh lagi "Penginstalan ulang linux-gambar-ekstra-4.4.0-65-generik tidak mungkin, tidak dapat diunduh." - Joe
Ini mungkin itu paling sedikit kemungkinan solusi bagi siapa saja yang datang ke sini berdasarkan judul pertanyaan. Tetapi ada banyak alasan seseorang dapat berakhir dengan masalah ini, jadi di sana akan ada banyak solusi yang diusulkan "ini bekerja untuk saya". - michael


Jika semuanya gagal. Apa yang saya lakukan adalah saya pertama kali mengubah direktori menjadi:

cd /var/lib/dpkg/info

maka saya menghapus semuanya dengan .postinst:

sudo rm *.postinst

kemudian perbarui repositori

sudo apt-get update

kemudian semuanya kembali normal ketika saya melakukannya:

sudo apt-get --force-yes install openjdk-7-jre-headless

12
2018-04-14 02:39



Ini menghapus semua skrip pasca instalasi bukan hanya paket yang terpengaruh. Agak terlalu bersemangat menurut saya. -1 - David Foerster
Jika mudah untuk mengidentifikasi dan menghapus hanya skrip post-install tertentu yang menyebabkan masalah, ini bisa menjadi cara yang sangat mudah untuk menghapus paket yang gagal. - Ian Mackinnon
setelah mimpi buruk dengan masalah kernal mengubah nama .postinst dari kernel yang terkena masalah tetap masalah - Andy


Anda dapat menghapus file paket di sutradara /var/lib/dpkg/info/ dan perbarui sumber.

sudo rm /var/lib/dpkg/info/[package_name].*
sudo dpkg --configure -a
sudo apt-get update

Kemudian, instal ulang paket Anda sudo apt-get install [package_name]

Dokter


7
2018-05-30 08:29



Sebenarnya Anda lebih baik menggunakan sudo rm /var/lib/dpkg/info/[pakege_name].*. Jika tidak, Anda juga akan menghapus paket yang dimulai dengan nama yang sama. Bagaimanapun, terima kasih untuk ini, itu adalah satu-satunya solusi yang berhasil untukku - smac89


Jika semuanya gagal, Anda dapat menghapus paket secara manual dpkg. Lari sudo dpkg -P bsnes harus membersihkan bsnes.


4
2018-03-24 02:56



dpkg: error processing package libcuda1-340 (--purge): package is in a very bad inconsistent state; you should reinstall it before attempting a removal - endolith


Dalam hal ini apt-get install -f bekerja. Saya memasang komunitas mysql-workbench

Sebelumnya dicoba apt autoclean

Saya melihat kesalahan dpkg karena beberapa dependensi yang hilang yang dapat diperbaiki dengan menginstal dalam mode paksa (menginstal dependensi)


2
2017-11-19 10:24





sudo apt-get install -f --reinstall coreutils init-system-helpers

Setelah berjalan di atas, Anda dapat menginstal / meng-upgrade / menghapus / membersihkan seperti biasa untuk paket apa pun.


0
2018-02-23 17:09