Tidak dapat memasang pembaruan apa pun melalui manajer pembaruan / peningkatan apt-get

12

Saya telah menjalankan Ubuntu 12,04 selama beberapa minggu terakhir. Baru-baru ini saya mencoba mengunduh dan menginstal beberapa file melalui Manajer Pembaruan. Itu menemukan beberapa file, mengunduhnya, tetapi kemudian gagal menginstalnya. Itu memberi kesalahan:

installArchives() failed: (Reading database ... 
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error

Saya mencoba menggunakan apt-get upgradetetapi kesalahan serupa dihasilkan:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  icedtea-6-jre-cacao icedtea-6-jre-jamvm openjdk-6-jre openjdk-6-jre-headless
  openjdk-6-jre-lib
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/34.6 MB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

Bantuan apa pun akan sangat dihargai. Terima kasih sebelumnya.

Sunting: Ini beberapa informasi tambahan yang mungkin berguna. Masalah asli saya adalah bahwa Pusat Perangkat Lunak Ubuntu tidak mau terbuka. Saya menemukan bahwa Manajer Pembaruan dan Manajer Paket Synaptic juga gagal untuk membuka. Mereka semua memberikan kesalahan di sepanjang baris:

"installArchives() failed: dpkg: error: reading package info file '/var/lib/dpkg/available': Input/output errorError in function:"

Setelah banyak googling, saya tampaknya memperbaiki masalah itu karena manajer paket akan membuka lagi. Ketika saya kemudian mencoba mengunduh dan menginstal pembaruan apa pun dari Manajer Pembaruan, saya mendapatkan kesalahan di awal posting ini.

pengguna64654
sumber
File apa yang sudah Anda unduh? Dari mana? Apa hubungan manajer pembaruan dengan itu?
mikewhever
Anda mungkin mencoba mencopot pemasangan (dan menginstal ulang) l paket dalam pesan. Jika gagal, Anda dapat mencoba menghapus cache.
John S Gruber
Saya masih berusaha memperbaiki ini, saya belum punya kesempatan. Saya akan mencoba instruksi yang diberikan di sini: goo.gl/oOKqG ketika saya memiliki kesempatan.
user64654
Mengapa Anda memilih untuk menginstal 12,04 dan bukan 14,04? Lagipula, kamu bilang kamu mendapatkannya beberapa minggu yang lalu, dan Trusty sudah keluar selama sembilan bulan.
John Scott

Jawaban:

16

Saya telah memperbaiki masalah dengan instruksi ini .

Jadi solusinya adalah sebagai berikut:

  1. Pergilah ke /var/lib/dpkgdirektori
  2. Buat cadangan statusfile
  3. Edit statusfile
  4. Cari paket yang memberikan kesalahan
  5. Hapus saja baris-baris dari paket ini (tetapi biarkan semua baris lain yang berhubungan dengan paket lain bahkan jika mereka berisi paket yang rusak di bidang "Ganti" atau "Tergantung")

    [...]

  6. Simpan perubahan dalam statusfile

  7. Lari: sudo dpkg --configure -a
  8. Paksa pemasangan ulang dependensi yang hilang (karena sekarang, ada beberapa):

    sudo apt-get -f install
    

    Saya berpikir bahwa jika paket yang rusak tidak bergantung pada paket lain (mungkin jarang), cukup instal ulang:

    sudo apt-get install the_package
    
  9. Semuanya baik-baik saja sekarang dapat memperbarui, meningkatkan, atau menginstal paket baru!

Perlu dicatat bahwa saya memiliki beberapa perbedaan dengan solusi yang diberikan di sana. File status tidak mudah diedit (karena ini adalah file penting dan tidak pernah dimaksudkan untuk diedit). Setiap pengeditan yang dilakukan di sana harus dilakukan dengan hati-hati, dan file tersebut harus dicadangkan sebelum Anda melakukan perubahan.

Saya harus mengulangi langkah 4-8 tiga kali (setiap kali kesalahan akan sama hanya dengan paket yang berbeda). Akhirnya ketika semua paket dihapus, saya bisa menginstalnya kembali, dan itu memperbaiki masalah saya.

pengguna64654
sumber
Bagaimana Anda menemukan paket mana yang menyebabkan kesalahan?
Seanny123
@ Seanny123 upaya sebelumnya untuk memasang apt-get mungkin akan menunjukkan kesalahan. Sebagai contoh dalam kasus saya, saya memiliki "membaca daftar file untuk paket 'manpages-dev': Kesalahan input / output" tepat sebelum prompt kembali. Dalam file status, saya mencari "Paket: manpages-dev" dan menghapus baris ke baris "Paket:" berikutnya. Setelah itu saya harus melakukan manual "apt-get install manpages-dev" dan kemudian "apt-get dist-upgrade" saya yang sebelumnya gagal selesai tanpa kesalahan. (Terima kasih user64654!)
Peter Hansen
2

Dapat terjadi bahwa disk rusak dengan inode.

Dengan CD langsung, jalankan perintah ini

sudo fdisk -l

perhatikan disk dan partisi, bisa /dev/dsb1 kemudian diperbaiki:

sudo fsck -y /dev/sdb1

Reboot, dan kembali pada sistem

sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade
Guillaume
sumber
Saya melakukan fsck via sudo shutdown -rF nowdan, tanpa lebih jauh, semuanya baik-baik saja lagi.
Klaws