⚠️

WSL上のUbuntuでsudo apt-get updateすると404 Not Foundエラーが起きる & その対処方法

に公開

はじめに

おそらく限定的な環境で起きるエラーなのであまり参考にならないかもしれませんが備忘録として書きとどめておこうと思います。

環境

Windows11
AMD Ryzen 7 8840HS
WSL2:Ubuntu v24.04

起きたこと

事の発端はsudo apt-get install build-essentialを叩いた時でした。

sudo apt-get install build-essential でインストール失敗

404 Not Foundでフェッチできずにエラーが起きる

$ sudo apt-get install build-essential
.
.
.
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/d/dpkg/libdpkg-perl_1.22.6ubuntu6.1_all.deb  404  Not Found [IP: ------]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg-dev_1.22.6ubuntu6.1_all.deb  404  Not Found [IP: ------]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

sudo apt-get update でエラー

同様に404 Not Foundでフェッチできずにエラーが起きる

$ sudo apt-get update
.
.
.
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/noble/main/binary-arm64/Packages  404  Not Found [IP: ------]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/noble-updates/main/binary-arm64/Packages  404  Not Found [IP: ------]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/noble-security/main/binary-arm64/Packages  404  Not Found [IP: ------]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/noble-backports/main/binary-arm64/Packages  404  Not Found [IP: ------]
E: Some index files failed to download. They have been ignored, or old ones used instead.

原因と修正方法

原因

E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/noble-security/main/binary-arm64/Packages 404 Not Found [IP: ------]
というエラーメッセージをよく見るとbinary-arm64という文字が含まれています。
ですが私の環境ではamd64のはずでarmとは関係ないはず...

確認のため以下のコマンドを叩くと

$ dpkg --print-architecture
amd64

やはりamd64です。

ほかに追加されているものがないかチェックすると...

$ dpkg --print-foreign-architectures
arm64

arm64が追加されていました。
このとき以前にGoのクロスコンパイラのためか何かのために
以下のコマンドを叩いてarm64を追加した記憶が微かによみがえってきました...

sudo dpkg --add-architecture arm64

修正方法

シンプルにarm64を取り除きました。

dpkg --remove-architecture arm64

そして

sudo apt-get clean
sudo apt-get update
sudo apt-get install build-essential

で今度はインストール成功しました!

最後に

あまり起きることのないエラーだと思いますが念のため備忘録として

Discussion