treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Raspberry Piのアップグレード後にapt updateでエラーが発生

とてもちょっとした話ですが、古い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」をやってみたところ、

特にエラーもなく実行できることが確認出来ました。