banner
Aki

Aki

太阳能维修,月亮可更换,星星不闪包退换。
twitter

Debian11でapt updateを実行する際に、Debian bookwormのエラーが発生しました。

説明#

Debian11 で apt update を実行する際に、Debian bookworm のエラーが発生しました。
エラーメッセージは以下の通りです。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
N: Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware'
N: More information about this can be found online in the Release notes at: https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.html#non-free-split

原因は、バージョンの変更により、apt ソースの non-free コンポーネントが変更されたためです。警告の説明に従って、sources.list ファイルの内容を変更し、non-free を non-free-firmware に変更すれば問題ありません。
もちろん、既に国内のソースを変更している場合でも、公開されているソースリストを確認してコンポーネントが正しいかどうかを確認する必要があります。通常、オープンソースの apt ソースの説明に従って sources.list を変更すると、この問題は発生しません(当然ですよね)

すべてには例外があります。そうでなければ記録されません。

私の使用しているマシンは、内部ネットワーク環境にあり、内部ネットワークにはソースミラーがデプロイされており、プロキシ経由でソースコンポーネントのアドレスとのハンドシェイクを行っています。このような場合、ファイルを変更しても問題が発生する可能性があります。
例えば:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: Skipping acquire of configured file 'non-free-firmware/source/Sources' as repository 'http://repos.inside.com:19796/debian bullseye-updates InRelease' doesn't have the component 'non-free-firmware' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'non-free-firmware/binary-amd64/Packages' as repository 'http://repos.inside.com:19796/debian bullseye-updates InRelease' doesn't have the component 'non-free-firmware' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'non-free-firmware/i18n/Translation-en' as repository 'http://repos.inside.com:19796/debian bullseye-updates InRelease' doesn't have the component 'non-free-firmware' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'non-free-firmware/i18n/Translation-zh_CN' as repository 'http://repos.inside.com:19796/debian bullseye-updates InRelease' doesn't have the component 'non-free-firmware' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'non-free-firmware/i18n/Translation-zh' as repository 'http://repos.inside.com:19796/debian bullseye-updates InRelease' doesn't have the component 'non-free-firmware' (component misspelt in sources.list?)

セキュリティ上の理由から、アドレスは架空のものですが、実際にはこの方法でリモートソースコンポーネントに到達し、内部ネットワークデバイスで apt の更新とインストールを行っています。
この場合、apt の情報によると、このアドレスには non-free-firmware コンポーネントが存在しないということです。つまり、non-free を non-free-firmware に変更しても apt の更新はできないということです。

これが上記の Debian ソースのコンポーネントを確認する必要がある理由です。

余計なことを言いすぎました。以下に解決策があります。

解決策#

問題の解決策は、解決策を提案した「人」に対して警告を出さないことです。

su -c 'echo "APT::Get::Update::SourceListWarnings::NonFreeFirmware \"false\";" > /etc/apt/apt.conf.d/no-bookworm-firmware.conf'

上記のコマンドを実行すると、apt の更新と他のパッケージのインストールが可能になります。

参考

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。