Linuxへ JDK6u18をインストールしてみました。
今日もgcjにやられたので、改めてRedhat系のLinuxへのSUN*1 JDKのインストール方法をメモしておきます。
最近のRed Hat Enterprise Linux Server(RHES)では、alternativesコマンドにより javaの実装を切り替えられるようになっているようです。デフォルトでは gcjになっています。
そこで、以下のコマンドで最新のJavaへ切り替えられるように頑張ってみた結果のメモです。環境によってはうまく行かない可能性があると思いますが、ご了承下さい。
# /usr/sbin/alternatives --config java
JDKのインストール
まずは、http://java.sun.com/javase/downloads/widget/jdk6.jsp よりJavaの最新版rpmをダウンロードしてきて、rootで実行すればインストール完了です。JDK 6u18*2ですと、以下のディレクトリにインストールされます。
/usr/java/jdk1.6.0_18/
JPackageのソースRPMをインストール
次に、id:ao3:20080802 を参考に以下のソースRPMをダウンロード&インストールします。
ソースrpmをインストールすると、以下のディレクトリ以下に入ります。
/usr/src/redhat/
JPackageにパッチをあてる
インストールした SPECファイルを書き換えます。
$ cd /usr/src/redhat/SPECS/
$ sudo vi java-1.6.0-sun-compat.spec
書き換える内容は以下の通りです。
@@ -1,7 +1,7 @@ %define origin sun -%define priority 1603 +%define priority 1618 %define javaver 1.6.0 -%define buildver 06 +%define buildver 18 %define upstreamrel fcs %define name java-%{javaver}-%{origin}-compat @@ -346,7 +346,7 @@ --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext %{_mandir}/man1/unpack200-%{name}.1$ext \ %if %{has_javaws} --slave %{_mandir}/man1/javaws.1$ext javaws.1$ext %{_mandir}/man1/javaws-%{name}.1$ext \ ---slave %{_datadir}/javaws javaws %{_jvmdir}/%{jrelnk}/javaws +--slave %{_bindir}/javaws javaws %{_jvmdir}/%{jrelnk}/javaws %endif update-alternatives --install %{_jvmdir}/jre-%{origin} jre_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \ @@ -559,6 +559,7 @@ %dir %{jvmjardir} %{_jvmdir}/%{jredir}/lib/fonts %dir %{_jvmdir}/%{jredir}/lib/security +%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklist %config(noreplace) %{_jvmdir}/%{jredir}/lib/security/cacerts %config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy %config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security @@ -589,6 +590,9 @@ %changelog +* Tue Mar 16 2010 Horiuchi_H <horiuchi.g@gmail.com> - 0:1.6.0.18-1jpp +- 1.6.0_18. + * Sat Apr 26 2008 Ville Skytta <scop at jpackage.org> - 0:1.6.0.06-1jpp - 1.6.0_06.
書き換えが終わったら、rpmのパッケージを作成します。
$ sudo rpmbuild -bb java-1.6.0-sun-compat.spec
作成したRPMをインストールして、Javaを切り替える。
出来上がった rpmをインストールします。
$ cd /usr/src/redhat/RPM/i586/ $ sudo rpm -ivh java-1.6.0-sun-compat-1.6.0.18-1jpp.i586.rpm
あとは、以下のコマンドを実行して javaコマンドを切り替えるだけです。
$ sudo /usr/sbin/alternatives --config java
環境の違いなどで、rpmbuild辺りでエラーが出るかもしれませんが、自己責任でお願いします。。。
自分も、id:ao3:20080802 を参考に現行のバージョンで動くようにしただけですので。ただ、x86_64環境では specファイルの 29行目を以下のようにしないと rpmbuildでエラーになっていました。アドホックすぎるので正しいとは思えないですけどね。
%define has_javaws 1