MENU

特集 5250環境でGitを利用する、Git再入門 |Part2 5250環境(SEU)でGitを活用する

著者|
小川 誠

ティアンドトラスト株式会社
代表取締役社長 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)。

図表1 RDiやVScodeでバージョン管理する場合
図表1 RDiやVScodeでバージョン管理する場合

ご存じの方も多いと思うが、実はIBM iのPASE環境でもGitを利用することが可能だ。RDiやVSCodeの拡張機能のような使いやすいインターフェースは用意されていないが、Gitコマンドを使用することで5250インターフェースでもGitを利用できる(図表2)。

2024年5月23日現在、IBM iで利用可能なGitの最新バージョンは2.39.3だ(Gitの最新バージョンは 2.45.1)。

図表2 IBM i上のPASE環境でもGitを利用できる
図表2 IBM i上のPASE環境でもGitを利用できる

前提条件

では、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つだと既存の内容を置き換えてしまうので注意が必要だ。