Ubuntu 22.10を使っていたが、2023-07-20でサポートが切れていた。apt update
のエラーを久々にちゃんと読んでEOLっぽいじゃんということに気がついてアップグレードするのに時間を取られたので、次からは先んじて気がつけるようにしたい。
というわけでシェルを立ち上げたときにEOLが近づいていたら教えてくれるようにしたい。
freedesktop.orgのos-releaseのページによると使っているOSのEOLは/etc/os-release
にSUPPORT_END
として書いてある……こともあるらしい。手元ではそういうのはなかった。この質問によると、distro-info-data
というパッケージがインストールされていれば/usr/share/distro-info/ubuntu.csv
というファイルが配置されているはずで、ここに歴々のディストリビューションの情報が書いてあり、EOLの情報も含まれているらしい。このファイルはあったのでこれを使うことにする。
CSVなので適当にパースしたら良いだろうと思ったが、ヘッダには8カラムありそうに書いておきながら実際には6カラムしかない行などが存在していて、お行儀の良い入力を期待するCLIツールでは太刀打ちできなさそうだったので、雑なことをすることにした(=eolのデータは6列目にあるということにしてcut
で取り出すことにした)。以下のようなスクリプトを.zshrc
に追加する。
function get_eol() { if [[ "$OSTYPE" != "linux-gnu" ]]; then return fi source /etc/os-release eol=$(grep -F "$VERSION_ID" /usr/share/distro-info/ubuntu.csv | cut -d, -f 6) d=$(( ($(date +%s -d "$eol") - $(date +%s)) / 86400 )) if [[ "$d" -lt 30 ]]; then echo -e "\e[41m EOL of ${VERSION} is coming (${eol})" fi } get_eol
OSのEOLが近づいているときにシェルを立ち上げたら、↓のように教えてくれる想定