読者です 読者をやめる 読者になる 読者になる

なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

OracleJDKはyumで管理できないって?さあどうする。

2つのJDK

しばらく開発界隈、Java界隈から離れていたら、いつの間にかSun/OracleJDKとOpenJDKという二大政党制みたいな状態になっていて、しかもLinuxはデフォでOpenJDKをいれてるじゃありませんか。

で、たまたまLinuxJava使う話があって、実験機として構築したLinuxに無意識にインストールしてたOpenJDKをつかっていたんだけど、明示的にOracleJDKを使う要件があって、OpenJDKと同じ調子でyumでいいやと甘く見ててファッ!ってなりました。


ずっと関わってきた人からすれば、「こんなネタ、今更すぎるわ」って話なんでしょうけど。


OracleJDKはWebサイトから入手

Linux用として配布されるファイルはrpmとtar.gzとあり、入手した後はコマンドラインで処理できるわけですが、問題はその入手方法。


公式には、ダウンロードサイトにアクセスして、対象バージョン選択して、ライセンス許諾して、それから対象ファイルを選択してダウンロード。
この「ライセンス許諾」が曲者で、画面上のラジオボタンを選択肢ないとダウンロードが有効にならないよう、Web画面を制御しています。


というわけで、yumリポジトリが公開されていたりはしないです。


最新版以外は、保管先が違う

古いリリースは、原則としてパブリックサイトからはダウンロードできません。
アーカイブサイトの方にzip形式で置いてある模様(配布するファイルタイプまでは細かく調べてない)


また、Oracle製品全般に言えますが、細かいバグ修正版はサポート契約者にしか提供されず、その入手はサポートサイトからになります。



yumがダメでも、コマンドラインで処理させてくれたっていいじゃない。

ってことで、ハックする人はいるんですね。
oracleのjdkをwgetで落としてくる - かれ4

wgetに幾つかパラメータを渡してあげて、webページ上のライセンス許諾や認証をスルーして取りに行く方法が、制限付きながら存在しています。

現時点で公開されている最新版、「Java SE Development Kit 8u65 build 17」ならば

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.rpm

でダウンロードできます。


ダウンロード可能な対象は「パブリックサイトで公開している/していたもの(のうち、Oracle社が消さずに残してくれているもの)」です。
最新じゃなくても、過去にパブリックサイトで「現時点での最新版です(キリッ」って公開していたことがあるものは、どうやらリンクを切ってあるだけで、ファイル自体は残してあるようなのです。


なので、現在は公開ダウンロードを終了しているJava7についても、以下のように取得できます。
現時点で確認できる公開版最終アップデート「Java SE Development Kit 7u80 build 15」が、以下のようにして取得できます。

wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm"

各バージョンの古いアップデートや、Java6以前については、試していません。

注意点

「ビルド番号」が必要

wgetでURL直指定をする際に、ビルド番号が必要です。
ビルド番号はリリースに書いてあります。
ってことは、古いバージョンのリリースノートまで公開されてないだろうから、一度ダウンロード必要?

あくまで公開ダウンロード対象だったバージョン、アップデート、ビルドだけ対応

バージョン、アップデートまで同じでも、ビルド違いでパッチを出していることがあります。(主にサポート契約者向け限定のバグフィックス

手元で動いている環境をそのまま再現するchefとか用意しようとか思っても、対象外かもしれません。

いつ塞がれるかはわかりません

なにせ非公式のやりかたですから。


さて

公式通りにダウンロードしてインストールするのと、どっちがラクなんでしょうね。

また、OpenJDKじゃだめなのか?ってところにも立ち戻ってもいいかもしれませんね。
OpenJDKを知らなくてJavaといえばSun、Sunが買収されたからOracle、ってだけで要件投げてきているだけで、その対応に労力使うとしたら悲劇。



オラクル認定資格教科書 Javaプログラマ Bronze SE 7/8

オラクル認定資格教科書 Javaプログラマ Bronze SE 7/8

オラクル認定資格教科書 Javaプログラマ Silver SE 7

オラクル認定資格教科書 Javaプログラマ Silver SE 7