Ubuntu日和
【第59回】Ubuntu 22.04 LTSから24.04 LTSへアップグレードできるようになった。どうする?
2024年9月14日 06:18
Ubuntuは、通常リリース(中間リリース)の場合は新リリースの直後に、LTSの場合は最初のポイントリリース(24.04 LTSの場合は24.04.1 LTS)がリリースされた後、前のバージョンから次のバージョンへのアップグレードが有効になる。8月末に24.04.1 LTSがリリースされたので、22.04 LTSユーザーも先のダイアログを見たであろう。なおポイントリリースに関しては第47回で紹介した。
あれ、見ていないな、おかしいぞと思うかもしれない。実はこれ、おかしくないのだ。8月30日(日本時間)に一旦アップグレードが有効化されたものの、9月4日(同)に無効化された。aptの不具合により、カーネルのアップデートに問題が見つかったからだ。本来ならこの記事も9月7日に公開したかったのだが、そんな理由で1週間延期された。
余談だが、23.10から24.04 LTSのアップグレードもリリース後1カ月弱で有効になったものの、この不具合を受けて無効化された。中間リリースはサポート期間が9カ月しかなく、新バージョンがリリースされてから3カ月の間にアップグレードしなければいけないが、2カ月に短縮された。そればかりか、サポート終了後にアップグレードが無効になるという奇妙なことが起きている。Ubuntuのリリース体制は一体どうなっているのであろうか。
紆余曲折ありつつも9月10日(日本時間)には無事に再びアップグレード可能な状態に戻った。そこで、今回はスムーズなアップグレードを行なうコツを紹介したい。
スムーズなアップグレードを行なうコツ
アップグレードしない
アップグレードのダイアログが表示された際、真っ先に検討すべきは「今すぐアップデートする」をクリックしないことである。UbuntuのLTSは何もしなくても5年間サポートが継続する。換言すると22.04 LTSは2027年までサポートが継続されるので、あと3年弱はそのまま使えるということだ。
最新バージョンをまっさきに使いたい気持ちも分かるが、先の不具合も先人達が踏んだことによって発覚した不具合だ。積極的に不具合を踏みに行きたいとか、仮想マシンなのでスナップショットで簡単に戻せるとかそういった状況でなければ、遅ければ遅いほどアップグレード時に不具合を踏む可能性は減ると考えていい。
なお「次回にたずねる」をクリックすると1週間後にまた聞いてくる。「アップグレードしない」をクリックするとこのダイアログは表示されなくなるが、「ソフトウェアの更新」からアップグレードは可能だ。
事前に情報を得る
Ubuntuの新リリースには、必ずリリースノートが存在する。たいていの場合は自分に関係ないが、クリティカルなことを知る機会にもなり得るので、必ず読むクセをつけよう。日本語訳もされており、24.04 LTSのリリースノートはこちらだ。
GNOME Shell拡張機能には注意が必要だ。22.04 LTSから24.04 LTSにアップグレードするということはGNOME Shellのバージョンが42から46に上がることとなる。この間にGNOME Shell拡張機能の互換性が損なわれている。もしExtension ManagerなどからパッケージになっていないGNOME Shell拡張機能をインストールしている場合は、それが46でも動作するようにアップデートされているか確認する必要がある。具体的には、筆者が使用しているOpenWeatherはGNOME 44までしか対応しておらず、OpenWeather Refinedをインストールする必要がありそうだった。
ほかにも、どうしてもこのアプリケーション(パッケージ)は動いてもらわないと困る、というものがあれば、変更点を事前に押さえておくといいだろう。外部リポジトリからインストールするパッケージであれば、アップグレード後のバージョンでも動作するか仮想マシンで試してみるのも手だ。そもそもインストールできなくなるなんて話もザラにある。
不要なパッケージを削除する
第58回でも紹介したように、インストールされているパッケージは少なければ少ないほどアップグレードに成功する確率が上がる。従って、事前に不要なパッケージを削除しておくことをおすすめする。
第4回で紹介したflatpakやsnapは、Ubuntuのバージョンを問わず使用できるので、これら別のパッケージシステムに使用しているパッケージが用意されているのであれば、そちらに移るのも手だ。
バックアップを取る
四の五の言わずアップグレード前にはバックアップを取ろう。たいていの場合はアップグレードに失敗しても腕に覚えがあれば復旧可能だが、腕に覚えがある人はこの記事を読んでいないだろう。
バックアップの方法は第20回で紹介したので繰り返さない。たいていの場合はClonezillaがあれば百人力だが、ホームフォルダーにVirtualBoxのゲストOSのような巨大なファイルが多数ある場合には必ずしも向いた方法とはいえない。Ubuntuの使い方によってバックアップの方法は異なってくるが、rsyncのようなプリミティブなツールに頼るのは実はとても正しい。自分にあったバックアップ方法を取ろう。
時間と心に余裕を持つ
アップグレードの際は大量のパッケージをダウンロードすることになるので、帯域とサーバーの混み具合によっては時間がかかることもある。また、大量のファイルを書き込むことになるので、SSDはともかくHDDであればそれだけで時間がかかる。今日日HDDをメインのストレージにしていることは稀だとは思われるが。
パッケージをダウンロードするサーバー(ミラーサーバー)に関しては、「ソフトウェアとアップデート」-「Ubuntuのソフトウェア」-「ダウンロード元」-「その他」で変更できる。日々パッケージのダウンロードに時間がかかっているという認識があるのであれば、ここで変更してみるのも手だ。「最適なサーバーを探す」はその時たまたま高速だったサーバーが引っかかり、実用的でないこともままあるのであまりおすすめしない。
アップグレードの最中、質問されることもある。場合によってはその数も多くなるので、間違えずに答える心の余裕が必要だ。また、過去に筆者はアップグレードの最中にUSB切替器でキーボードとマウスを別PCに切り替えてしまい、戻しても認識せずにどうしようもなくなったという経験がある。これも心に余裕があれば防げた事故だと思われる。しかしこれはアップグレードの方法によって回避できるので、後ほどその方法も紹介する。
パッケージを最新の状態にしておく
どうせアップグレードするのだからすべてのアップデートを適用しなくてもいいのではないかと思いがちだが、そういう作りにはなっていない。アップグレード前にはすべてのアップデートパッケージをインストールする必要がある。
アップグレードをしよう!
GUIでアップグレードする
ではアップグレードを行なおう。前出の「アップグレードが可能です」ダイアログで「今すぐアップグレードする」をクリックするか、「ソフトウェアの更新」の「アップグレード」をクリックする。
パスワード入力後、「リリースノート」が表示される。前出のとおり日本語訳もあるので、事前によく読んでおこう。
あとはひたすら指示に従っていくだけだ。
コマンドラインでアップグレードする
Ubuntuサーバーでも実行できるように、コマンドラインからもアップグレードが行える。もちろんUbuntu(デスクトップ)からでも実行できる。そのコマンドとは、「do-release-upgrade」だ。
なおSSH経由で実行する場合は、第36回を読んでからにしよう。いちおうByobuなしでも接続を維持する方法は用意されているが、正直なところ面倒なのでByobu越しで実行するのがオススメだ。
VNCやRDP経由でUbuntuにアクセスしている場合はGUIでアップグレードすると必ず失敗するので、コマンドラインで実行しよう。