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のそれを使うことになるので厳密に同じになるわけではありませんが、ユーザーランドのテストとしてお手軽に構築・破棄をローカルで実施できるのは便利でしょう。
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のバージョンを掲載しています。