https ソースの apt-get アップデートが壊れている

https ソースの apt-get アップデートが壊れている

実行しようとすると、apt-get update次のエラーが発生します。

$ sudo apt-get update
/usr/lib/apt/methods/https: error while loading shared libraries: libnett▒d.sm.4: cannot open shared object file: No such file or directory
E: Method https has died unexpectedly!
E: Sub-process https returned an error code (127)
E: Method /usr/lib/apt/methods/https did not start correctly

すべての HTTPS ソース (docker、gitlab-runner) を無効にすると、apt-get は正常に実行され、パッケージをインストールできます。Google は という名前のライブラリを見つけることができませんlibnett*d.sm.4

私はRaspberryPi 3でraspbianを実行しています:

$ cat /etc/*release
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

再インストールを試みましたapt-transport-https

また、次のことにも気付きました:ping6うまく動作しません (同じライブラリ)。もちろん、IPv6 を無効にしてみました。

アップデート:

$ cat /etc/apt/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://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

$ cat /etc/apt/sources.list.d/*
deb [arch=armhf] https://apt.dockerproject.org/repo raspbian-jessie main


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


# this file was generated by packages.gitlab.com for
# the repository at https://packages.gitlab.com/runner/gitlab-ci-multi-runner
# deb https://packages.gitlab.com/runner/gitlab-ci-multi-runner/raspbian/ jessie main
# deb-src https://packages.gitlab.com/runner/gitlab-ci-multi-runner/raspbian/ jessie main

私はソースをgitlab-runner完全に無効にしました、docker出力ではアクティブです - その行もコメントアウトすると、apt-get update正常に実行されます全てアクティブソースは使用しますhttp

答え1

これはディスク破損のようです。 を探す必要がありますlibnettle.so.4

この特定の問題を解決するには、以下を再インストールする必要があると思われますlibcurl3-gnutls:

apt-get --reinstall install libcurl3-gnutls

(としてroot)。

ただし、これが原因ではない可能性があります。他の破損したファイル (少なくともパッケージからインストールされたファイル) を特定するには、次を使用できますdebsums

debsums -c

(必要に応じて を使用してインストールした後apt-get install debsums)。 によってフラグが付けられたパッケージを再インストールする必要がありますdebsums -c

マニュアルdebsumsページには、影響を受けるパッケージを再インストールするための便利なコマンドが記載されています。

apt-get install --reinstall $(dpkg -S $(debsums -c) | cut -d : -f 1 | sort -u)

関連情報