2011年11月28日月曜日

Ubuntu 11.10 "Oneiric Ocelot" での sun-java6-jdk パッケージのインストール

【重要】 その後状況が変わり、LffL Java PPA や従来の sun-java6 パッケージ群を使用することは推奨できない状況となりました。開発環境として Oracle JDK を維持しないといけない方へ導入記事をこちらに書きましたので、そちらをご覧ください(2011/12/22 追記)。


先日、「第21回 日本Androidの会 東北支部発信会」で GDD 2011 の参加報告ということで喋ってきたのですが、懇親会で「Ubuntu を普段づかいにしてるのって珍しいね」と言われてちょっとヘコんでいる今日この頃です。

さて、Ubuntu 11.10 "Oneiric Ocelot" を新規にセットアップする際にハマりがちになるのは実は Java6 JDK 環境だったりします。というのは Ubuntu 11.10 になって sun-java6-jdk パッケージが partner レポジトリから削除され、 「partner レポジトリを有効にする」という従来の方法ではインストールすることができなくなったためです。アップグレードインストールで 11.10 環境を作った場合にはすでにインストールされている sun-java6-jdk パッケージが維持されているので見落としがちになるのですが、新規に環境を作る時にハマってしまうポイントです。

どうしてこういうことになったのかというと、他でもなくライセンスの都合ということになるのですが、特に Android 開発では Java6 JDK がないとはじまらない部分があるのでなんとかしたいところです。現状は
  • OpenJDK ( 6 もしくは 7 ) を使う
  • Oracle から公式のパッケージをダウンロードしてそれを使う
  • LffL Java PPA を利用する
という 3 つの選択肢があります。どれがいいのかという議論になるのですが、Android 開発をすることを念頭に入れると、互換性の問題を踏むと厄介そうだというのと、公式のパッケージを使った場合には /usr/lib/jvm 以下に正しくファイルを配置しないといけないということから、 LffL Java PPA を使ってみたいと思います。

PPA という仕組みを使ってインストールすることになるので、前もって

# apt-get install python-software-properties

として、add-apt-repository コマンドをインストールして、 LffL Java PPA の登録を行います。

# add-apt-repository ppa:ferramroberto/java
You are about to add the following PPA to your system:
 LffL Java
 PPA esclusivo per l'ultima versione disponibile di JAVA

PPA for the latest version of JAVA

PPA fur die neueste Version von JAVA

PPA para la ultima version de JAVA

PPA pour la derniere version de JAVA


by LffL http://www.lffl.org

 More info: https://launchpad.net/~ferramroberto/+archive/java
Press [ENTER] to continue or ctrl-c to cancel adding it

(確認のためにここで止まりますので、ENTER キーを押して先に進みます)
(やめる時には Ctrl+C で add-apt-repository コマンドを停止させます)

Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.cQGIjhdptt --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80/ --recv 3E756CF119B127D4DA40A186B725097B3ACC3965
gpg: requesting key 3ACC3965 from hkp server keyserver.ubuntu.com
gpg: key 3ACC3965: public key "Launchpad lffl" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

PPA の登録が済んだら、apt-get update, apt-get install コマンドでインストールします。

# apt-get update
...
# apt-get install sun-java6-jdk sun-java6-plugin
...

インストールが終わったら

$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

として、バージョンを確認しておくと良いでしょう。またすでに OpenJDK 環境をインストールしている場合には、update-alternatives コマンドで切り替えておくとよいと思います。