treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Raspberry Pi3でaptでエラーが出たので対処。

Raspberry Pi 3で稼働しているRaspbianでaptで更新しようと思ったら、思わぬエラーが発生したので対処しました。
やったことをご報告。

最初に

今回やったのは根本的な対策ではないという点を注意点として先に記述しておきます。
根本的な対策は、dist-upgradeでメジャーバージョンアップを実行すること、になると思います。
ただ、深夜で平日で、と時間が取れなかったので、別の日にバージョンアップ自体は実施することにし、アップデートの適用だけ成功させることにしました。

そのときの記録が今回の記録。

エラー

エラーはアップデートを実行した時に発生しました。

f:id:treedown:20200507024659p:plain

apt-get updateを実行すると、
--------------------------------------------------------------
E: http://raspbian.raspberrypi.org/raspbian/dists/stretch/main/binary-armhf/Packages.xz の取得に失敗しました ハッシュサムが適合しません
Hashes of expected file:
- Filesize:11664032 [weak]
- SHA256:(略)
- SHA1:(略) [weak]
- MD5Sum:(略) [weak]
Hashes of received file:
- SHA256:(略)
- SHA1:(略) [weak]
- MD5Sum:(略) [weak]
- Filesize:2743451 [weak]
Last modification reported: Wed, 00 May 2020 10:30:33 +0000
Release file created at: Wed, 00 May 2020 10:33:37 +0000
E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
--------------------------------------------------------------
こういった感じでエラー。
試しに、
apt-get upgradeを実行してみると、
--------------------------------------------------------------
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
--------------------------------------------------------------
upgradeは動作せず(検出されるはずのパッケージが存在していない)な状況。

確認、設定ファイル?

aptのsources.listをまずは確認してみることにします。
--------------------------------------------------------------
deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
--------------------------------------------------------------

ちゃんといままで動作していたんだけどなぁ…。

現在は、
「cat /etc/os-release」を実行したときの表示で、「PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"」なOSバージョンと表示されるので、「http://raspbian.raspberrypi.org/raspbian/」のstretchが使えなくなったのかな?と。

そこで、

Raspbian Mirror
http://www.raspbian.org/RaspbianMirrors

ここで「Asia」「Japan」とあるURLを指定してみることにします。
例えば、以下のように、sources.listを書き換えてみる。元の行は「#」でコメントアウトして、その下に、ミラーサイトを同じ指定で追記してみてはどうだろうと思って、さっそくやってみます。

「vi /etc/apt/sources.list」で以下のように編集します。
--------------------------------------------------------------
#deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
deb http://ftp.jaist.ac.jp/raspbian stretch main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
-------------------------------------------
これで、再度アップデートを試行。
--------------------------------------------------------------
# apt-get update

ヒット:1 http://archive.raspberrypi.org/debian stretch InRelease
取得:2 http://ftp.jaist.ac.jp/raspbian stretch InRelease [15.0 kB]
取得:3 http://ftp.jaist.ac.jp/raspbian stretch/main armhf Packages [11.7 MB]
取得:4 http://ftp.jaist.ac.jp/raspbian stretch/contrib armhf Packages [56.9 kB]
取得:5 http://ftp.jaist.ac.jp/raspbian stretch/non-free armhf Packages [95.5 kB]
取得:6 http://ftp.jaist.ac.jp/raspbian stretch/rpi armhf Packages [1,360 B]
11.8 MB を 3分 12秒 で取得しました (61.4 kB/s)
パッケージリストを読み込んでいます... 完了

# apt-get upgrade

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
libldap-2.4-2 libldap-common
アップグレード: 2 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
282 kB のアーカイブを取得する必要があります。
この操作後に追加で 2,048 B のディスク容量が消費されます。
続行しますか? [Y/n] Y
--------------------------------------------------------------
無事、aptのupdateでパッケージを検出してくれたので、upgradeでアップデートの適用。

f:id:treedown:20200507024911p:plain

無事完了しました。

後で時間を取ってstretchからbusterへのバージョンアップを実施した方がよさそう。