著者|
小川 誠 氏
ティアンドトラスト株式会社
代表取締役社長 CIO CTO
1989年、エス・イー・ラボ入社。その後、1993年にティアンドトラストに入社。システム/38 から IBM i まで、さまざまな開発プロジェクトに参加。またAS/400 、IBM i の機能拡張に伴い、他プラットフォームとの連携機能開発も手掛ける。IBM i 関連の多彩な教育コンテンツの作成や研修、セミナーなども担当。2021年6月から現職。
Gitの利点
ここで、あらためてGitの利点について復習しておこう。詳細は「特集 IBM iユーザーに捧げるGit入門」(i Magazine 2021 Autumn号、Web掲載中)を参照してもらいたいが、Gitを利用することの利点をまとめると、おおよそ以下が挙げられる。
・前日までどこを修正したかが可視化できる
・複数のソースコードを修正していてもすべて把握できる
・他の開発者に修正作業をすぐに引き継げる
・開発とリリースを確実に分業できる
Gitではソースコードの変更のまとまりを「コミット」することにより、あとからコミット間で修正したソースコードの一覧を参照したり、特定のソースコードの修正個所の確認が可能になる。誰がいつ何をどのように修正したのかを、いつでも参照可能なのだ。また、ブランチ機能を活用して、いわゆるパラレル・ワールド(並行して存在する別の世界)を作成することで、本番環境で稼働しているソースコードとは別の「世界」で開発を進めていくこともできる。
IBM iのGitについて
RDiやVSCodeでRPGのソースコードのバージョン管理を行う場合、Gitはクライアント側にあり、バージョン管理をするソースコードもPC上に存在している。そのため、IBM iとPC上のコードの送受信が必ず発生する。RDiではIBM i接続を経由して、またVSCodeはssh接続経由でこれを実現するので、ユーザーはそのことを特別に意識することなくGitを利用できている(図表1)。
ご存じの方も多いと思うが、実はIBM iのPASE環境でもGitを利用することが可能だ。RDiやVSCodeの拡張機能のような使いやすいインターフェースは用意されていないが、Gitコマンドを使用することで5250インターフェースでもGitを利用できる(図表2)。
2024年5月23日現在、IBM iで利用可能なGitの最新バージョンは2.39.3だ(Gitの最新バージョンは 2.45.1)。
前提条件
では、IBM iでPASE環境のGitを利用するための前提条件をまとめておこう。
必要な IBM iライセンス・プログラム
– 5770-SS1 オプション30 QSHELL
– 5770-SS1 オプション33 PORTABLE APP SOLUTIONS ENVIRONMENT
– 5733-SC1 *BASE IBM PORTABLE UTILITIES FOR I
– 5733-SC1 オプション1 OPENSSH, OPENSSL, ZLIB
オープンソース環境のインストールとGitの導入
オープンソース環境のインストール手順についてはここでは詳細を省くが、以下ページを参考にしてもらいたい。
[IBM i OSS Docs > RPM pile for IBM ireleases in standard support > Installation]
▷https://ibmi-oss-docs.readthedocs.io/en/latest/yum/README.html#installation
上記サイトは英語だが、ブラウザの翻訳ツール(ChromeであればGoogle Translate)などを利用すれば十分に理解できるはずだ。ただし、導入に使用するユーザーは特殊権限が必要になるので、会社全体でどうすべきかを検討したうえで導入していただきたい。
基本的にオープンソース環境は英小文字の認識が必要になるので、システム値QCCSIDが65535の場合は、以下の環境設定が必要になる。
– 作業するジョブのCCSIDを5035 / 1399にする
– エミュレータのホストコード・ページを939に設定する
(930 の場合は英小文字の入力ができないため)
Gitをインストール
IBM iのオープンソース環境のインストールが完了したら、次にGitをインストールする。IBM iにサインオンし、QP2TERMプログラムを実行して表示される画面で、以下のコマンドを実行する(QP2TERM プログラムを実行するジョブのCCSIDなどは上記を参照)。
/QOpenSys/pkgs/bin/yum install git
途中、インストールしてよいか聞かれるので「y」で答えるとインストールが完了する。
・・・・・・・・・・・・・・・・・・・・・・・・・・・
/QOpenSys/usr/bin/-sh
================================================
インストールしています:
git ppc64 2.39.3-3 ibmi-base 13 M
トランザクションの要約
================================================
インストール 1 Package
合計容量: 13 M
インストール済み容量: 13 M
これでいいですか? [y/N]
・・・・・・・・・・・・・・・・・・・・・・・・・・・
インストールされたGitのバージョンを確認するには、以下コマンドを入力すればよい。
> /QOpensys/pkgs/bin/git–version
git version 2.39.3
上記の通り、Git本体はIFSの /QOpenSys/pkgs/bin ディレクトリに登録される。PASE環境では、PATH環境変数に指定されたディレクトリが検索対象となるが、初期値ではこの /QOpenSys/pkgs/bin はPATH環境変数に入っていない。試しにQP2TERM 画面で以下コマンドを実行して確認してみよう。
> echo $PATH
上記は、環境変数 $PATHを表示させるコマンドだが、結果は以下のようになるはずだ。
> echo $PATH /QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin
PATH環境変数にGitコマンドが登録されたディレクトリを追加するには、exportコマンドで以下のように指定する。
> export PATH=/QOpenSys/pkgs/bin:$PATH
これにより、コマンド名のみが入力されると、PATH 環境変数に従って検索が行われる。whichコマンドを使ってGitコマンドの場所を確認すると、/QOpenSys/pkgs/bin 内のGitが参照されていることがわかる。
> which git
/QOpenSys/pkgs/bin/git
上記のようにexportを使用した環境変数の設定は一時的なもので、QP2TERMプログラムを終了すると設定は無効になり、再度プログラムを実行するとデフォルトのPATH設定に戻る。
> echo $PATH
/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin
QP2TERMプログラムを実行するたびに /QOpenSys/pkgs/binディレクトリをPATH環境変数に追加するには、ユーザーのホームディレクトリに .profileファイルを追加し、/QOpenSys/pkgs/binを追加するexportコマンドを記述するとよい。
通常はエディタを使用して記述するが、QP2TERM 画面で以下コマンドを実行することでも同様に .profile ファイルが作成できる。
echo ‘export PATH=/QOpenSys/pkgs/bin:$PATH’ > /home/GITUSER/.profile
上記コマンドで、ユーザーのホーム・ディレクトリに .profileという名前のファイルが作成され、「export PATH=/QOpenSys/pkgs/bin:$PATH」の行がファイルに追加される。そして、QP2TERM が実行されるたびに、このファイル内のexportが実行されて PATH が設定される。
さらにGitコマンド実行時の表示の問題(後述)を回避するために、以下の行も .profile に追加しておく。
echo ‘export PAGER=cat’ >> /home/GITUSER/.profile
記号 >> を2 つ記述していることに注意してほしい。こうすることにより、指定した文字列がファイルの末尾に追加される。> が1つだと既存の内容を置き換えてしまうので注意が必要だ。