Ubuntuでapt周りの設定をいじっていて、うっかり大事なファイルを消してしまい、

$ sudo apt update

ができなくなってしまった。


今回は解決した手順をメモとして残しておく。


環境

OS : Ubuntu 23.04

CPU : 12th Gen Intel(R) Core(TM) i5-1240P


はじめにsources.listのバックアップをとっておく

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

次にソフトウェアとアップデートで復元する。

$ sudo software-properties-gtk

software_and_update


Ubuntuのソフトウェアのインターネットからダウンロードで適宜チェックを入れて、ウィンドウの右下にある元に戻すボタンを押す。


software_and_update_1


アップデートのタブを開き、確認対象をすべてのアップデートにして、再度元に戻すボタンを押す。

ウィンドウを閉じて、端末で

$ sudo apt update

をしてみると、

ヒット:1 http://archive.ubuntu.com/ubuntu lunar InRelease
取得:2 http://archive.ubuntu.com/ubuntu lunar-updates InRelease [109 kB]       
取得:3 http://security.ubuntu.com/ubuntu lunar-security InRelease [109 kB]     
取得:4 http://archive.ubuntu.com/ubuntu lunar-backports InRelease [99.8 kB]    
取得:5 http://security.ubuntu.com/ubuntu lunar-security/main amd64 DEP-11 Metadata [7,412 B]
324 kB を 2秒 で取得しました (159 kB/s)    
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
パッケージはすべて最新です。
W: http://archive.ubuntu.com/ubuntu/dists/lunar/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

-- 以後の出力は省略 --

最後の行にtrusted.gpg関連のエラーが出力される。

これはUbuntuでapt-key形式が廃止されたにも関わらず、ソフトウェアとアップデート経由ではapt-key形式が採用されている事に因るらしい。


この問題を解決する為に下記のコマンドを実行した。

$ sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d/ubuntu.gpg
$ sudo rm /etc/apt/trusted.gpg

/etc/apt/trusted.gpg.d/以下に格納するgpgファイルのファイル名は何でも良いらしい。