とてもちょっとした話ですが、古いRaspberry Piでaptエラーが出たので対処を実施した内容を記録します。
古い設定が残っていたのが原因でした。内容は、自分用の備忘録となっています。
apt updateでエラー発生
cron-aptでアップデートを自動化していたRaspberry Pi 2が今回の対象です。なにぶんRaspberry Pi 2は古い機種となっていて、使い方も限定されるのですが、ちょっとした家庭用サーバとしてはまだまだ現役で使える一台です。
Raspberry Pi OS Liteで使っているRaspberry Pi 2をbullseyeへのアップデートした後、apt updateを実行した際に以下のエラーが発生することを発見しました。
--------------------------------------------------------------
W: Skipping acquire of configured file 'ui/binary-armhf/Packages' as repository 'http://archive.raspberrypi.org/debian bullseye InRelease' doesn't have the component 'ui' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'ui/i18n/Translation-ja' as repository 'http://archive.raspberrypi.org/debian bullseye InRelease' doesn't have the component 'ui' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'ui/i18n/Translation-en' as repository 'http://archive.raspberrypi.org/debian bullseye InRelease' doesn't have the component 'ui' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'ui/i18n/Translation-ja_JP' as repository 'http://archive.raspberrypi.org/debian bullseye InRelease' doesn't have the component 'ui' (component misspelt in sources.list?)
--------------------------------------------------------------
ん?
他のRaspberry Pi 3などではこのタイミングでエラーは出なかったのですが、なんでしょうか?
エラー内容を確認
エラー内容をよく確認してみます。
基本的に記載されている内容は同じなのですが、リポジトリを指定した数だけエラー行が表示されているようです。
W: リポジトリ '---' として構成されたファイル 'ui~' の取得をスキップすると、コンポーネント 'ui' (sources.list のコンポーネントのスペルが間違っていますか?) )
ただ、"/etc/apt/sources.list"には上記エラーの原因となりそうな記述がみつかりませんでした。
--------------------------------------------------------------
$ cat /etc/apt/sources.list
deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
--------------------------------------------------------------
sources.list以外だとすると…
答えは"/etc/apt/sources.list.d/raspi.list"
Raspberry Piは素のDebianにはないリポジトリ指定として
/etc/apt/sources.list.d/raspi.list
にリポジトリ指定を保存しています。その指定を確認すると、
--------------------------------------------------------------
deb http://archive.raspberrypi.org/debian/ bullseye main ui
deb http://ftp.jaist.ac.jp/raspbian bullseye main ui
deb-src http://archive.raspberrypi.org/debian/ bullseye main ui
--------------------------------------------------------------
確かにこういった指定が記述されていました。
Raspberry Pi 2ということもあって、古い参照が残っていたのがエラーの要因になったと考えられます。以下のように編集することで解消させました。
--------------------------------------------------------------
$ cat /etc/apt/sources.list.d/raspi.list
#deb http://archive.raspberrypi.org/debian/ bullseye main ui
#deb http://ftp.jaist.ac.jp/raspbian bullseye main ui
deb http://archive.raspberrypi.org/debian/ bullseye main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ bullseye main ui
--------------------------------------------------------------
簡単に言うと、既存の「ui」と指定の入ったリポジトリ行は全てコメントアウトし、Raspberry Pi OSで必要となるリポジトリは
「deb http://archive.raspberrypi.org/debian/ bullseye main」
この一行で集約しておきました。
動作確認
改めて「apt update & upgrade」をやってみたところ、
特にエラーもなく実行できることが確認出来ました。