Ubuntu 22.04 で apt-key add したあと apt-update で Key is stored in legacy trusted.gpg keyring というメッセージが表示される場合の対応方法

結論から言うと、以下のコマンドで鍵を追加すれば良い。

sudo curl -fsSL https://myrepo.example/myrepo.asc -o /etc/apt/keyrings/myrepo.asc

鍵がテキスト形式の場合は拡張子を .asc、バイナリ形式の場合は .gpg にすること。

既に公開鍵を追加済みの場合は apt-key list で下8桁を確認し apt-key del XXXXXXXX で削除する。

解説

Ubuntu 22.04 で apt-key add したあと apt-update すると以下のメッセージが表示される。

Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

鍵が古い非推奨の場所に保存されているという警告だ。 man apt-key によると

apt-key(8) will last be available in Debian 11 and Ubuntu 22.04.

apt-key は Debian 11 と Ubuntu 22.04 を最後に廃止となるので 鍵の追加方法も変える必要がある。

メッセージ通り DEPRECATION セクションを見ると次のように書かれている。

DEPRECATION

Except for using apt-key del in maintainer scripts, the use of apt-key is deprecated. This section shows how to replace existing use of apt-key.

If your existing use of apt-key add looks like this:

wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add -

Then you can directly replace this with (though note the recommendation below):

wget -qO- https://myrepo.example/myrepo.asc | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc

Make sure to use the “asc” extension for ASCII armored keys and the “gpg” extension for the binary OpenPGP format (also known as “GPG key public ring”). The binary OpenPGP format works for all apt versions, while the ASCII armored format works for apt version >= 1.4.

Recommended: Instead of placing keys into the /etc/apt/trusted.gpg.d directory, you can place them anywhere on your filesystem by using the Signed-By option in your sources.list and pointing to the filename of the key. See sources.list(5) for details. Since APT 2.4, /etc/apt/keyrings is provided as the recommended location for keys not managed by packages. When using a deb822-style sources.list, and with apt version >= 2.4, the Signed-By option can also be used to include the full ASCII armored keyring directly in the sources.list without an additional file.

以下のような形式で使用している場合は

wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add -

次のように書き換えればよい。

wget -qO- https://myrepo.example/myrepo.asc | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc

拡張子が .asc のファイルを置けば ASCII armored 形式 (テキスト形式)、 .gpg のファイルを置けばバイナリ形式として処理される。 Ubuntu 22.04 の場合 ASCII armored 形式からバイナリ形式への変換 (gpg --dearmor) は不要らしい。

また、パッケージで管理されていない鍵は /etc/apt/keyrings に置くことが推奨されている。 よって冒頭のコマンドとなる。

ZoneID (Zone.Identifier) を一括で削除する

ネットからダウンロードしたファイルを WSL の Linux 環境にコピーすると 〇〇:Zone.Identifier というファイルが一緒にコピーされて煩わしい。

ファイルが1つだけならコピー前にファイルのプロパティから解除するかコピー後に削除すればいいが、 サブディレクトリ内なども含め複数まとめて処理したい場合は PowerShell を使う。

PowerShell で削除したいファイルがあるディレクトリに移動後に 以下のコマンドで Zone.Identifier があることを確認。

Get-ChildItem -Recurse -File | Get-Item -Stream Zone.Identifier -ErrorAction SilentlyContinue

Unblock-File で削除できる。

Get-ChildItem -Recurse -File | Unblock-File

Remove-Item -Stream Zone.Identifier でもいい。

Mozilla Firefox で Web サイトのダークモードを無効化する

Firefox 本体はダークテーマを使いたいけど Web サイトまでダークモードになると文字が読みづらい。

そんな私みたいにわがままな人向けなのかは分からないが Firefox には Web サイトだけライトモードにする方法があった。

about:configlayout.css.prefers-color-scheme.content-override を変更すればいいらしい。

  • 0: ダーク固定
  • 1: ライト固定
  • 2: OS の設定に従う
  • 3: Firefox のテーマに従う

デフォルト値は 3。

当然だがこれを 0 にしても対応していないサイトはダークモードにならない。

dtab Compact d-42A から不要なアプリを削除する方法

昨年踏んで割ってしまった Xperia Z3 Tablet Compact の後継として dtab Compact d-42A を買った。

スペック的にはミドルレンジの Snapdragon 665 なので最新のゲームは動かないけど、 Z3 Tablet Compact と同じ8インチサイズだし電子書籍を読むにはいいんじゃないかと。 そもそも Android の8インチタブレットは不作で、 他は低スペックな激安タブレットしか選択肢がない。

d-42A はドコモ製なのでキャリア製端末の例に漏れず 削除できない不要なアプリが大量に入っていた。 まずはこれを削除したので手順を残しておく。 なお、Android 11 へアップデート後にアプリを削除したが 以前と同じ手順で特に問題なかった。

削除手順

アプリを削除すると最悪の場合端末が起動しなくなったり 動作が不安定になる可能性があります。
リスクを承知の上、自己責任で行ってください。

  1. d-42A で 設定 > タブレット情報 を開く
  2. ビルド番号を7回タップし開発者向けオプションを表示する
  3. 設定 > システム > 詳細設定 > 開発者向けオプション を開く
  4. USBデバッグをオンにする
  5. PC で Android SDK Platform-Tools をダウンロードし展開する
  6. Platform-Tools を展開したフォルダをコマンドプロンプトで開く
  7. adb devices を実行し接続している端末を確認する
  8. d-42A に「USBデバッグを許可しますか?」と表示されるので「OK」を押して許可する
  9. adb shell pm list packages -s を実行しパッケージ名の一覧を表示する
  10. adb shell を実行しシェルを起動する
  11. pm uninstall -k --user 0 パッケージ名 を実行し不要アプリを削除する
  12. exit を実行しシェルを終了する
  13. adb kill-server を実行し adb サーバーを停止する

削除したパッケージ

パッケージ名に nttdocomo が含まれるもの+αを削除した。

jp.co.omronsoft.iwnnime.ml_lenovo は標準のキーボードアプリのため Gboard など他のキーボードアプリをインスールする前に消すと 文字が入力できなくなって死ぬので注意。

com.android.contacts (ドコモ電話帳)
com.google.android.apps.photos (Google フォト)
com.google.android.apps.tachyon (Google Duo)
com.google.android.apps.wellbeing (Digital Wellbeing)
com.google.android.apps.youtube.music (YouTube Music)
com.google.android.projection.gearhead (Android Auto)
com.google.android.videos (Google Play ムービー& TV)
com.iii.app.kidsgallery
com.iii.app.safebrowser
com.lenovo.d42a.manual
com.lenovo.docomosettings
com.lenovo.homescreenshot (マイホームスクリーン)
com.lenovo.simplemenu
com.nttdocomo.android.accountauthenticator
com.nttdocomo.android.accountwipe
com.nttdocomo.android.anmane2
com.nttdocomo.android.apnsw
com.nttdocomo.android.applicationmanager
com.nttdocomo.android.cloudset
com.nttdocomo.android.databackup
com.nttdocomo.android.devicehelp
com.nttdocomo.android.dmenu2
com.nttdocomo.android.docomoset
com.nttdocomo.android.homezozo
com.nttdocomo.android.idmanager
com.nttdocomo.android.initialization
com.nttdocomo.android.lpa
com.nttdocomo.android.mascot
com.nttdocomo.android.msg
com.nttdocomo.android.mymagazine
com.nttdocomo.android.pf.dcmippushaggregator
com.nttdocomo.android.pf.dcmwappush
com.nttdocomo.android.remotelock
com.nttdocomo.android.schedulememo
com.nttdocomo.android.sdcardbackup
com.nttdocomo.android.sha2.kids
com.nttdocomo.android.store
com.nttdocomo.android.wipe
com.tblenovo.kidslauncher
com.tblenovo.kidsmodewebview
com.tblenovo.lewea
jp.co.nttdocomo.anshinmode
jp.co.nttdocomo.bridgelauncher
jp.co.nttdocomo.carriermail
jp.co.nttdocomo.lcsapp
jp.co.nttdocomo.saigaiban
jp.co.omronsoft.android.decoemojimanager_docomo
jp.co.omronsoft.iwnnime.ml_lenovo

Kindle Paperwhite (第11世代) を買って1ヶ月で売り払った話

Kindle Paperwhite を買ってから1ヶ月で売り払ってしまったので 良かった点と悪かった点をメモしておく。

購入した機種と動機

購入した機種は昨年発売された 第11世代の Kindle Paperwhite シグニチャー エディション。

一昨年までどの電子書籍サービスを使うか迷ってたんだけど、 昨年 Kindle に一本化すると決めてから吹っ切れて 1年で200冊くらい Kindle 本を買った。

電子書籍を読む端末は軽量でコンパクトな Xperia Z3 Tablet Compact を使ってたんだけど 6月に踏んで割ってしまい、 それ以降重たくて大きい Galaxy Tab S4 で読むかたちに。

その後第11世代の Kindle Paperwhite が発売され 小型軽量で良さそうだったのと 電子ペーパーにも興味があったんで購入した。

シグニチャーエディションにした理由は、 主に漫画を読むので下位モデルでは容量が足りないと判断したため。

下位モデルの容量は 8GB だけど Galaxy Tab S4 で使ってる Kindle アプリの使用容量は 8GB を超えてた。 読み終わった本を消せば下位モデルでも入らないことはないけど 管理が面倒かな、と。

悪かった点

見開き表示切り替えのボタンが邪魔

Kindle Paperwhite では漫画の見開きページで 見開き表示へ切り替えるボタンが 下部中央に表示される。 これをタップすることで 1画面1ページ表示の状態から1画面2ページ表示に切り替わるわけだ。

ただしこれは切り替えボタンが 漫画本文にかぶさって表示されるという問題がある。 しかも、一部の漫画では全ページにこれが表示されるので 漫画を読むときかなり邪魔。 一応ボタン右上の×をタップすれば消えるが、 全ページに表示されるのと電子ペーパー特有の反応の遅さが合わさり イライラすることになる。

おそらく電子書籍を作っている出版社が その仕様を知らずに全ページ見開きとして データを作っているのが原因なんだろうけど、 Kindle 端末側でも表示しない設定にできたらいいんだが…。

前述の通り主に漫画を読むこともあり、 この仕様に耐えられなかったのが売り払った主な原因。

次の巻を開くボタンが自動で表示されない

Android の Kindle アプリだと、 複数巻ある漫画を1冊読み終わったあと次の巻を開くボタンが自動で表示されるけど Kindle 端末ではそれが表示されない。

最終ページで画面の上部をタップするか 一度ライブラリに戻らないと次の巻を開けないのが UIの反応の遅さと合わさって地味に面倒。

ダウンロードが遅い

Wi-Fi は IEEE 802.11n まで対応してるけど明らかにダウンロード速度が遅い。

ストレージが 32GB あっても容量いっぱいにダウンロードするには忍耐が必要。

ページ送りボタンがない

これは購入前から分かってたことだけど、 ページ送りの際タップする必要があるので操作を片手で完結できない。 端末が片手で持てる重さと画面サイズでも意味がない。

良かった点

最後に読んだ本の表紙をスリープ中に表示する機能

画面を書き換えなければ電力を消費しない 電子ペーパーだからできる機能。

モノクロとはいえ、好きな漫画の表紙を常時表示できるのはうれしい。

片手で持てる重さと画面サイズ

軽量で片手で持っていても疲れにくい。 ただし、前述の通りページを送るときは両手を使うことになる。

画面サイズはほとんど漫画を読むのに困らなかった。 普通の漫画なら拡大せずにスラスラ読める。 セリフにルビが多い星界の紋章を読むときはさすがに拡大したけど。

E Ink 電子ペーパー

液晶画面より目が疲れない気がする。

ページ送り速度は耐えられるレベルだけど、 UI の表示が遅いのはタップに反応してるのかしてないのかわからず困る。

明るさ自動調節機能

明るい部屋で読むときも、寝る前に暗くした部屋で読むときも バックライトの明るさを調整しなくて済むのは良い。

USB Type-C での充電

第11世代から充電が USB Type-C になったそうで、 他の機器と充電器を共用できるのはやはり便利。