クラウド環境のLinuxインスタンスに、帳票ツールのElixir Reportをインストールする手順を画像付きでまとめています。
今回使用する環境は、Microsoft Azureです。
CentOSの仮想マシン作成を行って、Elixir Reportのインストーラを実行し、GUIをX11転送(X11 Forwarding)でWindows側に飛ばして操作する手順になっています。X11転送を使えば、CentOSにデスクトップ環境が入っていなくてもGUI操作でインストールができるので便利です。
ところで、Elixir Reportが公式にサポートしているLinux OSはRed Hat Enterprise Linuxですが、このまとめではCentOSを利用しています。CentOSでも問題なく動作しています。
#環境
Windows 8.1
Elixir Report 8.7J
Microsoft Azure CentOS 7.2
#WindowsにTera Termをインストール
この記事では、LinuxへのSSH接続にTera Termを使用します。
WindowsへのTera Termのインストール方法は、Amazon EC2上にRed Hatインスタンスを作成してElixir Reportをコンソールインストールする手順の[SSH接続用にWindowsにTera Termをインストールしておく]の項目を参考にしてください。
#WindowsにXサーバーをインストール
この記事では、Linux上で動作しているアプリケーションのGUIをWindows側に表示する方法(X11転送)を行います。
この方法ではWindows側にXサーバーがインストールされている必要がありますので、今回はXmingというフリーのWindows用Xサーバーを使用します。
詳しい手順は、以前の記事、Amazon EC2上のRed Hat Enterprise LinuxにX11転送でElixir ReportをGUIインストールする手順の[WindowsにXサーバーをインストールする]の項目を参考にしてください。
#CentOS仮想マシンの作成
#CentOSへのSSH接続と、X11転送の確認
##Linux側の設定確認とXアプリケーションのインストール
- WindowsマシンでTera Termを起動し、作成した仮想マシンのパブリックIPアドレスを入力し、SSH接続します。ユーザー名とパスワードは、仮想マシン作成時に指定した内容です。ここでは”testuser/<指定したパスワード>”になります。
-
接続に成功したら、X11転送の設定が有効化されているか確認します。rootユーザーは使えないため(以下参考)、sudo でX11転送がYesになっているか確認します。デフォルトで有効化されていることが確認できました。
[参考情報]Azure 上の Linux 仮想マシンでの root 権限の使用
$ sudo cat sshd_config |grep X11 [sudo] password for testuser: X11Forwarding yes #X11DisplayOffset 10 #X11UseLocalhost yes # X11Forwarding no
-
Windows側で確認に使用できるXアプリケーションがあるか確認してみますが、
xclock
、xeyes
、gedit
などは入っていませんでした。フォント管理のfc-list
もありません。$ sudo xclock sudo: xclock: command not found $ sudo xeyes sudo: xeyes: command not found $ sudo gedit sudo: gedit: command not found $ sudo fc-list sudo: fc-list: command not found
-
XアプリケーションをX11転送してWindows上に表示できるか確認するため、
xeyes
というXアプリケーションをインストールすることにします。$ sudo yum –y install xeyes
※
xeyes
のインストールで、fc-list
もインストールされます。
##Windows側の設定とテスト
5. Windows側でXmingが起動していることを確認します。
- 一旦Tera Termからログインして、再度ログインし直します。
-
DISPLAY変数が設定されているか確認します。
$ echo $DISPLAY
-
前の手順で何も返ってこなかった場合は、先ほどインストールした
xeyes
を実行しても次のようなエラーになってしまいます。$ sudo xeyes Error: Can't open display:
-
Amazon EC2上にRed Hatインスタンスを作成した時と同じ手順で
xauth
とx11
のライブラリをインストールします。$ sudo yum –y install xorg-x11-xauth.x86_64 xorg-x11-server-utils.x86_64
-
Tera Termでログインしなおし、DISPLAY変数を確認します。今度は自動で設定されていました。
$ echo $DISPLAY localhost:10.0
#CentOSへのインストーラの転送とインストールの実行
-
Tera TermのSCPでインストーラを転送します。
-
転送したインストーラに実行権限を与えます。
$ chmod +x elixirreport87_linux64.bin
-
testuserの
LANG
環境変数が英語になっている場合は、日本語(ja_JP.UTF-8
)に変更しておきます。$ echo $LANG en_US.UTF-8 $ export LANG=ja_JP.UTF-8 $ echo $LANG ja_JP.UTF-8
-
まず、そのままインストーラを実行すると、Amazon EC2のRed Hatインスタンス上でインストールしたときと同じ
libc.so.6
がないというエラーとInvocationTargetException
エラーが発生しました。$ ./elixirreport87_linux64.bin Preparing to install... Extracting the JRE from the installer archive... Unpacking the JRE... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... strings: '/lib/libc.so.6': No such file Launching installer... Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX) Stack Trace: java.lang.NoClassDefFoundError: Could not initialize class java.awt.Toolkit at java.awt.Component.<clinit>(Component.java:593) at com.zerog.ia.installer.LifeCycleManager.g(DashoA8113) at com.zerog.ia.installer.LifeCycleManager.h(DashoA8113) at com.zerog.ia.installer.LifeCycleManager.a(DashoA8113) at com.zerog.ia.installer.Main.main(DashoA8113) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.zerog.lax.LAX.launch(DashoA8113) at com.zerog.lax.LAX.main(DashoA8113) This Application has Unexpectedly Quit: Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)
-
エラーの解消のため、lib.so.6のインストールを行います。
$ sudo yum -y install libc.so.6
-
次に、必要なライブラリをインストールします。
$ sudo yum –y install libXtst
-
もう一度インストーラを実行しますが、日本語フォントがないので□表示になってしまいました(もし実行してしまったときは、赤で囲んだボタンをクリックして、インストールをキャンセルしてください)。
-
フォントのインストールをします。
$ sudo yum -y install vlgothic-fonts ipa-mincho-fonts ipa-gothic-fonts
-
再度インストーラを実行すると、問題なくインストーラが起動しました。インストーラの詳細なステップは、以前の記事を参考にしてください。
#レポートサーバーの起動と、セキュリティ設定
-
レポートサーバーの起動シェルスクリプトを実行します。
$ ./reportserver-start.sh &
※”&”を付加してバックグラウンド実行にします。
【注意】起動ユーザーの
LANG
環境変数が英語の場合、レポートサーバーが英語ロケールで起動され、Webインターフェースのメニュー等が英語表示されます。日本語ロケールへ変更して起動を行ってください。
-
Windows側のブラウザからWebインターフェースにアクセスしてみますが、タイムアウトしてしまいました。ファイアウォールではじかれているようです。
http://<パブリックIPアドレス>:7001/
-
レポートサーバーが使用するポート
7001
の許可をAzureのダッシュボードから追加します。[ネットワークセキュリティグループの設定]から行います。
- 仮想マシンの再起動などはしなくても、すぐに7001ポートでのアクセスに成功し、レポート生成もできるようになりました。
#CentOSインストールのまとめ
CentOSへのElixir Reportのインストールは、Amazon EC2上のRed Hatインスタンスへのインストールと同じライブラリやフォントのインストールが必要で、Windows側の準備や設定も同じでした。設定などを以下にまとめておきます。
##CentOSにインストールした項目
・ライブラリ
$ sudo yum –y install xorg-x11-xauth.x86_64 xorg-x11-server-utils.x86_64
$ sudo yum -y install libc.so.6
$ sudo yum –y install libXtst
・フォント関連
$ sudo yum -y install vlgothic-fonts ipa-mincho-fonts ipa-gothic-fonts
※xeyesをインストールしなかった場合は以下も必要
$ sudo yum –y install fontconfig
・確認用のXアプリケーション(必須ではありません。インストールしなかった場合は、上記のfontconfigのインストールを行ってください)
$ sudo yum –y install xeyes
##CentOSの仮想マシンに行った設定変更
・ポート7001の開放(ネットワークセキュリティグループの設定)
#参考情報
よくあるエラーをこちらの記事の参考情報にまとめています。