10 日ほど前から自宅サーバーの Debian 9 (stretch) でこんなエラーが出るようになった:
/etc/cron.daily/apt-show-versions:
APT::Default-Release の 値 'stable' は、そのようなリリースをソース中から利用できないため、無効です
Can't call method "policy" on an undefined value at /usr/bin/apt-show-versions line 56.
run-parts: /etc/cron.daily/apt-show-versions exited with return code 2
ちょうど「Debian 10 (buster)」リリースのタイミングと重なったからすぐに修正される些細な問題かと思いきやそんな様子はなく、3 連休は調べるのも忘れて遊びほうけてしまったので、きょうになってようやく重い腰を上げて対応するなど。
どうやら、APT の source-list ファイルに指定するリリースを状態名 (stable) ではなくコードネーム (stretch) にしてあったため、Debian 9 (stretch) のファイルが stable ではなくなったことにより前述のエラーが発生したもよう。
リリースノートには ──
リリースを指定するのに、コードネーム (stretch や buster) と状態名 (oldstable、stable、testing、unstable) のどちらもよく使用されます。
コードネームによる指定には、新しいリリースが出たときに驚かずに済むという利点があるため、ここではコードネームを使用しています。
当然ですが、コードネームを使用している場合は自分でリリースアナウンスに注意を払わなければいけません。
代わりに状態名を使用している場合は、リリースが行われた直後に、パッケージが大量に更新可能になったことに気づくでしょう。
── なんていう記載があるが、「新しいリリースが出たときに驚かずに済む」とは限らないのでは。
少なくとも今回は突然 APT のエラーが出るようになって驚いた。
とはいえ次回も新しいリリースにはきちんと対応したいから、コードネーム指定 (buster) でいくことにする。
アップグレード作業は、いつも通りリリースノートに沿って淡々と。
/etc/hdparm.conf の行末の冗長な空白削除の嵐や /etc/dnsmasq.conf のコメント行のスペルミス修正の嵐なんかは、ユーザーに確認を委ねずに自動でマージしてくれよとは思う。
mandb の更新に 30 分近く掛かったのは PC がショボすぎるせい?
そういえば、この手のサーバー作業の際に使う USB シリアル変換アダプター『iBUFFALO USB シリアルケーブル (USB type A to D-sub 9 ピン) 1.0m ブラックスケルトン BSUSRC0610BS』は確か
4 年前くらいに買ったやつで、今のノート PC に接続したのは初めてだったが、自動的にインストールされたドライバーで安定動作してる。
これって Windows 10 でも無問題のやつだったか。
優秀。
アップグレード後に Apache が起動しなくなったのはひとまず放置でいいし、su コマンドを実行すると zsh が暴走するようになったのも後日調査でいいや。
sudo コマンドは使えるから、特に困ることはないはず。
今はカメラを使うたびにガチャ引いてるレベル。
ただし普通のガチャと違って当たりが出たらリセット w