ここでは OpenRTM-aist (JAVA) のUNIX へのインストール方法を説明します。 ※以降の説明は便宜上 OpenRTM-aist-1.1.0 について書かれています。
openrtm.org では Windows 用の msi (Microsoft Windows インストーラー)パッケージを提供しています。 msi パッケージを利用することで、RTSystemEditor といったツールも同時にインストールすることができます。
openrtm.org のダウンロードサイトから、msi パッケージをダウンロードします。msi パッケージには、必要な RTSystemEditor といったツールは含まれていますが、JDK は予めインストールしておく必要があります。
1.1.2 版からは一つの Windows 用インストーラーに3言語(C++、Java、Python)+ツール(Eclipse+rtshell)すべてが同梱されています。古いバージョンは予めアンインストールすることをお勧めします。 また、ダウンロードサイトでの赤字表記の注意書きをご覧ください。
OpenRTM-aist-Java-1.1.2の動作には JDK8 を推奨しています。
ダウンロードしたファイルを実行するとインストールが開始されます。途中、使用許諾やインストール先などを聞かれますので、お使いの環境に合わせて設定してください。 下記のインストール説明画像は JDK7 のものです。
[次へ] ボタンをクリックします。
[次へ] ボタンをクリックします。
[次へ] ボタンをクリックします。
[閉じる] ボタンをクリックします。
コマンド プロンプト画面を表示( [スタート] > [プログラム] > [アクセサリ] > [コマンド プロンプト] )し、
>java -version
と入力します。インストールした Java のバージョンが表示されればインストールは完了です。
手順については、OpenRTM-aistを10分で始めよう! のページをご覧ください。
インストーラーは以下の作業を行います。
RTM_BASE=C:\Program Files (x86)\OpenRTM-aist\ RTM_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ RTM_VC_VERSION=vc12 RTM_JAVA_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\ OMNI_ROOT=C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\ OpenCV_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\ OpenRTM_DIR=C:\Program Files (x86)\OpenRTM-aist\1.1.2\cmake\
C:\Program Files (x86)\OpenRTM-aist\1.1.2\bin\vc12\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\omniORB\4.2.1_vc12\bin\x86_win32\ C:\Program Files (x86)\OpenRTM-aist\1.1.2\OpenCV2.4.11\x86\vc12\bin\
インストール環境の設定を確認するスクリプトを提供しています。スクリプトの使い方、確認できる内容について下記ページで解説しています。
ファイルは以下のような構造でインストールされます。
上記のインストール環境の設定を確認するスクリプトを実行すると、tree コマンドによる OpenRTM-aist ディレクトリー構造をログファイルに保存しますので、詳細を確認することができます。
<install_dir> + OpenRTM-aist + 1.x.x :旧バージョンのランタイム + <version> + bin: dll, lib, 各種コマンド + cmake: OpenRTMConfig.cmake + coil: coil ヘッダファイル + Components + CXX: + Examples: C++ サンプルコンポーネント + OpenCV: OpenCV のC++ サンプルコンポーネント + Java: Java サンプルコンポーネント + Python: Python サンプルコンポーネント + etc: rtc.confサンプル + ext: ComponentObserverConsumer + jar: OpenRTM-aist と必要な jar ファイル + jre: OpenJDK JRE + omniORB + OpenCV + rtm: OpenRTM-aist ヘッダファイル + idl: OpenRTM-aist IDLファイル + util + OpenRTP: + RTSystemEditor: + rtc-template:
OpenJDK7 または oracleJDK7
各ディストリビューションについて JDK 7 のインストール方法を JDK インストールのためのヒント にまとめましたので参考にしてください。なお、Java のインストールはスーパーユーザーで実行してください。
※ Fedora でエラーになった場合は、以前の情報ですが下記が役立つかもしれません
→ ''FAQ:'' Java をインストールする際の FedoraCore での対応について
→ ''FAQ:'' Q. Fedora Core 上でRtcLink の NameService View にエラーがでるターミナルを起動し、
$ java -version
java version "1.7.0_75" OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1) OpenJDK Client VM (build 24.75-b04, mixed mode, sharing)
こちら から「 jar ファイルおよびサンプル」をダウンロードし、zip ファイルを任意の場所に解凍します。 解凍先は任意でかまいませんが、ディレクトリー構造は変更しないでください※。 また、この解凍先に含まれる「jar」フォルダーへのパスは次に取り上げるシステム環境変数 RTM_JAVA_ROOT に設定しなければなりません。
※ 何らの事情で、解凍後のフォルダー構造を自由な配置・自由な選択としたい場合はこちら を参照してください。
参考:
→ ''FAQ:'' Q. 任意のフォルダーにクラスパスを設定して Ant ビルドを行う方法は?
例えば、ログインシェルが bash の場合で、OpenRTM-aist-Javaを/usr/lib 以下に解凍した場合を考えたとき、.bashrc(あるいは /etc/profile ※)の末尾に次の一文を追加します。
export RTM_JAVA_ROOT=/usr/lib/OpenRTM-aist/<version>
> source ~/.bashrc
※ 環境変数 RTM_JAVA_ROOTを.bashrc(bash の場合)などのユーザー設定にしたのか、あるいは、/etc/profile(bashの場合)などにシステムワイドに設定したのかで、GUI ツールである Eclipse の起動方法が変わってきます。 → Eclipse の起動方法 を参照
※※ 解凍時には「jar」ディレクトリーはクラスライブラリ「OpenRTM-aist-X.X.X.jar」(X.X.Xはバージョン)と「commons-cli-1.1.jar」の二つのファイルを含んだ状態で、「OpenRTM-aist\<version>」の直下にあります。 したがって、ディレクトリー構造を変えなければ、環境変数 RTM_JAVA_ROOT は必ずその値の末尾に「OpenRTM-aist\<version>」を持つという形になります。
すなわち、制限ユーザーがインストールする場合には「システム環境変数」の設定が追加・変更できないので、上記設定を「ユーザー環境変数」に対して行うことになります。
実行するには、ターミナルを起動し、カレントを「examples」ディレクトリーに移してから、該当するシェルスクリプトを起動してください。
+--<install_dir> +--OpenRTM-aist +--<version> +--jar +--examples +--JavaDoc +--JavaDocEn
examples/RTMExamples/SeqIO/SeqIn.class examples/RTMExamples/SeqIO/view/SeqView.class examples/RTMExamples/SeqIO/view/RootPane.class examples/RTMExamples/SeqIO/view/SeqViewApp.class 以下 省略
examples/AutoTestIn.sh examples/AutoTestOut.sh examples/Composite.sh examples/ConfigSample.sh examples/Connector.sh examples/ConsoleIn.sh examples/ConsoleOut.sh examples/ExtConnector.sh examples/ExtConsoleIn.sh examples/ExtConsoleOut.sh examples/GUIIn.sh examples/MyServiceConsumer.sh examples/MyServiceProvider.sh examples/SeqIn.sh examples/SeqOut.sh examples/SinCosOut.sh examples/rtcd_java.sh examples/start-orbd.sh
examples/RTMExamples/SeqIO/SeqInImpl.java examples/RTMExamples/SeqIO/SeqOut.java examples/RTMExamples/SeqIO/view/RootPane.java examples/RTMExamples/SeqIO/view/SeqView.java 以下 省略
日本語のクラスリファレンス(Javadoc HTML 形式)が含まれています。
英語のクラスリファレンス(Javadoc HTML 形式)が含まれています。
ここまで確認できたら動作確認(Linux 編)へ進みましょう。
OpenRTM-aist-Java 本体のソースを変更して利用したい場合には、ソースからコンパイルすることができます。
OpenRTM-aist (Java版) は Eclipse を利用したビルド環境を提供しています。
OpenRTM-aist のビルドには下記の開発環境およびライブラリが必要です。
それぞれのライブラリ等のドキュメントに従いインストールを行ってください。
OpenRTM-aist-Java のソースをダウンロードします。
$ tar xvzf OpenRTM-aist-Java-X.X.X.tar.gz
ビルド方法を説明します。(図は Windows 版の Eclipse3.4.2 です。) Eclipse を起動し、プロジェクトをワークスペースへインポートします。 [ファイル] > [インポート] を選択します。
インポートの「選択」ウィンドウが開きます。ここで、[一般] > [既存プロジェクトをワークスペースへ] を選択して [次へ] ボタンをクリックします。
「プロジェクトのインポート」ウィンドウが開きます。「ルート・ディレクトリーの選択」へ展開したディレクトリーを指定して [完了] ボタンをクリックします。
これで、プロジェクトをワークスペースへインポートできます。
パッケージ・エクスプローラーから build.xml を右クリックして [デバッグ] > -[2 Antビルド...] を選択します。
構成編集のウィンドウが表示さます。ここで、buildAllLinux を選択して [デバッグ] ボタンをクリックします。
ビルドが始まります。
コンソールウィンドウに以上の表示がでれば完了です。
日本語が文字化けしている場合は、メニューの「実行」→「外部ツール」→「外部ツールの構成」で共通タブを開き、文字コードを MS932 に変更(その他の欄に入力)します。
OpenRTM-aist は開発に利用している subversion リポジトリを一般に公開しています。 リポジトリからチェックアウトしたソースコードからビルドを行うこともできます。
ソースのチェックアウト方法を説明します。(図は Windows 版の Eclipse3.4.2 です。) Eclipse でソースをチェックアウトして、ワークスペースへインポートします。 [ファイル] > [インポート] でインポートの「選択」ウィンドウが開きます。ここで、[その他] > [SVNからプロジェクトをチェックアウト] を選択して [次へ] ボタンをクリックすると「SVNからチェックアウト」ウィンドウが開きます。 「新規リポジトリー・ロケーションを生成」を選択して「プロジェクトのインポート」[次へ] ボタンをクリックします。「Url」に http://svn.openrtm.org/OpenRTM-aist-Java/trunk/ と入力し [次へ] ボタンをクリックします。 「フォルダの選択」ウィンドウが開きますので、「jp.go.aist.rtm.RTC」を選択して [完了] ボタンをクリックします。
初回のみ(http://svn.openrtm.org/OpenRTM-aist-Java/trunk)からスクリプトファイルまたはバッチファイルをダウンロードして実行してください。
これらのファイル Subclipse ではチェックアウトできません。
idl ファイルから必要な java ソースファイルが生成されます。
現状の trunk には不備があり、TEST ファイル等の一部でエラーが出るほか、Windows では msi ファイルが生成されません。
ビルド方法を説明します。(図は Windows 版の Eclipse 3.4.2です。) パッケージ・エクスプローラーから build.xml を右クリックして [デバッグ] > [2 Antビルド...] を選択します。
構成編集のウィンドウが表示さます。 ここで、buildAllLinux を選択して [デバッグ] ボタンをクリックします。
ビルドが始まります。
コンソールウィンドウに以上の表示がでれば完了です。
インストールまたはビルドが正常に終了したら、付属のサンプルで動作テスト をします。サンプルは、通常は以下の場所にあります。
サンプルコンポーネントセット SimpleIO を使って、OpenRTM-aist-Java が正しくビルド・インストールされているかを確認します。
RTコンポーネント ConsoleInComp、ConsoleOutComp からなるサンプルセットです。 ConsoleInComp はコンソールから入力された数値を OutPort から出力するコンポーネント、ConsoleOutComp は InPort に入力された数値をコンソールに表示するコンポーネントです。 これらは、最も Simple な I/O (入出力) を例示するためのサンプルです。 ConsoleInComp の OutPort から ConsoleOutComp の InPort へ接続を構成し、これらの2つのコンポーネントをアクティブ化 (Activate) することで動作します。
以下は、msi インストーラーで OpenRTM-aist をインストールした環境で、スタートメニューから各種プログラムを起動する前提で説明します。 スタートメニューから、OpenRTM-aist を右クリックし「開く」でフォルダーを開き、各プログラムへアクセスすると便利です。
まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 [OpenRTM-aist 1.1] > [Tools] にあるショートカットの「Start Java Naming Service」をクリックしネームサーバーを起動します。
起動すると、以下のようなコンソール画面が開きます。
ネームサーバーのコンソール画面が開かないケースがあります。この場合下記のようないくつかの原因が考えられますので、原因を調査して対処してください。
「Start Java Naming Service」は %RTM_ROOT%\bin\rtm-naming.bat にあるバッチファイルからネームサーバー (omniNames.exe) を起動します。 この際、omniNames.exe を参照するために環境変数 OMNI_NAMES を利用しています。 通常インストーラーで OpenRTM-aist をインストールした場合には、OMNI_ROOT 環境変数が自動で設定されますが、何らかの理由で環境変数が無効になっていたり、手動でインストールした場合などは、環境変数が設定されていないことがあります。
ネームサーバー起動後、適当なサンプルコンポーネントを起動します。先ほど開いたスタートメニューフォルダーの、[OpenRTM-aist 1.1] > [Java] > [Components] > [Examples] を開くと、図のようにいくつかのコンポーネントがあります。
ここでは、「ConsoleInComp.bat」「ConsoleOutComp.bat」をそれぞれダブルクリックして2つのコンポーネントを起動します。 起動すると、下図のような2つのコンソール画面が開きます。
コンポーネントが起動しない場合、いくつかの原因が考えられます。
rtc.conf の設定に問題があり、起動できないケースがあります。上記スタートメニューフォルダーの「rtc.conf for examples」を開いて設定を確認してください。 例えば、corba.endpoint/corba.endpoints などの設定が現在実行中の PC のホストアドレスとミスマッチを起こしている場合などは、CORBA が異常終了します。
以下のような最低限の rtc.conf に設定しなおして試してみてください。
corba.nameservers: localhost
スタートメニューフォルダーから、RTSystemEditor を起動します。 RTSystemEditorは [OpenRTM-aist] > [Tools] > [RTSystemEditorRCP] にあります。
RTSE が起動したらまずネームサーバーへ接続します。左ペインの上部にある、のアイコンをクリックして接続ダイアログを開きます。 接続ダイアログのホスト名の部分に先ほど起動したネームサーバーのアドレス (この場合同一ホストですので localhost) を指定します。ポート番号も指定できますが、通常デフォルトの2809番を使用する場合は何も指定しません。
接続すると、ネームサービスビューに localhost が現れます。ツリー表示の [+] をクリックすると、先ほど起動した2つのコンポーネントが登録されていることがわかります。
システムを編集するエディタを開きます。上部のエディタを [開く] ボタンをクリックすると、中央のペインにエディタが開きます。
左側のネームサービスビューに のアイコンで表示されているコンポーネント (2つ) を中央のエディタにドラッグアンドドロップします。
ConsoleIn0 コンポーネントの右側にはデータが出力される OutPort 、ConsoleOut0 コンポーネントの左側にはデータが入力される InPort がそれぞれついています。
これら InPort/OutPort (まとめてデータポートと呼びます) を接続します。 OutPort から InPort (または InPort から OutPort) へドラッグランドドロップすると、図のようなダイアログが現れますので、デフォルト設定のまま [OK] ボタンをクリックします。
2つのコンポーネントの間に接続線が現れます。次に、エディタ上部メニューの [All Activate] ボタン をクリックし、これらのコンポーネントをアクティブ化します。 アクティブ化されると、コンポーネントが緑色に変化します。
コンポーネントがアクティブ化されると ConsoleIn コンポーネント側では
Please input number:
というプロンプト表示に変わりますので、適当な数値 (short int の範囲内:32767以下) を入力し Enter キーを押します。 すると、ConsoleOut 側では、入力した数値が表示され、ConsoleIn コンポーネントからConsoleOut コンポーネントへデータが転送されたことがわかります。
以上で、コンポーネントの基本動作の確認は終了です。
インストーラーには、このほかにもいくつかのサンプルコンポーネントが付属しています。 これらのコンポーネントも同様に起動し、RTSystemEditor でポート同士を接続し、アクティブ化することで試すことができます。
付属しているコンポーネントのリストと簡単な説明を以下に示します。
ConsoleInComp.bat | コンソールから入力された数値を OutPort から出力する。ConsoleOutComp.exe に接続して使用する。 |
ConsoleOutComp.bat | InPort に入力された数値をコンソールに表示するコンポーネント。ConsoleInComp.exe に接続して使用する。 |
SeqInComp.bat | ランダムな数値(Short、Long、Float、Double とそのシーケンス型)を出力するコンポーネント。SequenceOutComp.bat に接続して使用する。 |
SeqOutComp.bat | InPort に入力される数値(Short、Long、Float、Double とそのシーケンス型)を表示。SequenceInComp.exe に接続して使用する。 |
MyServiceProviderComp.bat | MyService 型のサービスを提供するコンポーネント。MyServiceConsumerComp.exe に接続して使用する。 |
MyServiceConsumerComp.bat | MyService 型のサービスを提供するコンポーネント。MyServiceProviderComp.exe に接続して使用する。 |
ConfigSampleComp.bat | Configuration のサンプル。RtcLink から Configuration を変更して Configuration の挙動を理解するためのサンプル。 |
インストールが正常に終了したら、付属のサンプルで動作テストをします。サンプルは、zip ファイルを展開したディレクト配下の以下の場所にあります。
ソースからビルドした場合は、プロジェクトディレクトリー配下の以下の場所にあります。
サンプルコンポーネントセット SimpleIO を使って、OpenRTM-aist-Java が正しくビルド・インストールされているかを確認します。
RTコンポーネント ConsoleInComp、ConsoleOutComp からなるサンプルセットです。 ConsoleInComp はコンソールから入力された数値を OutPort から出力するコンポーネント、ConsoleOutComp は InPort に入力された数値をコンソールに表示するコンポーネントです。 これらは、最も Simple な I/O (入出力) を例示するためのサンプルです。 ConsoleInComp の OutPort から ConsoleOutComp のInPort へ接続を構成し、これらの2つのコンポーネントをアクティブ化 (Activate) することで動作します。
以降、説明を簡単にするため OpenRTM-aist-Java が /home/openrtm/OpenRTM-aist/ にインストール(展開)されているとします。
まず、コンポーネントの参照を登録するためのネームサーバーを起動します。 OpenRTM-aist-Javaでは、orbd(Java CORBA naming servic)の起動用シェルスクリプトを準備しています。 Linux などのパッケージで omniORB をインストールした場合、すでにシステムのサービスとしてネームサーバー (omniNames) が起動している場合があります。 orbd の代わりに omniNames を使用しても正常に動作します。
すでに omniNames が起動している場合、このようになります。
$ ps ax | grep omni 1550 ? Sl 0:00 /usr/bin/omniNames -errlog /var/log/omniorb4-nameserver.log 18418 pts/2 S+ 0:00 grep --color=auto omni
omniNames が起動していない場合はこのようになります。
$ ps ax | grep omni 18418 pts/2 S+ 0:00 grep --color=auto omni
ネームサーバーが起動していない場合、 start-orbd.sh コマンドでネームサーバーを起動します。 start-orbd.shは、/home/openrtm/OpenRTM-aist/1.1/examples に格納されています。
$ sh /home/openrtm/OpenRTM-aist/1.1/examples/start-orbd.sh Starting Java CORBA naming service (orbd).
oebd はブロックします。
システムで IPv6 が設定されている場合、localhost というホスト名が正しく機能しない場合があります。 その場合、localhost の代わりに127.0.0.1に置き換えてください。
ターミナルを起動して ConsoleInComp を起動します。
$ sh /home/openrtm/OpenRTM-aist/1.1/examples/ConsoleIn.sh Creating a component: "ConsoleIn".... succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleIn0 Implementation: ConsoleIn Description: Console input component Version: 1.0 Maker: Noriaki Ando, AIST Category: example Other properties ================================================= ================================================= Port0 (name): ConsoleIn0.out ------------------------------------------------- - properties - port.port_type:DataOutPort dataport.data_type:TimedLong dataport.subscription_type:new, flush, periodic dataport.dataflow_type:push,pull dataport.interface_type:corba_cdr -------------------------------------------------
ターミナルを起動して、同様に ConsoleOutComp を起動します。
$ sh /home/openrtm/OpenRTM-aist/1.1/examples/ConsoleOut.sh Creating a component: "ConsoleOut".... succeed. ================================================= Component Profile ------------------------------------------------- InstanceID: ConsoleOut0 Implementation: ConsoleOut Description: Console output component Version: 1.0 Maker: Noriaki Ando, AIST Category: example Other properties ================================================= ================================================= Port0 (name): ConsoleOut0.in ------------------------------------------------- - properties - port.port_type:DataInPort dataport.data_type:TimedLong dataport.subscription_type:Any dataport.dataflow_type:push,pull dataport.interface_type:corba_cdr -------------------------------------------------
RTSystemEditor を使って、RTコンポーネントの接続とアクティブ化を行います。 こちらから Eclipse 全部入りパッケージをダウンロードし解凍してください。
RTSystemEditor は Java Development Kit7 を使用します。以下のマニュアルを参考にインストールしてください。 また、Ubuntu 等では、デフォルトの Java 環境は OpenJDK が推奨されています。そうした場合、OpenJDK でも利用することは可能です。
こちらのページを参考にRTSystemEditorの起動してください。
ネームサーバーへ接続し登録内容を確認します。 ネームサーバーへの接続は、左側の Name Service View のコンセント型アイコンのボタンをクリックし、ダイアログで
localhost または localhost:2809
と入力します。(orbd のデフォルトのポート番号は2809です。)
ネームサーバに登録された RTコンポーネントをシステムエディタに配置します。 左の Name Service View のConsoleOut0 および ConsoleIn0 を中央のエディタ上にドラッグアンドドロップします。 次に、コンポーネントの右端、左端に出ている突起上のアイコンを、片方からもう片方でドラッグアンドドロップします。 接続ダイアログが表示されますが、すべてデフォルトのままで結構ですので [OK] をクリックすると接続は完了します。
メニューの下の緑色の [再生] ボタンをクリックすると、エディタ上のすべてのコンポーネントがアクティブ化されます。
ConsoleInComp と ConsoleOutComp のポートを接続したら、
Please input number:
というプロンプトが表示されるので、そこに数字を入力します。入力する数字は、short int に収まる範囲の数値を入力してください。
ConsoleInComp 側のターミナルに数字を打ち込むと、ConsoleOutComp 側のターミナルに、入力した数値が表示されます。 以上で、OpenRTM-aist-Java が正しくインストールされていることが確認できました。
apt-getでインストールできます。
$ sudo apt-get install openjdk-7-jdk
JDKの確認
$ java -version java version "1.7.0_75" OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
ここでバージョンが、「1.6.0_xx」という用に表示されたら、JDK7 を使用するように変更します。この切替えは、update-alternatives コマンドで行います。
$ sudo update-alternatives --config java alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------------------------------- * 0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 自動モード 1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 手動モード 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2
リポジトリを追加して、oracleJDK7をインストールします。
$ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-jdk7-installer
JDKの確認
$ java -version java version "1.7.0_76" Java(TM) SE Runtime Environment (build 1.7.0_76-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
OpenJDKもインストールしている場合は、選択状況を下記で確認できます。
$ update-alternatives --config java alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------------------------------- * 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1072 自動モード 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 手動モード 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 1072 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:
手順は上記の Ubuntu14.04 を参照して下さい。同じ手順で設定できます。
右記の手順に従ってインストールします。 https://wiki.debian.org/JavaPackage
/etc/apt/sources.listの末尾に次の一文を追加します。
deb http://http.debian.net/debian/ wheezy main contrib
JDKをインストールするために必要な java-package をインストールします。
# apt-get update # apt-get install java-package
oracleのサイトからJDK (ここではjdk-7u75-linux-x64.tar.gz) をダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
debパッケージを生成してインストールします。
$ make-jpkg jdk-7u75-linux-x64.tar.gz $ ls oracle-j2sdk1.7_1.7.0+update75_amd64.deb # dpkg -i oracle-j2sdk1.7_1.7.0+update75_amd64.deb
oracleJDKを選択します。
# update-alternatives --config java alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------------------------------- 0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 自動モード 1 /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java 317 手動モード 2 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 手動モード * 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 1
JDKの確認
$ java -version java version "1.7.0_75" Java(TM) SE Runtime Environment (build 1.7.0_75-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
/etc/apt/sources.list の最後にwheezyリポジトリを追加します。
# vi /etc/apt/sources.list deb http://ftp.jp.debian.org/debian/ wheezy main
openjdk7 のインストールのためだけに追加したので、優先されるのはsqeezeバージョンということで、/etc/apt/apt.conf.d にlocalファイルを新設して以下を記述します。
# vi /etc/apt/apt.conf.d/local APT::Default-Release "squeeze";
一方、wheezyに含まれるパッケージのプライオリティは最小にしておきます。squeeze環境で、主要なライブラリが不要にもアップグレードされてしまうことは避けたいためです。
/etc/apt/preferences.d にwheezyファイルを新設し、以下を記述します。
# vi /etc/apt/preferences.d/wheezy Package: * Pin: release n=wheezy Pin-Priority: 10
priorityは、インストールしているパッケージには100、インストールしていないパッケージには500が割り当てられるので、100より小さい値を指定しておきます。
# apt-get update # apt-get install -t wheezy openjdk-7-jdk
OpenJDK7を選択します。
# update-alternatives --config java alternative java (/usr/bin/java を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------------------------------- * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自動モード 1 /usr/bin/gij-4.7 1047 手動モード 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手動モード 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 3
JDKの確認
# java -version java version "1.7.0_03" OpenJDK Runtime Environment (IcedTea7 2.1.7) (7u3-2.1.7-1) OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)
Debian6.0 では java-package がサポートされていないので、update-alternatives でインストールします。
oracleのサイトからJDK (ここではjdk-7u75-linux-x64.tar.gz) をダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
解凍し、生成されたディレクトリjdk1.7.0_75を /usr/lib に移動させます。
# tar xvzf jdk-7u75-linux-x64.tar.gz # mv jdk1.7.0_75 /usr/lib/jvm/jdk1.7.0-oracle
update-alternatives コマンドでインストールします。この時、優先度を指定しますが、ここでは1としています。
# update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0-oracle/bin/java" 1 # update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0-oracle/bin/javac" 1
oracleJDKを選択します。
# update-alternatives --config java alternative java (/usr/bin/java を提供) には 4 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------------------------------- 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自動モード 1 /usr/bin/gij-4.7 1047 手動モード 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手動モード * 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 手動モード 4 /usr/lib/jvm/jdk1.7.0-oracle/bin/java 1 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 4
JDKの確認
$ java -version java version "1.7.0_75" Java(TM) SE Runtime Environment (build 1.7.0_75-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
既にインストールされています。
$ java -version java version "1.7.0_75" OpenJDK Runtime Environment (fedora-2.5.4.2.fc20-x86_64 u75-b13) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
oracleのサイトからJDK(ここではjdk-7u75-linux-x64.rpm)をダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
インストール
# rpm -ivh jdk-7u75-linux-x64.rpm
インストール先の確認
# ls -l /usr/java/ lrwxrwxrwx. 1 root root 16 3月 17 10:47 default -> /usr/java/latest drwxr-xr-x. 8 root root 4096 3月 17 10:46 jdk1.7.0_75 lrwxrwxrwx. 1 root root 21 3月 17 10:47 latest -> /usr/java/jdk1.7.0_75
oracleJDKをalternativesへ登録します。この時、上のインストール先から /usr/java/latest のパスを使っていればJDKのバージョン番号に依存せずに済むことが分かります。
登録前に、Javaの設定を確認しておきます。
# update-alternatives --display java java - ステータスは手動です。 リンクは現在 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java を指しています。 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java - 優先項目 170075 スレーブ keytool: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/keytool スレーブ orbd: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/orbd スレーブ pack200: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/pack200 スレーブ rmid: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/rmid スレーブ rmiregistry: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/rmiregistry スレーブ servertool: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/servertool スレーブ tnameserv: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/tnameserv スレーブ unpack200: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/unpack200 スレーブ jre_exports: /usr/lib/jvm-exports/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64 スレーブ jre: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre スレーブ java.1.gz: /usr/share/man/man1/java-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ keytool.1.gz: /usr/share/man/man1/keytool-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ orbd.1.gz: /usr/share/man/man1/orbd-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ pack200.1.gz: /usr/share/man/man1/pack200-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ rmid.1.gz: /usr/share/man/man1/rmid-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ servertool.1.gz: /usr/share/man/man1/servertool-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz スレーブ unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64.1.gz
上記の結果で、orbd がスレーブとして登録されていることが分かります。ネームサーバを起動する際、orbd にパスが通っている必要があります。update-alternatives --install でインストールしたjavaと一緒に切り替えたいものをスレーブで指定しています。よって、oracleJDK を alternatives へ登録する際も --slave オプションで指定することにします。
また、優先項目 170075 とは優先度のことです。update-alternatives --install 実行時に優先度を指定します。今回、OpenJDK7 と orcleJDK7 のバージョンが同じなので、oracleJDK7 を登録する際の優先度も 170075 を指定することにします。
これらのことから、次の設定で登録します。
# update-alternatives --install /usr/bin/java java /usr/java/latest/bin/java 170075 --slave /usr/bin/javac javac /usr/java/latest/bin/javac --slave /usr/bin/javaws javaws /usr/java/latest/bin/javaws --slave /usr/bin/keytool keytool /usr/java/latest/bin/keytool --slave /usr/bin/orbd orbd /usr/java/latest/bin/orbd --slave /usr/bin/pack200 pack200 /usr/java/latest/bin/pack200 --slave /usr/bin/rmid rmid /usr/java/latest/bin/rmid --slave /usr/bin/rmiregistry rmiregistry /usr/java/latest/bin/rmiregistry --slave /usr/bin/servertool servertool /usr/java/latest/bin/servertool --slave /usr/bin/tnameserv tnameserv /usr/java/latest/bin/tnameserv --slave /usr/bin/unpack200 unpack200 /usr/java/latest/bin/unpack200
oracleJDKを選択します。
# update-alternatives --config java 2 プログラムがあり 'java' を提供します。 選択 コマンド ----------------------------------------------- *+ 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.fc20.x86_64/jre/bin/java 2 /usr/java/latest/bin/java Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
JDKの確認
# java -version java version "1.7.0_75" Java(TM) SE Runtime Environment (build 1.7.0_75-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)