はじめに
Ubuntu で Vivaldi と vscode を使っているのですが、気づいたらなんか apt で更新されなくなっていたので対応しました。
# たぶんメジャーバージョンをあげた時だとは思うのですが
なんとなく公開鍵の有効期限が切れたころに、作業がまた必要になりそうなので、作業記録を残します。
原因
調べたところ、apt の電子署名用公開鍵の扱い方が変わったことが原因とのことでした。
Vivaldi と vscode 双方ともに snap のパッケージがあるので、snap を使うのがおそらく推奨される方法のように思えます。
しかし、snap で vivaldi を入れるとローカルの HTML が開けなさそうであったため、aptを使う方法を更新しました。
対応方法
電子署名用の鍵の取得
Vivaldi 公開鍵の取得方法以下のサイトを参照しました。
$ wget https://repo.vivaldi.com/stable/linux_signing_key.pub
取得した鍵を /etc/apt/keyrings 以下にコピーします。
このディレクトリはなんか既に存在しました。適当に調べたところファイル名は ASC 形式(テキスト形式)の場合サフィックスに .asc とする必要があるとのことです。
$ sudo install -o root -g root linux_signing_key.pub /etc/apt/keyrings/packages.vivaldi.asc
vscode 用の公開鍵も同様に取得し /etc/apt/keyrings 以下にコピーします。
この鍵の URL は Microsoft のサイトからのリンクは見当たらなかったので、適当な記事から取得しました。
$ wget https://packages.microsoft.com/keys/microsoft.asc
$ sudo install -o root -g root microsoft.asc /etc/apt/keyrings/packages.microsoft.asc
apt のソースの設定
/etc/apt/sources.list.d 以下を確認したところ、vivaldi.sources というファイルがありました。
おそらく、以前の /etc/apt/sources.list から Ubuntu のメジャーバージョンを上げたときにインストーラがフォーマットを新しいものに変更してくれたものだろうと思います。
Enabled: no
Types: deb
URIs: https://repo.vivaldi.com/stable/deb/
Suites: stable
Components: main
適当に調べたところ、このファイルの書き方はよくわからなかったため、ubuntu.sources を参考に公開鍵を指定しました。また、apt upgrade を実行したところ、i386をサポートしてないとの警告がでたため、以下のサイトを参考にアーキテクチャを指定しました。
最終的な内容は以下の通りです。
Types: deb
URIs: https://repo.vivaldi.com/stable/deb/
Suites: stable
Components: main
Signed-By: /etc/apt/keyrings/packages.vivaldi.asc
Architectures: amd64
vscode も同様に vscode.sources を以下の内容に変更しました。
Types: deb
URIs: https://packages.microsoft.com/repos/code
Suites: stable
Components: main
Signed-By: /etc/apt/keyrings/packages.microsoft.asc
Architectures: amd64
これで apt で Vivaldi と vscode が更新できるようになりました。
以上です。