Ubuntu 16.04 中的软件更新程序失败

Ubuntu 16.04 中的软件更新程序失败

软件更新程序警告我有一些可用的更新,但是当我单击“安装”时它失败了...发生了什么?

如果我从终端运行它,那么我看到的是:

从终端启动

点击“安装”后

我该怎么做才能解决这个问题?

老实说,几分钟前我试图安装 Openscad,所以我添加了正确的 PPA。但它无法安装,所以我使用“软件和更新”程序将其删除。现在我遇到了这个新问题……

运行命令后sudo apt 更新 && sudo apt 升级,这就是我看到的:

Hit:1 htp://de.archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 htp://archive.canonical.com/ubuntu xenial InRelease                                       
Hit:3 htp://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial InRelease                           
Hit:4 htp://de.archive.ubuntu.com/ubuntu xenial-updates InRelease                                   
Hit:5 htp://de.archive.ubuntu.com/ubuntu xenial-backports InRelease                                 
Get:6 htp://security.ubuntu.com/ubuntu xenial-security InRelease [94,5 kB]
Fetched 94,5 kB in 0s (110 kB/s)                               
Reading package lists... Done
Building dependency tree       
Reading state information... Done
33 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
kde-l10n-engb linux-headers-4.4.0-28 linux-headers-4.4.0-28-generic linux-image-4.4.0-28-generic
linux-image-extra-4.4.0-28-generic python-exif
Use 'sudo apt autoremove' to remove them.
The following packages will be upgraded:
compiz compiz-core compiz-gnome compiz-plugins-default eog gnupg gpgv libcompizconfig0 libdecoration0 libframe6
libgcrypt20 libgcrypt20:i386 libharfbuzz-icu0 libharfbuzz0b libidn11 libidn11:i386 libpoppler-glib8
libpoppler-qt5-1 libpoppler58 libssl1.0.0 libssl1.0.0:i386 openssl poppler-utils python3-distupgrade
python3-software-properties snap-confine snapd software-properties-common software-properties-gtk
ubuntu-core-launcher ubuntu-release-upgrader-core ubuntu-release-upgrader-gtk vino
33 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/12,5 MB of archives.
After this operation, 466 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Extracting templates from packages: 100%
Preconfiguring packages ...
dpkg: unrecoverable fatal error, aborting:
files list file for package 'tzdata' contains empty filename
E: Sub-process /usr/bin/dpkg returned an error code (2)*

答案1

解决了!

我必须感谢找到的答案这里针对我发布的解决方案这里由用户加茨(向下滚动页面)

这肯定是与硬盘错误和/或坏扇区有关的问题。事实上,通过检查目录/var/lib/dpkg/status/info(包含每个已安装软件包的文件列表),我发现两个文件包含不可读的字符,即使它们应该是简单的纯文本文件。

我所做事情的时间顺序如下:

  1. 运行 fdisk 检查/修复错误

    • 从 Live CD 重新启动 Ubuntu
    • 运行终端命令行
    • 通过发出命令获取磁盘列表sudo fdisk -l
    • 在除引导分区之外的所有分区上运行磁盘检查:fsck /dev/sdaX
      (在我的例子中 X = 2 或 5 或 6)
    • 对于 fsck 提出的所有更正都回答“是”。
    • 关闭电脑并正常重启(即不使用 Live CD)
  2. 打开了地位dkpg 使用的文件,以超级用户身份使用 gedit:gksudo gedit /var/lib/dpkg/status

  3. 在同一目录中保存了备份(即status-bkp
  4. 搜索有问题的包的名称tzdata
  5. 删除与包相关的所有行,然后保存了修改后的文件(请参阅下面我删除的内容)
  6. 发出命令sudo dpkg dpkg --configure -a
  7. 发出命令sudo apt-get -f install
    (这将重新安装已删除的软件包并调整所有损坏的依赖关系)
  8. 尝试启动更新管理器来检查一切是否正常:sudo update manager
  9. 单击“安装”后,我收到另一个损坏的包的新错误(哇!),就我而言:
    files list file for package libnss3-nssdb is missing final newline
  10. 像步骤(2)那样再次打开状态文件,删除有问题的包并再次保存(见下面我删除的内容)
  11. 再次发出命令sudo dpkg dpkg --configure -a
  12. 再次发出命令sudo apt-get -f install
  13. 再次运行更新管理器:sudo update manager
  14. 并且...... 一切顺利!
    现在更新管理器又可以像以前一样工作了:系统已更新

希望这可以帮助!

在步骤 2 中删除的行(就我而言):

软件包:tzdata
状态:安装成功
优先级:必填
部分:本地化
安装大小:2769
维护者:Ubuntu 开发人员
建筑:全部
Multi-Arch:外国
版本:2016f-0ubuntu0.16.04
替换:libc0.1、libc0.3、libc6、libc6.1
提供:tzdata-stretch
依赖: debconf (>= 0.5) | debconf-2.0
描述:时区和夏令时数据
 此包包含执行所需的数据
 世界各地许多代表性地点的标准当地时间
 全球。它会定期更新,以反映所做的更改
 政治机构的时区边界、UTC 偏移量以及
 夏令时规则。
主页:http://www.iana.org/time-zones
原始维护者:GNU Libc 维护者

在步骤 10 中删除的行(就我而言):

软件包:libnss3-nssdb
状态:安装成功
优先级:可选
部分: 管理
安装尺寸:86
维护者:Ubuntu 开发人员
建筑:全部
Multi-Arch:外国
来源:nss
版本:2:3.23-0ubuntu0.16.04.1
依赖:libnss3(= 2:3.23-0ubuntu0.16.04.1)
描述:网络安全安全库 - 共享数据库
 该包包括共享证书和密钥数据库。
主页:http://www.mozilla.org/projects/security/pki/nss/
原始维护者:Mozilla 相关软件包的维护者

相关内容