dshimizu/blog

アルファ版

Ubuntu 14.04 LTSから16.04 LTSへのアップデート

はじめに

Ubuntu 16.04 LTSがリリースされました。そこで今回は,前回のLTSであるUbuntu 14.04から,最新のLTSであるUbuntu 14.04へアップグレード手順、わらかなかったことや知っておいたほうが良いことなどをまとめました。

Ubuntuのリリースサイクル

Ubuntuのリリースには長期サポート(LTS:Long Term Support) 版と通常版の2つがあり、毎年4月と10月,半年毎の定期的なリリースが行われています。

長期サポート(LTS)版

長期サポート(LTS)版は2年間隔でリリースされ、サポート期間はリリースから5年になっています。安定した環境を望むユーザーに向いています。

通常版

通常版のサポート期間はリリースから9ヶ月です。そのため通常版を使うユーザーは、現在利用しているバージョンの次のリリース後、3か月以内には新しいリリースにバージョンアップをしなければならないことになります。新しい機能を含む最新のリリースを使うことを望むユーザーに向いています。 ※13.04以前のバージョンでは通常版のサポート期間は18ヶ月であったが、管理にかかる費用を削減するために現在の9ヶ月に短縮されたようです。

ポイントリリース

ポイントリリースは,LTSが対象で、リリース後〜特定期間内に提供される最新アップデートパッケージ群を適用したインストールメディアです。 ポイントリリースではバージョン番号の後ろに数字を追加します。16.04だと16.04.1となり、2016年7月21日にリリース予定です。

パッケージの分類とそのサポート

Ubuntuで扱われる全てのソフトウェアは、そのライセンスやサポートレベルによって、コンポーネントと呼ばれる4つの種類に分かれています。 以下のコンポーネントがあり、リポジトリが分かれています。

  • Main
  • サポートあり。Canonicalがパッケージを作って管理している。Ubuntuライセンスポリシーに適合したソフトウェアのみが含まれる。
  • Restricted
  • サポートあり。Canonicalがパッケージを作って管理しているものの、ソースコードに手を入れることができない(Ubuntuライセンスポリシーに適合できない)もので、デバイスドライバ(バイナリ)などUbuntuを利用するために必要なソフトウェアが含まれる。これらのソフトウェアについては開発者がソースコードを読むことができないので、mainに比べるとサポートのレベルは落ちる。
  • Universe
  • サポートなし。ボランティアで構成される開発コミュニティによって管理されている。場合によってはいつまでたっても修正されないということもある。オープンソースなソフトウェアなどが含まれる。
  • Multiverse
  • サポートなし。ボランティアで構成される開発コミュニティやソフトウェアの開発元によって管理されている。場合によってはいつまでたっても修正されないということもある。他のリポジトリに該当しないものがここに含まれる。

他にUbuntu Backportsという公式のリポジトリがあります。 これは、特定のソフトウェアに対して過去のUbuntuのリリースで利用可能な最新版をバックポートするための公式的に認められたプロジェクトである。リポジトリは対極的に管理されているわけではなく、利用者からの要求に対して一定の品質を満たしさえすれば、そのパッケージがバックポートされ、安全にシステムの他の部分に影響を与えることなく更新することができるスタンドアロンアプリケーションの新しいバージョンを提供します。

安全に使いたい場合は、サポート/メンテナンスが約束されているmainとrestrictedのパッケージに限定すると良いかもしれせん。

Ubuntuで提供されるアップデート

Ubuntuでは上記4つのリポジトリに対して、以下のアップデートが提供されます。

  • "distribution名"-security
  • 重要なセキュリティアップデートです。
  • "distribution名"-updates
  • バグフィックス・機能強化のためのアップデートです。
  • "distribution名"-proposed
  • 更新されたパッケージのベータ版が提供されるアップデートです。
  • "distribution名"-backports
  • 最新版などで取り込まれた、新しいバージョンのソフトウェアが提供されるアップデートです。

Ubuntuのパッケージ開発においては,securityやupdates用の開発者が「パッケージのメンテナが作成作業を行い、proposedに配信されて問題が解決しているか、新たなバグがないかをチェックされた後に、正式にsecurityやupdatesとして配信、という流れで作成・配信が行われます。 そのため、適用するアップデートは基本的にsecurityだけにして、必要に応じてupdatesを適用するのが良いと思われます。 backportsやproposedは使わない方が良いでしょう。

Ubuntu 14.04 LTSを16.04 LTSへアップデート手順

遅くなりましたが、アップデート手順です。

既存パッケージの最新化

まず、既存のパッケージをアップデートします。

$ apt-get update && apt-get dist-upgrade

upgradeが適用されている場合は再起動を実施します。

$ sudo shutdown -r now

14.04 LTSから16.04 LTSへのメジャーアップデート

do-release-upgradeを使うためにはupdate-manager-coreパッケージが必要なため、インストールされていない場合はインストールします。

$ apt-get install update-manager-core

do-release-upgradeコマンドでアップデートを実行します。

$ sudo do-release-upgrade -d

以下のように更新パッケージの確認や更新処理のほか、所々で変更点の確認や処理を継続するかなどが問われますので、内容を確認して処理を進めます。 更新完了後に再起動を実行するか問われますので、問題なければここで再起動を実行します。

Checking for a new Ubuntu release
Get:1 Upgrade tool signature [198 B]
Get:2 Upgrade tool [1264 kB]
Fetched 1264 kB in 0s (0 B/s)
authenticate 'xenial.tar.gz' against 'xenial.tar.gz.gpg'
extracting 'xenial.tar.gz'


Reading cache

Checking package manager

Continue running under SSH?

This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.

If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?

Continue [yN] y

Starting additional sshd

To make recovery in case of failure easier, an additional sshd will
be started on port '1022'. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it's not done automatically. You can
open the port with e.g.:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT'

To continue please press [ENTER]
:
:
:
System upgrade is complete.

Restart required

To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.

Continue [yN] y

無事システムが起動してくれば、完了です。 起動後、バージョンが更新されていることを確認します。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
$ uname -a
Linux hostname 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

おわりに

Ubuntu14.04LTSからUbuntu16.04LTSへのアップデート手順についてまとめました。

参考