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 ディレクトリ全体をコピーしたところ、問題は解決しました。

正しいファイル コンテンツが何であるかを解明しようとしている人には幸運を祈ります。これを Google で検索すると、1000 以上の回答が返されますが、すべて異なります。幸運なことに、私は正しいシステムを持っていました。そこで、別の構成を試してみることをお勧めします。これは、5 つの異なるシステムで機能しました。

/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

公開鍵が不足しているというエラーが表示される場合もあります。これは、trusted.gpg が不完全であるためです。これを修正するには、この記事の手順に従ってください。 https://chrisjean.com/fix-apt-get-update-the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available/

関連情報