apt-get - 分段错误:处理软件包 libc-bin 时出错

apt-get - 分段错误:处理软件包 libc-bin 时出错

嗨,过去一个月我一直在努力解决这个问题。

sudo apt-get upgradesudo apt-get autoremove出现以下错误

E: Unmet dependencies. Try using -f.

当我运行时sudo apt-get install -f,出现如下错误。

Fetched 30.2 MB in 32s (928 kB/s)                                              
Preconfiguring packages ...
Setting up libc-bin (2.23-0ubuntu9) ...
Segmentation fault
/sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/usr/local/lib' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
Segmentation fault
dpkg: error processing package libc-bin (--configure):
 subprocess installed post-installation script returned error exit status 139
Errors were encountered while processing:
 libc-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)

1)问题发布在这里关联。但提到的答案是针对具体用户的。

2)正如这里提到的关联我试过了sudo apt-get --reinstall install libc-bin。但这显示

E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

3)sudo dpkg --configure -a 错误如下

Errors were encountered while processing:
 libosmesa6:i386
 libgl1-mesa-dri:i386
 libglapi-mesa:i386
 libgl1-mesa-glx:amd64
 libgl1-mesa-glx:i386
 libegl1-mesa:amd64
 xserver-xephyr
 xserver-xorg-core
 libgl1-mesa-dev:i386
 libwayland-egl1-mesa:amd64

任何帮助都将不胜感激,因为这是一台配置了我所有学术项目的机器,因此无法重新安装。

编辑:

4)sudo dpkg --configure -D 777 libc-bin给出以下输出:

D000001: ensure_diversions: new, (re)loading
D000001: process queue pkg libc-bin:amd64 queue.len 0 progress 1, try 1
D000040: checking dependencies of libc-bin:amd64 (- <none>)
D000400:   checking group ...
D000400:     checking possibility  -> libc6
D000400:       checking non-provided pkg libc6:amd64
D000400:       is installed, ok and found
D000400:     found 3
D000400:   found 3 matched 0 possfixbytrig -
D000400:   checking group ...
D000400:     checking possibility  -> libc6
D000400:       checking non-provided pkg libc6:amd64
D000400:       is installed, ok and found
D000400:     found 3
D000400:   found 3 matched 0 possfixbytrig -
D000040: ok 2 msgs >><<
D000040:     checking Breaks
D000400:       checking breaker locales:all virtbroken <none>
Setting up libc-bin (2.23-0ubuntu9) ...
D000002: fork/exec /var/lib/dpkg/info/libc-bin.postinst ( configure 2.23-0ubuntu9 )
Segmentation fault
/sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/usr/local/lib' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
Segmentation fault
dpkg: error processing package libc-bin (--configure):
 subprocess installed post-installation script returned error exit status 139
D000001: ensure_diversions: same, skipping
Errors were encountered while processing:
 libc-bin

编辑:

5)我正在尝试这里提到的解决方案关联.但sudo mv /usr/lib/x86_64-linux-gnu/libtic.so.5.9 /root给出了错误

mv: cannot stat '/usr/lib/x86_64-linux-gnu/libtic.so.5.9': No such file or directory

这是否意味着就我而言,其他某个库导致了这个问题?

编辑:我能够在期间进行 stracesudo apt-get install -f并且日志可用这里;如果这对任何人都有帮助。

6)我尝试增加 APT 缓存限制,如前所述这里.但是这并没有什么帮助。

编辑更新 回答 Elder Geek 的建议

7) 我用 memtest 测试了我的内存,没有显示任何错误。我还对我的硬盘进行了 SMART 自检(简短),结果显示“磁盘正常”。

8) 我已经手动检查过,这个特定的库/usr/lib/x86_64-linux-gnu/libtic.so.5.9并不存在于该位置。(因此,我相信我的系统中不存在这样的库,而是由其他库导致的。)

/usr/lib/i686-linux-gnu9)我的系统中没有该路径。

10) 有一个拼写错误,我正在检查/etc/apt/sources.lst原始答案中提到的内容。我确实有一个sources.list

这些是我在那里看到的条目。我没有看到那里提到任何 ppa。

deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu trusty partner
deb http://archive.ubuntu.com/ubuntu xenial main universe restricted
deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe
deb http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe
deb http://archive.ubuntu.com/ubuntu xenial-backports main restricted universe

此外,由于 apt 本身已损坏,我无法安装任何 ppa 管理器,因此我无法安装任何东西。

11) 附加信息:这原本是一个 14.04 系统,后来升级到了 16.04。升级期间,我在 14.04 中拥有的那些 ppa 被禁用了。不过,这次升级发生在将近一年前,而系统已经顺利运行了近一年。

12) 最后也是最重要的一点:我记得sudo apt-get dist-upgrade在所有问题开始出现之前我执行了一段时间。这可能是导致问题的原因吗?

答案1

虽然分段错误通常与编写不当的代码试图访问受限的内存区域有关,但我认为这不是导致您出现问题的原因。虽然这种情况并不常见,但这些错误也可能是由硬件故障引起的。我首先要确保您有一个稳定的环境,方法是运行记忆测试在您的系统上,并确保您的硬盘状况良好如果您正在使用交换。如果发现有故障的硬件,请更换它。

无法开始

表示该文件或目录不存在,或者您的用户即使通过 sudo 也无法访问它。您可以通过命令检查权限ls -l /lib/i686-linux-gnu。由于/usr/lib/i686-linux-gnu在 64 位版本的 Ubuntu 中找不到(基于 假设Path /usr/lib/x86_64-linux-gnu given more than once)。

根据您提供的信息,我的最佳评估是,导致这些错误的根本原因是软件源中的条目不正确。这些条目位于文件/etc/apt/sources.lst或目录中的列表中/etc/apt/sources.list.d。您可以开始尝试使用如何删除 PPA?

如果你正在运行带有 GUI 的桌面,你可能更喜欢Y PPA 经理这是完成此类任务的有用工具。

如果这个答案有任何令人困惑或不清楚的地方,请发表评论,我会尽力澄清。

编辑:进一步评估以涵盖自最初写下此答案以来提出的其他观点。

7)在没有硬件故障的情况下,我们需要深入挖掘

8)从第5点开始非常清楚。

9)第4点也清楚了。

重新编辑10)拥有有效的 /etc/apt/sources.list 意味着您不需要替换它。

11)我的系统也从 14.04 升级到了 16.04,我的 /etc/apt/sources.list 仍然完好无损,正如您现在报告的那样。

12)这似乎是可能的,因为错误甜点中提到的这条评论。

此时,选项有限。以下选项无特定顺序。请随意选择看起来最不痛苦的选项。

1)恢复为上一次备份

2)备份用户数据(无论如何你都应该这样做)从头安装

3)修复您的安装。下载易于 以及它的所有依赖项并重新安装它们dpkg -i packagename

答案2

我遇到了同样的问题,并在一位巴西同胞的帮助下解决了(https://www.it-swarm.dev/pt/apt/dpkg-pacote-de-processamento-de-erros-libc-bin-configure/961032617/

基本上:

sudo rm /var/cache/ldconfig/aux-cache

然后结束……

/sbin/ldconfig

答案3

这对我有用:

sudo mv /var/lib/dpkg/info/libc-bin.* /tmp/
sudo dpkg --remove --force-remove-reinstreq libc-bin
sudo dpkg --purge libc-bin
sudo apt install libc-bin
sudo mv /tmp/libc-bin.* /var/lib/dpkg/info/

来源: https://www.codegrepper.com/code-examples/shell/installed+libc-bin+package+post-installation+script+subprocess+returned+error+exit+status+134

相关内容