2015年も残すところ300日を切りました。ちゃんと2015年やってますか? 平成との変換はできるようになりましたか? 今年の干支は覚えましたか? 今回は「2015年にやっておくべきこと」として、あなたの傍にまだ残っているかもしれないUbuntu 10.04 LTSをどうにかする方法をご紹介します。
Ubuntu 10.04 LTSとは
Ubuntu 10.04 LTS(コードネーム:Lucid Lynx)は約5年前の2010年4月にリリースされた 、Ubuntuとしては3回目のLTS(長期サポート版) です。当時の長期サポート版はデスクトップとサーバーでサポート期限が異なり、デスクトップは3年、サーバーは5年となっていました。このためサーバー版の10.04は2015年の4月までサポートが続いているのです。
言い換えると、2015年4月中には既存の10.04サーバーをすべてより新しいリリースへとアップグレードしなければいけないと言うことでもあります。これまでの慣例からするとEOL(End Of Life)を迎えるのは次の月の上旬、つまり2015年の5月頭なのでもう2ヵ月もありません。
たとえばさくらのVPSがカスタムOSインストールに対応した当初 にUbuntuをインストールし、そのままソフトウェアアップデートだけでつないできた環境だと、Ubuntu 10.04 LTSを使い続けているはずです。まだ10.04 LTSを使い続けている方は、他の作業を止めてでも、とっととOSのアップグレードをやってしまいましょう。
ソフトウェアアップグレードか新規インストールか
Ubuntu 10.04 LTSをソフトウェアアップグレードするとなると更新先は1つ先のLTSであるUbuntu 12.04 LTS、もしくは最新のLTSのUbuntu 14.04 LTSとなるでしょう。最近のUbuntuのリリースポリシーを考えると今日まで10.04を使いつづけたサーバーに対して、特別な理由がない限りは通常リリースを使うことはないはずです。
UbuntuはLTSから1つ先のLTSへのソフトウェアアップグレードをサポートしています(LTS-to-LTSアップグレード) 。つまりUbuntu 10.04 LTSから12.04 LTSへは、コマンド一発でアップグレード可能です[1] 。その方法についてはUbuntu 12.04 LTS Serverのリリースノート を参照してください。14.04 LTSまで上げたいとなると、一度12.04 LTSに上げてからさらにLTS-to-LTSアップグレードを実施する必要がありますが、手順自体は同じです。
12.04 LTSから14.04 LTSへアップグレードする際の注意点については第337回 で紹介しました。原則としてそこに書かれている内容には、10.04からアップグレードする際にも関連するものもありますので、一度目を通しておいてください。記事の「LTSとポイントリリースのおさらい」や「LTSからLTSへアップグレードする際にやっておくべきこと」はもちろんのこと、「 12.04からの大きな変更点」もサーバーの部分はやはり関係してきます。
しかしながら14.04 LTSまで上げてしまおうということであれば、アップグレードではなく新規インストールも有力な選択肢として考慮しておくべきでしょう。5年前と今ではサーバーの運用に関する考え方が大きく変わっています。特にこれまでいろんなサービスを1台のサーバーで運用していた場合、サービスごとにコンテナやクラウドインスタンスへと切り分けつつ、デプロイそのものを各種構成管理ツールで自動化することを考えるチャンスです。
実際に更新する際は、各自の環境や時間、予算、政治的配慮を元にアップグレードか新規インストールかを最初に検討してください。
今、Ubuntu 10.04 LTSを新規にインストールするには
更新にあたってテスト用のUbuntu 10.04 LTSサーバーを用意する必要があるかもしれません。現在Ubuntu 10.04 LTS環境を用意するためのいくつかの方法をここにまとめておきます。
インストールCD
10.04 LTSのインストールCDのイメージは今も公開されています。当時はまだ700MB以下でしたので、通常のCD-Rにも書き込み可能です。
現在公開されているのは、2012年ぐらいまでのアップグレード適用済みの「Ubuntu 10.04.4 LTS 」のインストールイメージです。
もし何らかの理由で10.04リリース時から10.04.3までの「過去のポイントリリース」のイメージが必要な場合は「old-releases.ubuntu.com 」で入手できます。
ちなみにAlternateインストールCDは12.10から廃止されています 。
クラウドイメージ
Ubuntu Cloud Imageのポータルサイトでは、10.04 LTSのイメージ も公開しています。このイメージを使えば、かんたんにAmazon EC2上に10.04の環境を構築できます。
LXC
Ubuntu 14.04 LTSであれば、LXCを使ってコンテナの中に10.04 LTS環境を構築できます。カーネルが14.04のそれを使うことになるので厳密に同じになるわけではありませんが、ユーザーランドのテストとしてお手軽に構築・破棄をローカルで実施できるのは便利でしょう。
$ sudo lxc - create - t ubuntu - n lucid - test -- - r lucid
Ubuntu 10.04 LTSから12.04 LTSまでの主な注意点
大きな変更点は10.10から14.04 LTSまでのリリースノート を確認してください。12.04 LTSから14.04 LTSまではRecipeの第337回 でもまとめていますので、そちらも参考になるでしょう。
Ubuntu 10.04のポイントリリース時の変更点は通常のリリースノートとは別にまとまっています(10.04.1 、10.04.2 、10.04.3 、10.04.4 ) 。より新しいリリースの変更点がバックポートされていることもありますので、古いポイントリリースからアップグレードする場合は注意しておいた方が良いでしょう。
その上で、特に気をつけるべきことを、以下にまとめておきます。
PAE非対応CPUを使ったマシンにはインストールできません
Ubuntuは32bit版において12.04以降PAEカーネルを利用するようになった 結果、PAE非対応32bit CPUを利用したマシンにはUbuntuをインストールできなくなりました。64bitが利用できず、PAEにも対応していないとても古いマシンをLinuxサーバーとして使い続けたい場合は、non-PAEカーネルを採用するディストリビューションに移行してください。
/etc/resolv.confはresolvconfパッケージが管理します
これも12.04からの変更ですが、/etc/resolv.confはresolvconfが管理するシンボリックリンクになります 。ここに独自の設定を記述している場合、アップグレード時に自動的に/etc/resolvconf/resolv.conf.d/に設定内容が移動しますので注意してください。
Eucalyptusパッケージはなくなりました
Ubuntu 9.04あたりから導入されたEucalyptus パッケージは12.04のリリースを前にUbuntuの公式リポジトリから削除されました [2] 。Ubuntu 10.04 LTSのEucalytus 1.6を使い続けている場合、アップグレードするとEucalyptusが動作しなくなります。別途Eucalytusをインストールする必要がありますが、その場合はCentOS 6やRHEL 6などのEucalyptusがサポートしているディストリビューションへの移行も検討したほうが良いでしょう。
Ubuntu 10.04 LTSからの変更点一覧
最後に、主なパッケージのバージョンの違いを列挙しておきますので、移行する際の参考にしてください。
ここで列挙しているのは2015年3月8日現在の「パッケージのバージョン」です。アップストリームのバージョンとは厳密に意味が異なる場合もありますので注意してください。特により新しいバージョンで見つかった脆弱性の修正が、アップストリームバージョンを変更せずにバックポートされていることはよくあります。
ちなみに列挙しているパッケージとそのカテゴリーは独断と偏見です。
Linuxカーネル
ベースシステム
apparmor
2.5.1-0ubuntu0.10.04.4
2.7.102-0ubuntu3.10
2.8.95~2430-0ubuntu5.1
apt
0.7.25.3ubuntu9.17.1
0.8.16~exp12ubuntu10.22
1.0.1ubuntu2.6
busybox
1:1.13.3-1ubuntu11
1:1.18.5-1ubuntu4.1
1:1.21.0-1ubuntu1
coreutils
7.4-2ubuntu3.1
8.13-3ubuntu3.3
8.21-1ubuntu5.1
eglibc
2.11.1-0ubuntu7.21
2.15-0ubuntu10.11
2.19-0ubuntu6.6
eject
2.1.5+deb1+cvs20081104-7
2.1.5+deb1+cvs20081104-9
2.1.5+deb1+cvs20081104-13.1
gnupg
1.4.10-2ubuntu1.7
1.4.11-3ubuntu2.7
1.4.16-1ubuntu2.1
isc-dhcp
-
4.1.ESV-R4-0ubuntu5.9
4.2.4-7ubuntu12
ncurses
5.7+20090803-2ubuntu3
5.9-4
5.9+20140118-1ubuntu1
netbase
4.35ubuntu3
4.47ubuntu1
5.2
openssl
0.9.8k-7ubuntu8.23
1.0.1-4ubuntu5.21
1.0.1f-1ubuntu2.8
resolvconf
1.45ubuntu1
1.63ubuntu16
1.69ubuntu1.1
rsyslog
4.2.0-2ubuntu8.3
5.8.6-1ubuntu8.9
7.4.4-1ubuntu2.5
shadow
1:4.1.4.2-1ubuntu2.2
1:4.1.4.2+svn3283-3ubuntu5.1
1:4.1.5.1-1ubuntu9
sudo
1.7.2p1-1ubuntu5.7
1.8.3p1-1ubuntu3.6
1.8.9p5-1ubuntu1
udev, systemd
151-12.3
175-0ubuntu9.9
204-5ubuntu20.10
upstart
0.6.5-6
1.5-0ubuntu7.2
1.12.1-0ubuntu4.2
util-linux
2.17.2-0ubuntu1.10.04.2
2.20.1-1ubuntu3.1
2.20.1-5.1ubuntu20.4
10.04 LTSではisc-dhcpの代わりにdhcp3を利用していました。14.04 LTSのudevはsystemdに統合されたバージョンです。余談ではありますが、Ubuntu 10.04 LTSは昨年話題になったHeartbleedの影響は受けていません。
ツール
bash
4.1-2ubuntu3.5
4.2-2ubuntu2.6
4.3-7ubuntu1.5
byobu
2.68-0ubuntu1.2
5.17-0ubuntu1
5.77-0ubuntu1.2
curl
7.19.7-1ubuntu1.11
7.22.0-3ubuntu4.12
7.35.0-1ubuntu2.3
emacs
23.1+1-4ubuntu7.3
23.3+1-1ubuntu9.2
45.0ubuntu1
iproute2
20091226-1
20111117-1ubuntu2.3
3.12.0-2
iptables
1.4.4-2ubuntu2
1.4.12-1ubuntu5
1.4.21-1ubuntu1
less
436-1
444-1ubuntu1
458-2
nano
2.2.2-1
2.2.6-1
2.2.6-1ubuntu1
net-tools
1.60-23ubuntu2
1.60-24.1ubuntu2
1.60-25ubuntu2.1
ntfs-3g
1:2010.3.6-1ubuntu1
1:2012.1.15AR.1-1ubuntu1.2
1:2013.1.13AR.1-2ubuntu2
openssh
1:5.3p1-3ubuntu7.1
1:5.9p1-5ubuntu1.4
1:6.6p1-2ubuntu2
parted
2.2-5ubuntu5.2
2.3-8ubuntu5.2
2.3-19ubuntu1
screen
4.0.3-14ubuntu1.2
4.0.3-14ubuntu8
4.1.0~20120320gitdb59704-9
tmux
1.1-1
1.6-1ubuntu1
1.8-5
ufw
0.30pre1-0ubuntu2
0.31.1-1
0.34~rc-0ubuntu2
vim
2:7.2.330-1ubuntu3.1
2:7.3.429-2ubuntu2.1
2:7.4.052-1ubuntu3
w3m
0.5.2-2.1ubuntu1.2
0.5.3-5ubuntu1.1
0.5.3-15
wget
1.12-1.1ubuntu2.2
1.13.4-2ubuntu1.2
1.15-1ubuntu1.14.04.1
zsh
4.3.10-5ubuntu3
4.3.17-1ubuntu1
5.0.2-3ubuntu6
10.04 LTSと12.04 LTSのiproute2は、iprouteパッケージのバージョンを掲載しています。
プログラミング関連
bzr
2.1.4-0ubuntu1
2.5.1-0ubuntu2
2.6.0+bzr6593-1ubuntu1.1
gcc
4:4.4.3-1ubuntu1
4:4.6.3-1ubuntu5
4:4.8.2-1ubuntu6
git
1:1.7.0.4-1ubunt0.2
1:1.7.9.5-1ubuntu0.1
1:1.9.1-1ubuntu0.1
java
1.6-34
1:1.6-43ubuntu2
2:1.7-51
mercurial
1.4.3-1
2.0.2-1ubuntu1
2.8.2-1ubuntu1
perl
5.10.1-8ubuntu2.4
5.14.2-6ubuntu2.4
5.18.2-2ubuntu1
python
2.6.5-0ubuntu1.1
2.7.3-0ubuntu2.2
2.7.5-5ubuntu3
python3
3.1.2-0ubuntu1
3.2.3-0ubuntu1.2
3.4.0-0ubuntu2
ruby
1.8.7.249-2ubuntu0.3
1.8.7.352-2ubuntu1.6
1:1.9.3.4
subversion
1.6.6dfsg-2ubuntu1.3
1.6.17dfsg-3ubuntu3.4
1.8.8-1ubuntu3.1
10.04 LTSのgitはgit-coreというパッケージ名でした。Javaはdefault-jdkパッケージのバージョンを掲載しています。Rubyは10.04 LTSと12.04 LTSのrubyパッケージは、ruby1.8パッケージに依存するという形で、rubyパッケージそのもののバージョンはRubyのバージョンとは独立した値でした。
サーバーアプリケーション
apache2
2.2.14-5ubuntu8.14
2.2.22-1ubuntu1.7
2.4.7-1ubuntu4.1
avahi
0.6.25-1ubuntu6.2
0.6.30-5ubuntu2.1
0.6.31-4ubuntu1
bind9
1:9.7.0.dfsg.P1-1ubuntu0.12
1:9.8.1.dfsg.P1-4ubuntu0.10
1:9.9.5.dfsg-3ubuntu0.2
dovecot
1:1.2.9-1ubuntu6.6
1:2.0.19-0ubuntu2.2
1:2.2.9-1ubuntu2.1
exim4
4.71-3ubuntu1.4
4.76-3ubuntu3.2
4.82-3ubuntu2
kvm
1:84+(略)+0ubuntu9.26
1:84+(略)+0ubuntu14.21
2.0.0+dfsg-2ubuntu1.10
libvirt
0.7.5-5ubuntu27.25
0.9.8-2ubuntu17.20
1.2.2-0ubuntu13.1.9
lighttpd
1.4.26-1.1ubuntu3.1
1.4.28-2ubuntu4
1.4.33-1+nmu2ubuntu2
lxc
0.6.5-1
0.7.5-3ubuntu69
1.0.7-0ubuntu0.1
mailman
1:2.1.13-1ubuntu0.2
1:2.1.14-3ubuntu0.1
1:2.1.16-2
mediawiki
1:1.15.1-1ubuntu2.1
1:1.15.5-7
1:1.19.14+dfsg-1
moinmoin
1.9.2-2ubuntu3.3
1.9.3-1ubuntu2.2
1.9.7-1ubuntu2
mysql
5.1.73-0ubuntu0.10.04.1
5.5.41-0ubuntu0.12.04.1
5.5.41-0ubuntu0.14.04.1
nginx
0.7.65-1ubuntu2.3
1.1.19-1ubuntu0.7
1.4.6-1ubuntu3.2
nodejs
-
0.6.12~dfsg1-1ubuntu1
0.10.25~dfsg2-2ubuntu1
openldap
2.4.21-0ubuntu5.7
2.4.28-1.1ubuntu4.4
2.4.31-1+nmu2ubuntu8
postfix
2.7.0-1ubuntu0.2
2.9.6-1~12.04.3
2.11.0-1ubuntu1
postgresql
8.4.22-0ubuntu0.10.04.1
9.1+129ubuntu1
9.3+154ubuntu1
samba
2:3.4.7~dfsg-1ubuntu3.15
2:3.6.3-2ubuntu2.12
2:4.1.6+dfsg-1ubuntu2.14.04.7
sendmail
8.14.3-9.1ubuntu1
8.14.4-2ubuntu2.1
8.14.4-4.1ubuntu1
tomcat
6.0.24-2ubuntu1.16
6.0.35-1ubuntu3.5
7.0.52-1ubuntu0.1
unbound
1.4.1-2ubuntu0.2
1.4.16-1
1.4.22-1ubuntu4.14.04.1
xen
-
4.1.6.1-0ubuntu0.12.04.4
4.4.1-0ubuntu0.14.04.3
14.04 LTSのkvmはqemuと統合されたバージョンです。mysqlはmysql-serverパッケージを指定したときにインストールされるバージョンを掲載しています。nodejsとxenパッケージは10.04 LTSには存在しませんでした。tomcatは10.04 LTSと12.04 LTSはtomcat6の、14.04 LTSはtomcat7のバージョンを掲載しています。