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')
を実行します。
/QOpenSys/pkgs にインストールされますので、/QOpenSys/pkgs/binにPATHを通してください。
2)yumが使えるか確認
PASE環境でyumが使えるようになっているはずです。以下全てPASE環境で実施しています。
検索してみます。
yum search node
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をロードできません・・
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)にありました。こんなところにあるのですね・・・
これを取り込みます。
※なお、他にも必要なファイルがありますので一緒に取り込みます。
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