坚持使用 apt --fix-broken install (libc6:amd64 软件包安装后)

Posted

技术标签:

【中文标题】坚持使用 apt --fix-broken install (libc6:amd64 软件包安装后)【英文标题】:Stuck with apt --fix-broken install (libc6:amd64 package post-installation) 【发布时间】:2020-07-11 15:18:15 【问题描述】:

我的系统在 WSL 中运行,我至少每隔几天升级一次。 我坚持安装一个软件包,并寻找解决此问题的方法:

$ sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  libbind9-161 libdns-export1107 libdns1107 libdns1109 libirs161 libisc-export1104 libisc1104 libisc1105 libisccc161
  libisccfg163 liblwres161 liboauth0
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libc-bin
The following packages will be upgraded:
  libc-bin
1 upgraded, 0 newly installed, 0 to remove and 882 not upgraded.
6 not fully installed or removed.
Need to get 0 B/633 kB of archives.
After this operation, 8,192 B of additional disk space will be used.
Do you want to continue? [Y/n]
Setting up libc6:amd64 (2.31-0ubuntu6) ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
sleep: cannot read realtime clock: Invalid argument
dpkg: error processing package libc6:amd64 (--configure):
 installed libc6:amd64 package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 libc6:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

接下来我可以尝试什么?

【问题讨论】:

【参考方案1】:

您可以使用此命令序列(最多 3 个)强制重新下载有问题的软件包的部分文件。完成剩余步骤以将新文件与旧文件合并,以避免在此尝试中未下载的非违规软件包出现警告和问题。

    sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old sudo mkdir /var/lib/dpkg/info sudo apt-get update && sudo apt-get -f install sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old sudo rm -rf /var/lib/dpkg/info  sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info

【讨论】:

``` libkmod:错误../libkmod/libkmod-module.c:1668 kmod_module_new_from_loaded:无法打开/proc/modules:没有这样的文件或目录错误:无法获取模块列表:配置文件中没有此类文件或目录设置 xserver-xorg-legacy/xwrapper/allowed_users 设置 libc6:amd64 (2.31-0ubuntu9) ... sleep: 无法读取实时时钟:无效参数 dpkg:错误处理包 libc6:amd64 (- -configure): 已安装 libc6:amd64 包安装后脚本子进程返回错误退出状态 1 处理时遇到错误:libc6:amd64 ``` 步骤 4 到 6 的目的是什么?从系统的角度来看,似乎效果不明显,或者我错过了什么? 谢谢@OdTu,你拯救了我的一天......我在安装 libmysqlclient-dev 时遇到了问题,只有这个解决方案有效 在我的情况下,它并没有解决问题,但我看到其他一些人的问题被覆盖了。谢谢【参考方案2】:

我遇到了同样的问题,this bug report 的这个程序修复了它:

编辑/var/lib/dpkg/info/libc6\:amd64.postinst

并注释掉该行

# set -e

所以 $apt-get -f install 可以继续。

【讨论】:

谢谢,帮了大忙,终于可以从测试转20.04LTS了 @AdamMierzwiak 请注意,这只会禁用该安装后脚本中的“错误停止”; Ubuntu fossal 并没有在 WSL1 中正式运行,所以之前升级到 WSL2 可能会更好。这可能不是唯一的问题。 看不出来就是第二行了! 你救了我! 谢谢。在我的 cygwin 安装完成后,我不得不切换到 WSL,我想现在也可以切换,但很快就遇到了这个问题。感谢您提供简单而准确的解决方案。

以上是关于坚持使用 apt --fix-broken install (libc6:amd64 软件包安装后)的主要内容,如果未能解决你的问题,请参考以下文章

Deepin 15.11 安装软件出现“您也许需要运行“apt --fix-broken install”来修正上面的错误

被apt --fix-broken安装卡住了(libc6:amd64包安装后)。

Ubuntu apt-get install 报错Try ‘apt --fix-broken install‘ with no packages (or specify a solution).

apt-get的installupdateupgrade的区别

Emacs shell 模式中的 Bash 自动完成

Linux apt-get vs apt All In One