【質問#209】GNU/Linuxのバージョン

質問・悩み相談の回答です。

質問

初めまして。

ちょこちょことGNU/Linuxについて勉強している者です。

GNU/Linuxに関する記事を読み漁っていた際、こちらのウェブログを発見し、悩み相談を受け付けているとのことですので質問させていただきます。

世の中には数多くのGNU/Linuxが存在しますが、Arch Linux等のローリングリリース仕様を除くと、基本的に数字が割り振られたバージョンが存在します。
(例: Debian "10.6"やUbuntu "20.04" LTS等の数字のことです)

これらのGNU/Linuxを使用しているとアップデートが訪れるのが一般的ですが、最新版がリリースされた際、通常通りのアップデートで最新版に更新されるのでしょうか?
(Ubuntu 19.04を利用している際にUbuntu 20.04 LTSがリリースされた場合、通常通りのアップデートでUbuntu 20.04 LTSにバージョンアップするのか、という意味です)

それとも最新版がリリースされた際、新規にインストールし直すべきなのでしょうか?

GNU/LinuxはUbuntuやLinux Mintを利用していますが、利用歴が浅いので最新版のリリースに直面した経験がなく、新規にインストールする必要があるのではないかと不安があった為、質問させていただきました。

それっぽい単語で検索してみたのですが、それらしい検索結果も見当たらなかったのでした。

もしかすると常識外れな愚問なのかもしれませんが、何卒宜しくお願いいたします。

回答

質問の本筋とはそれますが、質問者様以外の人が見ることも想定して用語をそれぞれ解説していきたいと思います。

Linux

狭義のLinuxとはLinuxカーネルのことを指します。カーネルとは、アプリケーションのスケジューリングとかIOとかメモリ管理とかデバイス管理とかを行うOSの本当のコアの部分を指します。通常、このカーネルを単体で使うことはありません。

広義のLinuxとはLinuxカーネルが採用されたオペレーティングシステムを指します。通常、Linuxと単に言ったときは「Linuxカーネルが採用されたオペレーティングシステムやそれが動作しているマシン」を指すことがほとんどだと思います。

GNU/Linux

上記で書いたように、Linuxカーネルは単体で動くことはなく、ミニマムなオペレーティングシステムの状態であっても、数々のGNUプロジェクトの資産を使用しています。だからGNU/Linuxと呼ぶべき、という思想に則った呼称である、と私は解釈しています。その指す範囲は、広義のLinuxという呼称とほぼ同等になると思います。ですが、仕事や趣味でLinuxを触っている人たちがこの呼称を使っているところを私はほとんど見たことがありません。

Linuxディストリビューション

Linuxのカーネルと通常よく使用されるソフトウェア群をセットで配布(distribute)するパッケージです。DebianやUbuntuなどというのはディストリビューションの一種です。

Linuxに限らず、ソフトウェアのビルドとは中々に大変な作業です。ほとんどのソフトウェアは別のソフトウェアの、特定のバージョン(やバージョンの範囲)に依存しています。数多あるソフトウェアの依存関係を整理して、必要なときに必要になるパッケージをまとめて配布先からインストールするための一連の仕組みを各ディストリビューションは備えています。各ディストリビューションの開発チームは、数多あって継続的に開発が進んでいるOSSプロジェクトのソフトウェア資産をシステムで利用できるように日々運用と管理を行っています。これは非常に面倒くさく大変な作業であることは容易に想像でき、このような作業に携わっている方々には私は足を向けて寝られません。

というわけで回答に入っていきます。

これらのGNU/Linuxを使用しているとアップデートが訪れるのが一般的ですが、最新版がリリースされた際、通常通りのアップデートで最新版に更新されるのでしょうか?
(Ubuntu 19.04を利用している際にUbuntu 20.04 LTSがリリースされた場合、通常通りのアップデートでUbuntu 20.04 LTSにバージョンアップするのか、という意味です)
それとも最新版がリリースされた際、新規にインストールし直すべきなのでしょうか?
「通常通り」のアップデートではないですが、各々のディストリビューションが提供するアップデート方法でアップデートできることがほとんどです。

例えばUbuntuであれば、

$ do-release-upgrade

というコマンドでUbuntu 19.04を利用している際にUbuntu 20.04などにアップグレードできます。LTSのみを対象にするとかいう方法も取れます。

ただ、ディストリビューションそのもののバージョンが変わるような際には、大きな変更が含まれていることが往々にしてあります。このため、アップグレードがうまく行かず新規インストールが必要になることもゼロではありません。通常の方法でパッケージをインストールしている限りは、せいぜい今まで使えていたソフトウェアの開発が止まって削除された、程度の影響で済みますが、例えば自分でビルドしたパッケージをインストールしているとか、/etc/以下の設定ファイルやスクリプトを沢山いじくり回して独自のカスタマイズを入れているという状態だと、簡単にアップグレードするのは難しいです。(もっとも、そういう運用をしている人であれば、ディストリビューションのアップブレードを行うときに自分が何をしなければならないか、は分かってると思いますが)

簡潔に言うと、有名なディストリビューションを普通に使っている限りは心配しなくても再インストールせずにアップグレードし続けられますよ、ということになります。

最悪再インストールが必要になったとしても、ユーザーディレクトリとインストールされているパッケージのリストをバックアップしておけば復元も簡単だと個人的には思います。