2012/11/14

Amazon Linux上にSun JDK 1.7を入れてみた。(修正)


■Sun JDKのダウンロード

OracleのダウンロードページからJavaScriptが動くブラウザでダウンロードしておく。
ダウンロードしたらLinux上にSCPなどでコピーする。

■Sun JDKの展開

Amazon Linuxだと/usr/lib/jvmの配下に置くのがよさそうなのでそこに展開することにした。
cd /usr/lib/jvm
sudo tar xvzf ~ec2-user/jdk-7u9-linux-x64.gz
sudo ln -s java-1.6.0-openjdk-1.6.0.0.x86_64 jdk-1.7.0-sunjava.x86_64
sudo ln -s jdk1.7.0_09/jre jre-1.7.0-sunjdk.x86_64

cd /usr/lib/jvm/jdk1.7.0_09/man/man1
sudo gzip *

■JRE(java)のインストール

alternatives (update-alternatives)コマンドを使ってJava関連ファイルへのリンクを設定していく。

cd /usr/lib/jvm
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/java 17009 \
--slave /usr/bin/java_vm java_vm /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/java_vm \
--slave /usr/bin/javaws javaws /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/javaws \
--slave /usr/bin/jcontrol jcontrol /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/jcontrol \
--slave /usr/bin/keytool keytool /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/keytool \
--slave /usr/bin/orbd orbd /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/orbd \
--slave /usr/bin/pack200 pack200 /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/pack200 \
--slave /usr/bin/policytool policytool /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/policytool \
--slave /usr/bin/rmid rmid /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/rmid \
--slave /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/rmiregistry \
--slave /usr/bin/servertool servertool /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/servertool \
--slave /usr/bin/tnameserv tnameserv /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/tnameserv \
--slave /usr/bin/unpack200 unpack200 /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/bin/unpack200 \
--slave /usr/lib/jvm-exports/jre jre_exports /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64/lib \
--slave /usr/lib/jvm/jre jre /usr/lib/jvm/jre-1.7.0-sunjdk.x86_64 \
--slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/java.1.gz \
--slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/keytool.1.gz \
--slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/orbd.1.gz \
--slave /usr/share/man/man1/pack200.1.gz pack200.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/pack200.1.gz \
--slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/rmid.1.gz\
--slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/rmiregistry.1.gz \
--slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/servertool.1.gz \
--slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/tnameserv.1.gz \
--slave /usr/share/man/man1/unpack200.1.gz unpack200.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/unpack200.1.gz

sudo alternatives --config java

■JDK(javac)のインストール

javaコマンドと同様に、javacコマンドもリンクを作成していく。
sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_09/bin/javac 17009 \
--slave /usr/bin/appletviewer appletviewer /usr/lib/jvm/jdk1.7.0_09/bin/appletviewer \
--slave /usr/bin/apt apt /usr/lib/jvm/jdk1.7.0_09/bin/apt \
--slave /usr/bin/extcheck extcheck /usr/lib/jvm/jdk1.7.0_09/bin/extcheck \
--slave /usr/bin/idlj idlj /usr/lib/jvm/jdk1.7.0_09/bin/idlj \
--slave /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_09/bin/jar \
--slave /usr/bin/jarsigner jarsigner /usr/lib/jvm/jdk1.7.0_09/bin/jarsigner \
--slave /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.7.0_09/bin/javadoc \
--slave /usr/bin/javafxpackager javafxpackager /usr/lib/jvm/jdk1.7.0_09/bin/javafxpackager \
--slave /usr/bin/javah javah /usr/lib/jvm/jdk1.7.0_09/bin/javah \
--slave /usr/bin/javap javap /usr/lib/jvm/jdk1.7.0_09/bin/javap \
--slave /usr/bin/java-rmi.cgi java-rmi.cgi /usr/lib/jvm/jdk1.7.0_09/bin/java-rmi.cgi \
--slave /usr/bin/javaws javaws /usr/lib/jvm/jdk1.7.0_09/bin/javaws \
--slave /usr/bin/jcmd jcmd /usr/lib/jvm/jdk1.7.0_09/bin/jcmd \
--slave /usr/bin/jconsole jconsole /usr/lib/jvm/jdk1.7.0_09/bin/jconsole \
--slave /usr/bin/jcontrol jcontrol /usr/lib/jvm/jdk1.7.0_09/bin/jcontrol \
--slave /usr/bin/jdb jdb /usr/lib/jvm/jdk1.7.0_09/bin/jdb \
--slave /usr/bin/jhat jhat /usr/lib/jvm/jdk1.7.0_09/bin/jhat \
--slave /usr/bin/jinfo jinfo /usr/lib/jvm/jdk1.7.0_09/bin/jinfo \
--slave /usr/bin/jmap jmap /usr/lib/jvm/jdk1.7.0_09/bin/jmap \
--slave /usr/bin/jps jps /usr/lib/jvm/jdk1.7.0_09/bin/jps \
--slave /usr/bin/jrunscript jrunscript /usr/lib/jvm/jdk1.7.0_09/bin/jrunscript \
--slave /usr/bin/jsadebugd jsadebugd /usr/lib/jvm/jdk1.7.0_09/bin/jsadebugd \
--slave /usr/bin/jstack jstack /usr/lib/jvm/jdk1.7.0_09/bin/jstack \
--slave /usr/bin/jstat jstat /usr/lib/jvm/jdk1.7.0_09/bin/jstat \
--slave /usr/bin/jstatd jstatd /usr/lib/jvm/jdk1.7.0_09/bin/jstatd \
--slave /usr/bin/jvisualvm jvisualvm /usr/lib/jvm/jdk1.7.0_09/bin/jvisualvm \
--slave /usr/bin/keytool keytool /usr/lib/jvm/jdk1.7.0_09/bin/keytool \
--slave /usr/bin/native2ascii native2ascii /usr/lib/jvm/jdk1.7.0_09/bin/native2ascii \
--slave /usr/bin/orbd orbd /usr/lib/jvm/jdk1.7.0_09/bin/orbd \
--slave /usr/bin/pack200 pack200 /usr/lib/jvm/jdk1.7.0_09/bin/pack200 \
--slave /usr/bin/policytool policytool /usr/lib/jvm/jdk1.7.0_09/bin/policytool \
--slave /usr/bin/rmic rmic /usr/lib/jvm/jdk1.7.0_09/bin/rmic \
--slave /usr/bin/rmid rmid /usr/lib/jvm/jdk1.7.0_09/bin/rmid \
--slave /usr/bin/rmiregistry rmiregistry /usr/lib/jvm/jdk1.7.0_09/bin/rmiregistry \
--slave /usr/bin/schemagen schemagen /usr/lib/jvm/jdk1.7.0_09/bin/schemagen \
--slave /usr/bin/serialver serialver /usr/lib/jvm/jdk1.7.0_09/bin/serialver \
--slave /usr/bin/servertool servertool /usr/lib/jvm/jdk1.7.0_09/bin/servertool \
--slave /usr/bin/tnameserv tnameserv /usr/lib/jvm/jdk1.7.0_09/bin/tnameserv \
--slave /usr/bin/unpack200 unpack200 /usr/lib/jvm/jdk1.7.0_09/bin/unpack200 \
--slave /usr/bin/wsgen wsgen /usr/lib/jvm/jdk1.7.0_09/bin/wsgen \
--slave /usr/bin/wsimport wsimport /usr/lib/jvm/jdk1.7.0_09/bin/wsimport \
--slave /usr/bin/xjc xjc /usr/lib/jvm/jdk1.7.0_09/bin/xjc \
--slave /usr/share/man/man1/appletviewer.1.gz appletviewer.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/appletviewer.1.gz \
--slave /usr/share/man/man1/apt.1.gz apt.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/apt.1.gz \
--slave /usr/share/man/man1/extcheck.1.gz extcheck.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/extcheck.1.gz \
--slave /usr/share/man/man1/idlj.1.gz idlj.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/idlj.1.gz \
--slave /usr/share/man/man1/jar.1.gz jar.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jar.1.gz \
--slave /usr/share/man/man1/jarsigner.1.gz jarsigner.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jarsigner.1.gz \
--slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/java.1.gz \
--slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/javac.1.gz \
--slave /usr/share/man/man1/javadoc.1.gz javadoc.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/javadoc.1.gz \
--slave /usr/share/man/man1/javafxpackager.1.gz javafxpackager.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/javafxpackager.1.gz \
--slave /usr/share/man/man1/javah.1.gz javah.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/javah.1.gz \
--slave /usr/share/man/man1/javap.1.gz javap.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/javap.1.gz \
--slave /usr/share/man/man1/javaws.1.gz javaws.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/javaws.1.gz \
--slave /usr/share/man/man1/jcmd.1.gz jcmd.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jcmd.1.gz \
--slave /usr/share/man/man1/jconsole.1.gz jconsole.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jconsole.1.gz \
--slave /usr/share/man/man1/jdb.1.gz jdb.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jdb.1.gz \
--slave /usr/share/man/man1/jhat.1.gz jhat.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jhat.1.gz \
--slave /usr/share/man/man1/jinfo.1.gz jinfo.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jinfo.1.gz \
--slave /usr/share/man/man1/jmap.1.gz jmap.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jmap.1.gz \
--slave /usr/share/man/man1/jps.1.gz jps.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jps.1.gz \
--slave /usr/share/man/man1/jrunscript.1.gz jrunscript.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jrunscript.1.gz \
--slave /usr/share/man/man1/jsadebugd.1.gz jsadebugd.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jsadebugd.1.gz \
--slave /usr/share/man/man1/jstack.1.gz jstack.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jstack.1.gz \
--slave /usr/share/man/man1/jstat.1.gz jstat.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jstat.1.gz \
--slave /usr/share/man/man1/jstatd.1.gz jstatd.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jstatd.1.gz \
--slave /usr/share/man/man1/jvisualvm.1.gz jvisualvm.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/jvisualvm.1.gz \
--slave /usr/share/man/man1/keytool.1.gz keytool.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/keytool.1.gz \
--slave /usr/share/man/man1/native2ascii.1.gz native2ascii.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/native2ascii.1.gz \
--slave /usr/share/man/man1/orbd.1.gz orbd.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/orbd.1.gz \
--slave /usr/share/man/man1/pack200.1.gz pack200.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/pack200.1.gz \
--slave /usr/share/man/man1/policytool.1.gz policytool.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/policytool.1.gz \
--slave /usr/share/man/man1/rmic.1.gz rmic.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/rmic.1.gz \
--slave /usr/share/man/man1/rmid.1.gz rmid.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/rmid.1.gz \
--slave /usr/share/man/man1/rmiregistry.1.gz rmiregistry.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/rmiregistry.1.gz \
--slave /usr/share/man/man1/schemagen.1.gz schemagen.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/schemagen.1.gz \
--slave /usr/share/man/man1/serialver.1.gz serialver.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/serialver.1.gz \
--slave /usr/share/man/man1/servertool.1.gz servertool.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/servertool.1.gz \
--slave /usr/share/man/man1/tnameserv.1.gz tnameserv.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/tnameserv.1.gz \
--slave /usr/share/man/man1/unpack200.1.gz unpack200.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/unpack200.1.gz \
--slave /usr/share/man/man1/wsgen.1.gz wsgen.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/wsgen.1.gz \
--slave /usr/share/man/man1/wsimport.1.gz wsimport.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/wsimport.1.gz \
--slave /usr/share/man/man1/xjc.1.gz xjc.1.gz /usr/lib/jvm/jdk1.7.0_09/man/man1/xjc.1.gz

sudo alternatives --config javac

■環境変数JAVA_HOMEの設定

Amazon Linuxの場合は、APIツール自身が使うために下記ファイルで環境変数を設定しているため特に対応不要。
/etc/profile.d/aws-apitools-common.sh

# Prefer JDK if presentif [ -d /usr/lib/jvm/java ]; then    export JAVA_HOME=/usr/lib/jvm/javaelif [ -d /usr/lib/jvm/jre ]; then    export JAVA_HOME=/usr/lib/jvm/jrefi

↑もしAmazon Linux以外の場合は自分で/etc/profile.dにjavahome.shとでもして
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-sunjdk.x86_64
とでもしておけばよい。

■メモ

--slave節を組み立てるのが面倒臭いときは、実行ファイルやmanファイルが転がっているディレクトリに行って
$ ls * | xargs -I% echo --slave /usr/share/man/man1/% % $PWD/% \\
としてから適当に取捨選択すればよい。

0 件のコメント:

コメントを投稿