无法更新 libc6:子进程旧的删除后脚本被信号终止(分段错误)

无法更新 libc6:子进程旧的删除后脚本被信号终止(分段错误)

从 Raspbian 7 升级到 Raspbian 8 时出现了一些问题。我找到了与此标题相似的线程,并尝试了很多方法,但我总是遇到相同的错误。

节点位于有限带宽线路上的远程位置,因此进行完全重建是不切实际的。

我得到的信息最丰富的消息是“dpkg -C”:

root@mynode# dpkg -C
The following packages are in a mess due to serious problems during
installation.  They must be reinstalled for them (and any packages
that depend on them) to function properly:
 libc6:armhf          Embedded GNU C Library: Shared libraries

The following packages have been unpacked but not yet configured.
They must be configured using dpkg --configure or the configure
menu option in dselect for them to work:
 libc6-dev:armhf      GNU C Library: Development Libraries and Header Files
 libc-dev-bin         GNU C Library: Development binaries
 locales              GNU C Library: National Language (locale) data [support]
 libnih1              NIH Utility Library
 libnih-dbus1         NIH D-Bus Bindings Library

但是当我尝试安装或重新安装 libc6:armhf 时,会发生这种情况:

root@mynode# apt-get --reinstall install  libc6:armhf
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 locales : Depends: libc-bin (> 2.19) but 2.13-38+rpi2+deb7u8 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

当我尝试安装或重新安装 libc-bin 时,我得到:

root@mynode# apt-get --reinstall install  libc-bin
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libc6
Suggested packages:
  glibc-doc
The following packages will be upgraded:
  libc-bin libc6
2 upgraded, 0 newly installed, 0 to remove and 731 not upgraded.
6 not fully installed or removed.
Need to get 0 B/5,124 kB of archives.
After this operation, 870 kB disk space will be freed.
Do you want to continue [Y/n]? y
Preconfiguring packages ...
(Reading database ... 82552 files and directories currently installed.)
Preparing to replace libc6:armhf 2.13-38+rpi2+deb7u8 (using .../libc6_2.19-18+deb8u10_armhf.deb) ...
Checking for services that may need to be restarted...
Checking init scripts...
Unpacking replacement libc6:armhf ...
dpkg: warning: subprocess old post-removal script was killed by signal (Segmentation fault)
dpkg: trying script from the new package instead ...
dpkg: error processing /var/cache/apt/archives/libc6_2.19-18+deb8u10_armhf.deb (--unpack):
 subprocess new post-removal script was killed by signal (Segmentation fault)
dpkg: error while cleaning up:
 subprocess installed pre-installation script was killed by signal (Segmentation fault)
Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.19-18+deb8u10_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

我被困住了。有什么建议么?

答案1

我想通了 - 有点 - 我发现了一个相同的系统,能够在出现问题时进行升级。我比较了 /etc/apt 中的各个文件,发现了许多差异。

我将整个 apt 目录从成功的系统复制到损坏的系统,这解决了问题。

祝任何试图找出正确文件内容的人好运。谷歌搜索会返回 1000 个答案,每个答案都不同。对我来说幸运的是我有一个正确的系统。所以这里有另一种配置供您尝试。这个对我来说适用于五个不同的系统:

/etc/apt/sources.list:

deb http://archive.raspberrypi.org/debian/ jessie main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ jessie main
root@stn4133:/etc/apt# more sources.list
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ jessie main contrib non-free rpi

/apt/etc/sources.list.d/raspi.list:

deb http://archive.raspberrypi.org/debian/ jessie main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ jessie main

您可能还会收到错误消息,告知您缺少公钥。这是因为 trust.gpg 不完整。要解决此问题,您可以按照本文中的说明进行操作: https://chrisjean.com/fix-apt-get-update-the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available/

相关内容