2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IBMi node.jsのNative Addonモジュールをビルドする環境を構築してみた(Node Ver8編)

Last updated at Posted at 2018-06-21

yumやnode.jsのVer8がIbmiで稼働する方法を紹介します。
このページを参考にしました。まだベータ版のようですが、インストール自体は非常に簡単です。

試した環境 OS: 7.3
5733-OPSが必要かどうか記載が無いため分かりませんでした。試した環境には導入済みです。
CCSID(5035)で作業しています。

1)インストール

オンラインインストールとオフラインインストールが可能です。私はオフラインで試しました。

「bootstrap.sh」と「bootstrap.tar.Z」を自分のPCでダウンロードします。
何らかの手段で「 /tmp 」にアップロードします。
5250ターミナルから

QSH CMD('touch -C 819 /tmp/bootstrap.log; /QOpenSys/usr/bin/ksh /tmp/bootstrap.sh > /tmp/bootstrap.log 2>&1')

を実行します。

01.JPG

/QOpenSys/pkgs にインストールされますので、/QOpenSys/pkgs/binにPATHを通してください。

2)yumが使えるか確認

PASE環境でyumが使えるようになっているはずです。以下全てPASE環境で実施しています。

02.JPG

検索してみます。

yum search node

03.JPG

IBMiがProxy配下の場合、以下の環境変数が必要でした。

http_proxy=http://XXX.XXX.XXX.XXX:ポート番号/
https_proxy=http://XXX.XXX.XXX.XXX:ポート番号/
ftp_proxy=http://XXX.XXX.XXX.XXX:ポート番号/
export http_proxy
export https_proxy
export ftp_proxy

3)インストール

node.jsとNative Addonモジュールをビルドする環境を構築して行きます。
node-gypはpython2.7系が必要なので、ここではpython2を入れます。

yum install nodejs8.ppc64
yum install gcc-aix libstdcplusplus-devel
yum install make-gnu.ppc64 
yum install python2.ppc64 python2-devel.ppc64

※2018/6/21現在で、「yum group install 'Development Tools'」で出来るとの記載がありました。
私が試した時にはこの記載がなかったので、上記で実施しています。

4)確認

nodeが使えるようにセットアップします。

/QOpenSys/pkgs/bin/nodever 8
node -v
 v8.10.0
npm -v
 5.6.0
gcc --version
 gcc.bin (GCC) 6.3.0
python -V
 exec(): 0509-036以下のエラーが発生したために、プログラムpythonをロードできません・・

04.JPG

pythonが動かないので、これを直します。

cd /QOpenSys/pkgs/bin
ln -s python2.7 ./python
python -V
 Python 2.7.14

5)Node.js Ver8のドライバーの入手

ここに記載があります。

適当なディレクトリを作り、npm init -yで初期化した後に、

PATH=/QOpenSys/pkgs/bin:/QOpenSys/pkgs/lib/nodejs8/bin:$PATH
export PATH
npm install idb-connector

私の環境ではエラーでビルド出来ませんでした。
エラーの内容を見てみると

In file included from ../src/db2ia/db2ia.cc:5:0:../src/db2ia/dbconn.h:11:20: fatal error: sqlcli.h: No such file or directory

sqlcli.hが無い、と言っています。
QSYSINC/H(SQLCLI)にありました。こんなところにあるのですね・・・
05.JPG

これを取り込みます。
※なお、他にも必要なファイルがありますので一緒に取り込みます。

qsh_out -c 'cat /qsys.lib/qsysinc.lib/h.file/sqlcli.mbr' > /usr/include/sqlcli.h
qsh_out -c 'cat /qsys.lib/qsysinc.lib/h.file/sql.mbr' > /usr/include/sql.h
qsh_out -c 'cat /qsys.lib/qsysinc.lib/h.file/sqlsystm.mbr' > /usr/include/sqlsystm.h
qsh_out -c 'cat /qsys.lib/qsysinc.lib/h.file/sqludf.mbr' > /usr/include/sqludf.h

これでビルド出来ました。
itoolkit用もあります。こちらは問題無くインストール出来ました。

npm install itoolkit

使い方ですが、

var db = require('idb-connector');

に変えるだけでそのままVer6用のソースが動きます。
Ver6用のソースがある方は試してみて下さい。

余談
yarnも使えます。

yarn -v
 1.7.0
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?