無法更新 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/

相關內容