試した環境 OS: 7.3
前提 5733-OPSのライセンスが導入済み
CCSID(5035)で作業しています。記事中の「paseで実施」はcall qp2termコマンドでPASE環境に入っての作業を指します。
基本的にはここを参考にして実施したのですが、内容が少し古そうなので自分で作業したものを掲載します。
1)chrootユーザーの作成。
この記事では「YMURATA」というユーザーIDで作成してみます。適宜置き換えて下さい。
(qcmdで実施)
CRTUSRPRF USRPRF(YMURATA) PASSWORD() USRCLS(*SECOFR) CHRIDCTL(*JOBCCSID) TEXT('オープンソース用') CCSID(5035)
CHGUSRPRF USRPRF(YMURATA) HOMEDIR('/QOpenSys/ymurata')
一旦サインオフして、「YMURATA」でサインオン
(qcmdで実施)
MKDIR DIR('/QOpenSys/ymurata')
再びサインオフして、「YMURATA」でサインオン。念のためWRKLNKコマンドでホームディレクトリが変わっていることを確認しておいて下さい。
2)chroot用の環境を作っていきます。
(paseで実施)
cd /QOpenSys/QIBM/ProdData/OPS/GCC
./chroot_setup.sh chroot_minimal.lst /QOpenSys/ymurata
./chroot_setup.sh chroot_bins.lst /QOpenSys/ymurata
./chroot_setup.sh chroot_includes.lst /QOpenSys/ymurata
./chroot_setup.sh chroot_libs.lst /QOpenSys/ymurata
./chroot_setup.sh chroot_OPS_GCC.lst /QOpenSys/ymurata
./chroot_setup.sh chroot_OPS_SC1.lst /QOpenSys/ymurata
3)Node.js V6をインストールする
chroot_OPS_NODE.lstはv0.12.17がインストールされてしまうので、ここではV6をインストールします。
といっても、スクリプトを少し変えるだけです。
(paseで実施)
cp chroot_OPS_NODE.lst chroot_OPS_NODE_V6.lst
(qcmdで実施)
EDTF STMF('/QOpenSys/QIBM/ProdData/OPS/GCC/chroot_OPS_NODE_V6.lst')
最後の行に
:cp_dir
/QOpenSys/QIBM/ProdData/Node
とあるので、これを
/QOpenSys/QIBM/ProdData/OPS/Node6
に置き換えます。
実行します。
(paseで実施)
cd /QOpenSys/QIBM/ProdData/OPS/GCC
./chroot_setup.sh chroot_OPS_NODE_V6.lst /QOpenSys/ymurata
なお、chroot_OPS_PYTHONもここでは実施しません。
4)必要なコマンド類をインストールする
上記まででchroot環境に入れるはずです。
(paseで実施)
chroot /QOpenSys/ymurata /QOpenSys/usr/bin/bsh
lsコマンドやpwdコマンドで確認してみて下さい。
(paseで実施)
cd /QOpenSys/QIBM/ProdData/OPS/GCC
./pkg_setup.sh pkg_perzl_bash-4.3.lst
./pkg_setup.sh pkg_perzl_gcc-4.8.3.lst
./pkg_setup.sh pkg_perzl_utils.lst
ここではwgetを利用してソフトを取得+インストールします。
IbmiがProxy配下にある場合は、次のファイルを修正して下さい。
(qcmdで実施)
EDTF STMF('/QOpenSys/ymurata/etc/wgetrc')
http_proxy =
ftp_proxy =
がありますので、適宜置き換えて下さい。
例)http_proxy = http://xxx.xxx.xxx.xxx:port番号/
5)Node環境整備
4)でbashが入りましたので、bashでchrootしてみます。
NodeのPATHを通します。
(paseで実施)
chroot /QOpenSys/ymurata /QOpenSys/usr/bin/bash
export PATH=$PATH:/QOpenSys/QIBM/ProdData/OPS/Node6/bin
(paseで実施)
node -v
v6.11.5
npm -v
module.js:471
throw err;
Error: Cannot find module 'npmlog'
:
:
npmはエラーが出て実行できません。これを修正します。
(paseで実施)
cd /QOpenSys/QIBM/ProdData/OPS/Node6/bin
mv npm npm.original
ln -s ../lib/node_modules/npm/bin/npm-cli.js ./npm
npm -v
3.10.10
6)gmakeのインストール
(paseで実施)
gmake --version
gmake: *** virtual memory exhausted. 中止 .
エラーが出ますので、これを修正します。
wgetで必要なソフトをダウンロードし、rpmを使ってインストールします。
wget用のフォルダ「download」を作り、そこで作業します。
(paseで実施)
cd /
mkdir download
cd download
wget http://www.oss4aix.org/download/RPMS/make/make-4.2.1-1.aix5.3.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv make-4.2.1-1.aix5.3.ppc.rpm
proxy配下の場合、wget -e HTTP_PROXY=xxx.xxx.xxx.xxx:port番号 http://~として下さい。
(paseで実施)
export LIBPATH=$LIBPATH:/QOpenSys/usr/lib:/opt/freeware/lib
gmake --version
GNU Make 4.2.1
7)追加のソフトのインストール
pythin2.7とビルドに必要なgcc関係をインストールします。
(paseで実施)
wget http://www.oss4aix.org/download/RPMS/python/python-2.7.13-1.aix5.1.ppc.rpm
wget http://www.oss4aix.org/download/RPMS/python/python-libs-2.7.13-1.aix5.1.ppc.rpm
wget http://www.oss4aix.org/download/RPMS/python/python-tools-2.7.13-1.aix5.1.ppc.rpm
wget http://www.oss4aix.org/download/RPMS/gcc/libgcc-4.8.3-1.aix6.1.ppc.rpm
wget http://www.oss4aix.org/download/RPMS/gcc/libstdc++-4.8.3-1.aix6.1.ppc.rpm
wget http://www.oss4aix.org/download/RPMS/gcc/libstdc++-devel-4.8.3-1.aix6.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv python-2.7.13-1.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv python-libs-2.7.13-1.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv python-tools-2.7.13-1.aix5.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv libgcc-4.8.3-1.aix6.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv libstdc++-4.8.3-1.aix6.1.ppc.rpm
rpm --ignoreos --ignorearch --nodeps --replacepkgs -hUv libstdc++-devel-4.8.3-1.aix6.1.ppc.rpm
8)確認
(paseで実施)
gcc --version
gcc (GCC) 4.8.3
python -V
Python 2.7.13
以上で終了です。