tar.gz から .deb をつくって Ubuntu に Oracle Java をインストール
Oracle Java の Linux 向け公式インストーラーは RPM と tarball との二択。
alian というパッケージ変換ツールを使うと RPM を DEB に変えられるというので Ubuntu で試してみたところ、インストール後のスクリプトで alternatives がないとエラーが(というのも Ubuntu では update-alternatives を使うからだが)発生してしまった。
どうしたものかと少々さぐったところ、tarball から alien を使って DEB を作るという記事 http://uchan.hateblo.jp/entry/2016/03/19/004153 が見つかった。
というので真似してみた。
http://www.oracle.com/technetwork/java/javase/downloads/index.html から最新 64bit 版 JDK をダウンロード。(これを書いている時点では 8u91)
/opt/oraclejdk_8-amd64 に配置するつもりでパッケージ化準備を進める。
$ DST="/opt/oraclejdk_8-amd64" $ mkdir -p /tmp/jdk{/DEBIAN,$DST} $ cat >/tmp/jdk/DEBIAN/postinst <<EOF #!/bin/sh cd "$DST/bin" for f in *; do update-alternatives --install "/usr/bin/\$f" "\$f"\ "$DST/bin/\$f" 1000 done EOF $ chmod 0755 /tmp/jdk/DEBIAN/postinst $ tar xzf ~/Downloads/jdk-8u91-linux-x64.tar.gz\ -C /tmp/jdk$DST --strip-component 1 $ cd /tmp/jdk $ tar czf $(basename $DST).tar.gz opt/ DEBIAN/ $ fakeroot alien --version=1.8.0.91 --bump=0 $(basename $DST).tar.gz
これで /tmp/jdk の下に oraclejdk-8-jdk_1.8.0.91-1_all.deb ができあがる。
これをシステムに導入するときは dpkg コマンドを使う。:
$ sudo dpkg -i oraclejdk-8-jdk_1.8.0.91-1_all.deb
うん、できた。
念のため update-alternatives も実行して、インストールした JDK を使うよう選択しておく。:
$ sudo update-alternatives --config java