Ubuntu 16.04 LTSから18.04 LTSへ「先行アップグレード」する方法【サーバー編】 | Linux Fan

Ubuntu 16.04 LTSから18.04 LTSへ「先行アップグレード」する方法【サーバー編】

2018年8月5日

Ubuntu 16.04 LTSから18.04 LTSへのアップグレードは、最初のポイントリリースである「18.04.1 LTS」がリリースされた後にサポートされる予定です。このページでは、アップグレードが正式にサポートされる前に、Ubuntu 16.04 LTS(サーバー版)をUbuntu 18.04 LTSに「先行アップグレード」する方法を解説します。

なお、デスクトップ版の先行アップグレードについては以下の記事を参照してください。

ポイントリリースされても…すぐにはアップグレードできず

7月26日、Ubuntu 18.04 LTSで最初の「ポイントリリース」である「18.04.1」がリリースされました。これにより、近いうちに1つ前の「長期サポート版(LTS)」である「Ubuntu 16.04 LTS」から「Ubuntu 18.04 LTS」へのアップグレードがサポートされるようになるはずです。

しかし8月5日現在、「Ubuntu 16.04 LTS サーバー版」で「do-release-upgrade」コマンドを実行しても以下のようにNo new release found.」と表示され、アップグレードはできません。

$ do-release-upgrade 
Checking for a new Ubuntu release
No new release found.

長期サポート版をインストールした場合、「do-release-upgrade」コマンドによるアップグレード対象は、デフォルトで「長期サポート版(LTS)」のみとなっています。通常リリースは対象外です。これは、「/etc/update-manager/release-upgrades」に設定されています。内容は以下の通りです。変更することも可能です(後述)。

# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting behavior, valid options:
#
#  never  - Never check for a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the release that immediately succeeds the currently-running
#           release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that this option should not be
#           used if the currently-running release is not itself an LTS
#           release, since in that case the upgrader won't be able to
#           determine if a newer release is available.
Prompt=lts

この設定では、以下のURIからUbuntuのリリース情報を取得します。

このリストに、「Bionic Beaver」(Ubuntu 18.04 LTSのコードネーム)が追加されない限り、アップグレード対象として認識されないわけです。

今すぐ18.04 LTSにアップグレードするには?

「Ubuntu 16.04 LTSサーバーを今すぐ18.04 LTSにアップグレードしたい」という方もいるでしょう。本番サーバーのアップグレードに備えて、テスト環境でアップグレードを試したいという場合もあると思われます。そんな場合は、次のコマンドを実行してください。

do-release-upgrade -d

このように「-d」オプションを付けることで、Ubuntu 18.04 LTSのリリース情報が取得され、アップグレードを開始してよいかの確認が求められます。

y」を入力して、アップグレード処理を開始できます。

これは、「-d」オプションをつけることで、Ubuntuのリリース情報の取得先URIとして以下の「開発用」のものが使われるためです。

この「-d」オプションを使えば、リリース前からUbuntuのアップグレードを試すことができるので、知っておけば便利なこともあるでしょう。

ただし、サポート外の方法なので、不具合に遭遇する確率は高くなってしまうことを認識した上で、実行してください。

【参考】Ubuntuの「リリース情報ファイル」まとめ

Ubuntuのアップグレード実行判定に使われる「リリース情報ファイル」の取得先URIは、「ubuntu-release-upgrader-core」パッケージに含まれる「/etc/update-manager/meta-release」ファイルで設定されています。このファイルの内容は以下の通りです。

# default location for the meta-release file

[METARELEASE]
URI = http://changelogs.ubuntu.com/meta-release
URI_LTS = http://changelogs.ubuntu.com/meta-release-lts
URI_UNSTABLE_POSTFIX = -development
URI_PROPOSED_POSTFIX = -proposed

アップグレードを行うかどうか、および「URI」と「URI_LTS」のどちらを使うかは、前述の「/etc/update-manager/release-upgrades」内に設定された「Prompt」の値によります。「sudoedit」コマンドなどを用いて書き換えることで設定を変更できます。設定できる値は以下の通りです。

Prompt=normal
すべての新しいリリースへのアップグレードを行う
Prompt=lts
LTSからLTSへのアップグレードのみを行う
Prompt=never
アップグレードを行わない

実行時のオプションとあわせて、以下のルールで各URIから「リリース情報ファイル」が取得され、アップグレード処理に用いられます。

http://changelogs.ubuntu.com/meta-release
「Prompt=normal」が設定されている場合
http://changelogs.ubuntu.com/meta-release-lts
「Prompt=lts」が設定されている場合
https://changelogs.ubuntu.com/meta-release-development
「Prompt=normal」が設定されていて、「-d」オプションを指定した場合
https://changelogs.ubuntu.com/meta-release-proposed
「Prompt=normal」が設定されていて、「-p」オプションを指定した場合
http://changelogs.ubuntu.com/meta-release-lts-development
「Prompt=lts」が設定されていて、「-d」オプションを指定した場合
http://changelogs.ubuntu.com/meta-release-lts-proposed
「Prompt=lts」が設定されていて、「-p」オプションを指定した場合

なお、取得した「リリース情報ファイル」は、「/var/lib/update-manager/」ディレクトリに保存されます。