⚠️
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