【2038年問題】Debian Sidのアップデートに注意【64ビットタイム】

nogajun
nogajun

要約

Debian Sidを使っている人は、今(2024年3月)、不用意にアップデートするとシステムが起動しなくなります

ネタ振り

2038年問題という問題があります。

UNIXや派生のOSでは、時間をUNIX時間という1970年1月1日を起点としたtime_tという型の符号付き32ビット整数を使って管理しています。 これが2038年になると型の桁溢れが起こって1970年に時間が巻き戻ってしまいます。そうなると想定外のことが起こり、最悪、システムが使えなくなるという問題です。

今、2024年で2038年は14年後です。

10年なんてアッという間で今のうちに対処しておかないとダメだよねということで、Debianの次のリリースTrixieでも2038年対応がリリースゴールに挙げられています。

Phoronixでもニュースになっていたり、おそらくTrixieがリリースされるときの目玉の一つになると思うぐらいの大きな変化です。

その対応がDebian experimental(実験的なパッケージのリポジトリ)で進められていましたが、今、その対応したパッケージが、sidに降りてきています。

本題

こういう動きがあったのですが、まったくチェックしていませんでした。

日曜日、「CDプレイヤーがないからMP3にリッピングして」と頼まれたのでリッピングしようとしたら、いつも使っているabcdeが入っていません。

入っていないならaptでインストールすればいいやとapt install abcdeでインストールすると、いくつかパッケージが入りません。

aptitudeを使って手動で入らないパッケージをインストールすると今まで入らなかったパッケージもインストールされましたが、なにか変です。そして、インストールされたライブラリ名の末尾にはt64と書いてあるものが多いのも気になります。

とりあえず入ったからいいやと思ったらaptitudeの画面表示が崩れ始めます。驚いてPCを再起動すると…。 起動しない!!!! 起動してもinitramfsで落ちる。

何が起こったのかわからないので、ひとまず覚えていたt64とdebianをキーワードに検索すると、2038年問題に対応するための作業が進行中であることを知ったのでした。

それからどうした

これ、デスクトップのメインマシンだけじゃなくノートPCも同時にアップデートしていたので両方起動しなくなりました。

ライブシステムからchrootを使ってシステムの修復も一瞬考えましたが、ここ10年以上やってなかったヤラカシで、しかも2台もシステムをぶっ壊すという事を起こしてしまったので復旧時間を考えて素直にバックアップを取って再インストールしました。

リリースゴールの文書を読むとlibc5からlibc6への移行ぐらいの大きな事なんですよね。 適当に手を出すと痛い目を見ても仕方ないことがよくわかりました。

みなさまもお気をつけください。Debian Sidを使っている人は、そんなにいないけど