NEWS
IBM i 技術解説 IBM i 技術解説
2018.09.07
SHARE
  • twitter
  • facebook
  • hatena

最新のIBM iオープンソース・オファリングの意義を考える

最新のIBM iオープンソース・オファリングの意義を考える
本記事は「IBM Systems Magazine」の許諾のもと、原文を日本語化するとともに、一部再編集したものとなります。原文をご覧になりたい方は下記よりアクセスしてください。 原文タイトル:Making Sense of the Latest IBM i Open Source Offerings 原文著者: Steve Will   2018年7月 | ジョン・パリス、スーザン・ガントナー オープンソース・ソフトウェアに関する限り、IBM iの世界では最近多くの変更がありました。その中でも無視できないのは、新しい配信手段と関連ツールです。このことから、この変更が行われた理由とそこから得られる恩恵を理解するのに役立つ記事を書く期が熟したと判断しました。この記事の途中で、私達と同様に主にLinux向けのオープンソースの世界で育ってこなかった読者のために、いくつかのことを明確にできればと思います。仮に明確になるものが何もないとしても、少なくともいくつかの新しい略語を理解するのに役立つでしょう。

背景

最新の変更について話す前に、少し歴史を振り返って見ることは私たちがどのように現在の場所に辿り着いたのかを理解する助けになるかもしれません。往々にして忘れられていますが、IBM iは、2001年の初め頃(V4R5)に(独自のIBM HTTP サーバーを置き換える形で)Apache Webサーバーを導入し、IBMで最初にオープンソース分野に進出しました。 その後、2006年の初めにIBMがZendと提携し、PHPをi5/OSの下に移植するまで状況はかなり静かでした。PHPは大変人気があることが判明し、その人気故により多くのオープンソース・オファリングに扉を開くようIBMに対する要求が強まりました。IBMが直面した課題は、“どのようにこれを達成するのか”ということになりました。PHPに関しては、IBMと協力してソフトウェアを移植する明白なパートナー(Zend)がいました。 Python、Perl、Rubyなどの他の言語では、そのような明らかなパートナーはいませんでした。おそらくもっと重要なのは、そのようなソフトウェアを構築および保守するために一般的に使用されるコンパイラーやその他のツールがIBM iにはないということです。つまり、RubyとPython2の移植は、IBMからいくらかの支援を受けて独立グループによって成され、多少の限定的な成功を収めましたが、オープンソースがIBM i上でその潜在能力を発揮するには、より包括的な努力が必要なのは明らかでした。 ここで製品5733-OPSの登場です。この製品は2015年初めに初めて導入されました(“IBM iのオープンソース – 5733OPS”Dawn May著)が、たとえ多くの要望があったnode.jsが利用可能になったという理由だけであったとしても、この発表は多大な興奮を生み出しました。これは、オープンソースがIBM iにとって重要であり、より広汎なオープンソース技術の取込みに向けて大規模な取組みが進んでいるという明らかなIBMの意向表明でもありました。しかし、オープンソースをライセンス・プログラム製品(LPP)として提供するというIBMの決定は、“当時は良いアイデアのように思えた”タイプのものの1つであることが後に明らかになりました。 何故でしょう?この決定の良い点は、ソフトウェアを使い慣れた形で提供し、既存のPTFメカニズムを使用して修正や更新を適用できることでした。しかし、LPPアプローチを使用することで、独自の問題も発生しました。例えば、製品セットへの将来の追加に対応するために、新製品が使用可能になったときに、PTFメカニズムによって“充填”できるようにIBMは最初に多数の“空の”製品オプションを含める必要がありました。こうしたことが必要だったのは、PTFがオプションの名前を変更してその内容を配信することはできても、新しいオプションを作成することはできないからでした。 結果は控えめに言って混乱でした。たとえば、GO LICPGMを使用してシステムにどのオプションがインストール済み/利用可能かを確認すると、インストール済みのコンポーネントの名前しか表示されないことがよくあります。新しいオプションの名前が分かるのはPTF自体が適用された後なので、新たにリリースされた機能を追加するには、新しいオプションの名前を含む特定のPTFを適用しなければなりませんでした。どうしようもないジレンマ!さらに、オプションの数が限られているので、IBMはいや応なくいくつかのツールを提供するためにそれらを一緒に“グループ化”せざるをえないことを意味しました。 混乱の問題以上に、このような形でオープンソース・オファリングをパッケージ化することは、IBM側で多くの労力が必要でした。その結果、既存のコンポーネントに対する新しいコンポーネントや修正の配信に時間がかかりました。しかし、より大きな問題は、PTFの仕組みが他のプラットフォームのオープンソース・ユーザーには全く馴染みがなかったことです。インストールと使用の問題に直面して、問題を解決するのに役立つ通常のツールに頼ることはできませんでした。オープンソース・パッケージをIBM iに導入する主な動機の1つは、まだIBM iに精通していない若い開発者にIBM iを紹介する助けとなったからです。この複雑さの高度化は問題であり、LPP / PTFインフラストラクチャー内には明確な回避策はありませんでした。

Yumが救助に!

あなたの最初の反応は、多分“yumって一体何?”というものでしょう。それはYellowdog Updater Modifiedの略称と言っても良いもしれませんが、それでは実際ほとんど理解の助けにはなりません。唯一の真のヒントは、updaterという言葉がいずれにせよ何かを更新することを示唆しているということです。ですから簡単な英語の説明を選びましょう。yumはパッケージ管理プログラムです。この文脈における“パッケージ”とは、ソフトウェアの集まりを意味します。つまり、パッケージ管理プログラムは、ソフトウェアのインストール、削除、および管理を可能にする1つのソフトウェアです。これは、お馴染みのLICPGMメニューのインストール/アンインストール機能と、伝統的なPTFメカニズムと同様にフィックスパックを適用/ロールバックする機能を提供します。しかし、yumはさらに依存関係も管理するのでLICPGMやPTFメカニズムより一歩進んでいます。 私達が何を言わんとしているかを理解するために、通常のLPPをインストールすることを少しの間考えてください。もしそれが他のLPPを必要とする場合、それは文書に記載されているでしょうが、それを別にすれば、必要なLPPをチェックし、欠落していればインストールを中止して、それを通知するのが最善の方法です。yumのようなパッケージ管理プログラムはそれを次のレベルに引き上げ、必要なパッケージを特定するだけでなく、可能であればそれらを取得してインストールします。同様に、PTFを適用する場合、それは他のPTFに依存する可能性がありますが、システムはそれらのPTFを解決しません。 PTFカバー・レターを読んで、必要なすべてのコンポーネントが正しいレベルに更新されていることをPTFの適用前に確認する必要があります。yumは、パッケージを更新するときに追加の依存関係がないかどうかを検査し、更新プロセスの一部として依存するPTFが適用されることを保証します。ですから、yumは使い慣れたLICPGMやPTFメカニズムと同様の機能と考えることができますが、もっと強力なツールです。 オープンソースの世界では、yumはRPMソフトウェアパッケージの事実上のパッケージ管理プログラムになっています。そう、私達はたった今もう1つの略語を持ち込みました。RPMは元々Red Hat Package Managerの略語でした。最近では、正式にはRPM Package Managerとして知られていますが、(PHPと同様に)再帰的頭字語になります。RPM Package Managerは、インストールプロセス、依存関係などを、rpmとして知られるようになったファイル形式で記述するための標準を定めました。yumは、依存関係に留意するだけでなく、必要なときにはそれらを取得してインストールすることで、元々のRed Hat実装よりもさらに進歩しています。というわけで、yumはオープンソース配信の仕組みである5733-OPSを置き換える手段としてIBMにとって優れた選択肢でした。それは優れた選択であるばかりでなく、オープンソース・コミュニティで広く知られ、一般的に使用されています。 yumは製品をインストールならびに更新することができ、rpmファイルで提供される情報を使用してこれを成し遂げます。しかし、厳密には情報とパッケージの内容をどこで得るのでしょう?RPMパッケージ群はリポジトリーに保管されます。そして、IBMはIBM i用にコンパイルされ、IBM i上で実行されると知られているそれら複数のオープンソース・パッケージを包含するパッケージを作成しました。ほとんどの人は、このリポジトリーがどこにあるかを知る必要はありません。なぜなら、これはすぐ後で説明する更新されたAccess Client Services(ACS)ツールにリポジトリー情報が組み込まれているからです。しかし、ビットやバイトのレベルで遊ぶのが好きな人や、ACSを使いたくない人は、リポジトリー情報が利用できるので、自分で選んだツールを使うことができます。このパッケージには、ACSを使わずにyumをセットアップして使用するために必要な手動の手順が含まれています。

オープンソース・パッケージのインストールにACSを使う

さて、今やyumが何であるか、そしてそれがなぜ有用なのかを知ったからには、それをどのように使うのかを理解する必要があります。これこそがACSの最新の機能拡張が提供された理由です。IBMには段階を踏みながらプロセス全体を理解するための優れたWebページがあるので、この紹介は簡単なものに止めます。皆さんは“IBM i ACSを使ってオープンソース・パッケージ管理を開始する”という表題の下にそれを見つけるでしょう。ACSのバージョンが1.1.8.0以上であれば、このツールが使用できます。そうでない場合は、ACSを最新レベルに更新する必要があります。ここで、正式にはIBM iのリリース7.2および7.3だけがサポートされていることに注意してください。しかしIBMは、あなたがまだリリース7.1に留まっているとしても、オープンソース・パッケージはほとんどの場合動作すると公式に述べています。 手短に言うと、ここに示されたメインのACSウィンドウのツールメニューにある“オープンソース・パッケージ管理”メニュー項目を通じて、新しいツールにアクセスします。 それを選択すると別のウィンドウが開き、接続したいシステムを選択してユーザーの認証情報を入力する画面が表示されます。私達はこの影響に対する正式な声明は見出していませんが、ソフトウェアをインストールするからといって、SECOFRの権限を持つユーザープロファイルを使用することが本当に良い考えなのか疑っています。 接続にはSSHを使用するので、接続しているシステムの信頼性を確認するように求められる可能性があります。また、接続しているシステムが現在SSH通信用に設定されていない場合は、先に進む前にその状況を修正しておくことをお勧めします。必要であれば、前述のWebページにはSSHの設定へのリンクがあります。 新しいツールがシステムで初めて使用された場合、オープンソース環境を設定したいかどうかを尋ねるダイアローグが表示されます。言い換えれば、yumと関連コンポーネントをインストールしたいかどうか尋ねられます。“はい”ボタンを押すと、必要なコンポーネントがダウンロードされ、インストールされます。 次に、ここに示すように3つのタブがある画面が表示されます。最初のタブにはあなたのシステムにインストール済みのオープンソース・パッケージ(もしあれば)が表示されます。2番目のタブにはこれらのパッケージで使用可能なすべての更新が示され、3番目のタブ(イメージで選択されたもの)には現在インストールされていないすべての利用可能なパッケージがリストされます。 パッケージをインストールするには、ただ“利用可能”リストからパッケージを選択し、“インストール”ボタンをクリックするだけです。また、選択したパッケージについての情報を要求することもできますが、あらゆる場面で役に立つとは期待しないでください。この新しいツールの“ユーザーフレンドリー”という側面に関してはまだ少し改善の余地があります。 インストールプロセスは、レジストリーを照会し、必要なファイルと依存するコンポーネントの場所を特定し、インストールを続行したいかどうかを確認するメッセージを表示します。確認要求に“はい”と答えると、ファイルがダウンロードされ、有効性がチェックされ、インストールプロセスが実行されます。 コンポーネントの更新は同じパターンに従います。そのタブを選択すると、更新されたバージョンが利用可能かどうか確認するためにレジストリーがチェックされます。もし利用可能な更新バージョンがあれば、それらはリストされ、必要なものを選択してインストールできます。 それですべてです。前にも述べましたが、IBMのWebページはプロセスを最初から最後までガイドするために類似のイメージやもっと沢山のイメージを提供しています。 役に立つかもしれないもう1つのACSの機能はSSH端末です。DOSウィンドウまたは5250画面のQP2TERM PASEコマンドラインを考えてください。メインのACSウィンドウの左側にある“一般”セクションで、このリンクを見つけることができます。何年もの間、私達はすべてのPASE操作に5250を使用してきました。代わりにSSH端末を決して使用しなかった理由は分かりませんが、将来はもっと頻繁に使用していることでしょう。PASEで仕事をするためだけに5250セッションを開始するよりも、SSH端末を使うほうがずっと便利であることは確かです。 ほとんどのオープンソースの熱狂的愛好者は、作業にSSH端末を使用しているので、ACSツールの一部としてそれを備えると便利です。私達が遭遇した1つの小さな問題は、SSH端末自体が、入力されたコマンドを検索して変更するための(F9風の) 通常のカーソルキー・コントロールをサポートしていないことでした。これらのキーを使用しようとすると、奇妙な文字シーケンスが表示されました。幸運にも、私達はこのページで偶然使用説明文を見つけました。それは、問題を特定し、bashシェルを使用するためにデフォルトを変更することで、カーソル・コントロールが使用できるようになり、以前のコマンドを検索および編集できると指摘していました。 そう、私達はたった今、もう1つの略語”bash”を持ち込みました。私達にはシェル(とくにbash)が一体どのようなものか詳しく述べる時間がありません。”シェル”はコマンドライン・インタープリターであり、bashはPASEで利用できる3つのシェルのうちの1つであるとだけ言っておきましょう。これが機能する理由は、それが実質的にカーソルキーの動作を担当するコマンド・インタープリターだからです。もし十分な興味があるならば、今後の記事やブログでシェルについて詳しく解説します。今のところは与えられた指示に従ってください。そうすればすべてがうまく行くでしょう。

まとめ

これまで見て来たように、私達が1つのことを説明しようとするたびに、もう1つ別のことが顔をだすという厄介な習性があります。Linuxやオープンソースの世界に精通している人々にとって、これはすべて“正常な状態”ですが、皆さんをひどく飽きさせ(または苛立たせ)なかったことを願っています。皆さんのようにIBM iの世界で経験を積んだ人々にとって、これはすべて新しいことであり、往々にして混乱を招くものです。今日私達がどこにいるのか、そしてどうやってここに辿り着いたのかを説明したことで少し霧が晴れ、いくつかのことが明らかになったのなら良いのですが。 今後の記事では、特定のオープンソース・コンポーネントに焦点を当て、なぜ皆さんがそれらを使用したいと思う可能性があるのかを説明します。また、既に製品5733-OPSを使用している皆さんは当面はそれを引き続き使用できますが、新製品の追加は期待しないでください。いずれ、それは間違いなくサポート終了になり、そのときはIBMが新しいバージョンへの移行方法に関する説明文書を提供するだろうと私達は推測しています。    
いいねと思ったらシェア
twitter
facebook
hatena
関連記事
IBM i 用の新しいODBCドライバー
IBM i 用の新しいODBCドライバー
使ってみよう!Rational Developer for i
使ってみよう!Rational Developer for i
Power10 プロセッサー搭載スケールアウトモデル登場
Power10 プロセッサー搭載スケールアウトモデル登場
あなたにオススメの連載
できるIBM i 温故知新編
7記事
できるIBM i 温故知新編
IBM i の”新”必須言語 〜FFRPG入門〜
14記事
IBM i の”新”必須言語 〜FFRPG入門〜
IBM i アプリの第二の柱 OSS
15記事
IBM i アプリの第二の柱 OSS
PAGE TOP