无法通过update manager / apt-get upgrade安装任何更新

Modified on: Sat, 09 Jun 2018 06:42:53 +0800

过去几周我一直在运行Ubuntu 12.04。我最近尝试通过Update Manager下载并安装一些文件。它找到了几个文件,下载了它们,但后来无法安装它们。它给出了错误:

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

我尝试使用apt-get upgrade,但产生了类似的错误:

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)

非常感谢任何帮助。提前谢谢。

编辑:这里有一些可能有用的额外信息。
我最初的问题是Ubuntu软件中心无法打开。我发现Update Manager和Synaptic Package Manager也无法打开。他们都犯了一个错误:

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

经过大量谷歌搜索后,我似乎解决了这个问题,因为包管理器会再次打开。当我尝试从Update Manager下载并安装任何更新时,我在本文开头就收到了错误。

最佳答案

我已使用这些说明解决了这个问题。

  

所以解决方案如下:

  
  

      
  1. 进入/var/lib/dpkg目录
  2.   
  3. 备份status文件
  4.   
  5. 编辑status文件
  6.   
  7. 搜索提供错误的包
  8.   
  9. 只需删除此软件包中的行(但允许其他所有与其他软件包相关的行,即使它们在“替换”或“取决于”字段中包含损坏的软件包)


      
      

    [...]

  10.   
  11. 保存status文件中的更改

  12.   
  13. 运行:sudo dpkg --configure -a
  14.   
  15. 强制重新安装缺少的依赖项(因为现在有一些):

    sudo apt-get -f install
    

      
      

    我认为如果破损的软件包不依赖于任何其他软件包(可能很少见),只需重新安装即可:

    sudo apt-get install the_package
    
  16.   
  17. 现在一切都很好,可以更新,升级或安装新套餐!

  18.   醇>

应该注意的是,我在那里给出的解决方案有一些差异。状态文件不容易编辑(因为它是一个重要的文件,从不打算编辑)。在那里进行的任何编辑都应该小心,并且在进行任何更改之前应该备份文件。

我不得不重复步骤4-8三次(每次错误只是使用不同的包时)。最后,当所有软件包都被删除后,我能够重新安装它们,这解决了我的问题。


相关问答

添加新评论