さくらインターネットのVPS(1Gプラン)でUbuntu20.04から22.04にアップグレードしたら、sudo apt updateが使えなくなった。
以後、同じような症状に嵌まらないように解決した手順をメモしておく。
最初にアップグレードした後の症状について記載しておくと、
$ sudo apt update 無視:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
無視:2 http://jp.archive.ubuntu.com/ubuntu jammy InRelease # 途中省略 エラー:2 http://jp.archive.ubuntu.com/ubuntu jammy InRelease 'jp.archive.ubuntu.com' が一時的に解決できません # 最後まで省略
※ OSを日本語化対応しています。
sudo apt updateしたら、上記のようにリポジトリにアクセスすると虫され、エラーが返ってきた。
無視:2のリポジトリのURLのドメインがjp.archive.ubuntu.comだったので、/etc/apt/sources.list内のjp.archive.ubuntu.comの記述をarchive.ubuntu.comに変更して再びsudo apt updateをしてみたが解決せず。
VPSのネットワークが怪しいので、ping google.comをしてみたところ、
$ ping google.com ping: google.com: 名前解決に一時的に失敗しました
の結果が返ってきた。
上記問題を解決するために、/etc/resolv.confを開き、
nameserver 127.0.0.53 search DOMAINS DOMAINS6
のところを
nameserver 8.8.8.8 search DOMAINS DOMAINS6
に変更してみたところ、sudo apt updateが動作するようになった。
nameserver 8.8.8.8はGoogle DNSになるが、元の記述のどこに誤りがあるか?がわからないので、Google DNSにお世話になることにしよう。
Domain Name System - Wikipedia
余談
さくらインターネットのVPS(2Gプラン)をもう一台借りていて、そちらはsudo apt updateできるので、resolv.confを見てみたら、
nameserver 127.0.0.53 options edns0 trust-ad search .
になっていた。
2022年10月17日追記
Ubuntuでは/etc/resolve.confを直接編集してはいけないらしい。
OSを再起動すると、resolve.confの記述が初期化されてしまう。
代わりに/etc/systemd/resolved.confの方を変更する。
/etc/systemd/resolved.confの末尾に
DNS=8.8.8.8
を追記し、resolved.confの変更後に
$ sudo systemctl restart systemd-resolved
を行う。