『 yum on IBM i 』による、OSSの活用は、次なるステージへ… ~Open Source協議会 – IBM i 技術分科会~ | IBM i 総合情報サイト

『 yum on IBM i 』による、OSSの活用は、次なるステージへ… ~Open Source協議会 – IBM i 技術分科会~


Open Source協議会 – IBM i 技術分科会では、「オープン・ソースの活用」をテーマに、毎年様々な研究を重ねてきました。
今回は、これまでIBM iに於ける、オープン・ソースの重要な核を担ってきた、「5733-OPS」ライセンスが、V7R4より提供中止となった事を受け、その代替え手段として「yum」の導入及び検証をテーマとしました。
IBM i でOSSを利用する際に避けて通れないテーマを、IBM i 技術者、オープン系技術者両方の観点から検証しています。
これまでIBM iによるOSSを活用してきた、若しくはこらから活用していきたいと、考えている方々は、是非当記事をご覧頂き、yumにより更にパワーアップされた、IBM iのオープン・ソース体感しては如何でしょうか?

前編記事はこちら


追記:2020年7月6日
yum最新情報(ACS) -OSS協議会 第15回 定期総会-の動画、および資料リンクを公開しました。

https://www.i-cafe.info/library/20200528_oss_yum_dl


著者プロフィール

株式会社中部システム
開発室 テクニカルアーキテクト
牛田 吉樹

1. 5733-OPS から yum への扉

2019年6月21日より出荷開始された IBM i V7R4。これに伴い、IBM iに於けるオープン・ソースの分野で、ある1つの大きな転換期を迎えた。
そう、ライセンスプログラム”5733-OPS”の提供廃止である。
このライセンス内のプロダクトは、長らく我々IBM iの技術者にとって、非常に画期的かつ刺激的であり、Technology Refresh(※以下TR)等で、新たなオプションのリリースがされた時はワクワクしたものである。
この”5733-OPS”の廃止と共に、IBM iのオープン・ソースへの扉は閉ざしてしまうのか?
答えは否である。オープン・ソースプロダクトの提供を”yum”に統合するというのが、最新IBM iの答えだ。

この”yum”だが、実はV7R3の時代にもTR5(2018年8月頃)として既に提供されている。従って”5733-OPS”は廃止だが、あくまでも”yum”への統合なのである。さて、この事を長年”5733-OPS”に慣れ親しんできた、我々技術者はどう考えれば良いのだろうか?
私個人の見解としては、”yum”という非常にポピュラーな手法に統一され、オープン・ソース利用の敷居が下がったと、肯定的に捉えている。我々の社内でも同様だが、”ライセンス導入”“、”PTF導入”となると、特定の管理者や業者が行う作業レベルというのが一般的である。特にユーザー企業ではその傾向にある。しかし、オープン・ソースを試用させたい、これからの技術者に限って、この作業を行える権限を持ち合わせていないという、ジレンマがあった。

このままでは、セミナー等でいくら良い話や夢のある話を聞いても、いつまでも絵に描いた餅である。
しかし、”yum”を使うとなれば、通常のRedHat系 Linuxを知る技術者であれば、当然のように、コマンドを使いこなす事が出来る。
またコマンドを知らない技術者でも、IBM i Access Client Solutions(※以下ACS)と言うGUIを使う手段も用意されている。
”chroot”と”yum”を併用し、技術者個人の閉鎖環境を構築する事も可能だ。さぁ準備が整ったら、”5733-OPS”から”yum”へ移行し、オープン・ソースの扉を開けよう。

5733-OPS から yum への扉

2. What’s yum?

”yum”とは、rpm(RedHat系 Linuxのソフトウェア・パッケージ)の導入を容易にし、またその導入を管理するツールである。
歴史としては、”Yello Dog Linux(※System Pで稼働)”のために作られており、Power PCとの繋がりも多少なりとあるようだ。
以下に”yum”の代表的な機能を挙げる。

  • 利用可能なソフトウェアの確認
  • ソフトウェアの導入
  • ソフトウェア同士の自動依存解決
  • ソフトウェアの更新状況の確認
  • ソフトウェアの更新
  • ソフトウェアの除去

パッケージ・マネージャで、ソフトウェアを管理する手法というのは、開発系技術者には非常にポピュラーな手法なため、特にこれからの技術者や、Linux経験がある技術者には、違和感なく馴染みやすいのではないだろうか?
代表的なパッケージ・マネージャは以下の通り。

  • Ubuntu : apt (apt-get)
  • Mac OS : homebrew , mac ports
  • Node.js : npm
  • Python : pip
  • PHP : composer

3. yum の導入編

まず”yum”を導入するにあたり、ドキュメント等に明示的な記載はないが、IBM iでOSS使用する際に必要となる前提ライセンスは、導入しておく必要があるだろう。
ライセンスは以下の通り。

  • 5770-SS1 33 PASE
  • 5770-SS1 30 QSHELL
  • 5770-DG1 *BASE IBM HTTP Server for i
  • 5770-SC1 *BASE IBM Portable Utilities for i
  • 5770-SC1 1 IBM OpenSSH、OpenSSL、zlib

“yum”自体のインストール所要時間は、30分程度で、ACSとCUIを使用した、2つの導入方法から選択可能となっている。

ACS 導入

ACSの場合、GUIを使用し、コマンドを使わずに導入する事が可能なため、yumコマンドの知識がない技術者でも用意にインストールが可能だ。我々社内のIBM i経験数ヶ月程度の技術者でも用意にインストールが可能であった。
以下に、ACSインストールの特徴を挙げる

  • GUIによる容易な操作
  • 全自動インストール
  • yumコマンド知識がなくても、主要な機能は利用可能
  • 導入PCにインターネット・アクセスを必要とする

注意点としては、導入作業に入る前に、最新のACSを導入しておく事が必要だ。かなり古いACSだと”yum”のインストール機能が存在しない、SSH接続の公開鍵認証が備わっていないなど、インストール時に必要な機能がない可能性がある為だ。

ACSインストール方法

  • ACSを起動
  • [ツール]→[オープン・ソース・パッケージ管理]を選択する

  • [System]にIBM iのIPアドレスやDNS名を入力
  • [User]、[Password]、[SSH Key]にIBM iの接続情報を入力

  • [はい(Y)]をクリックしインストール続行
  • しばらく待つとインストール完了


  • インストール後はACSでパッケージの管理が可能



CUI導入

従来のCUIによる導入も可能だ。こちらも導入用スクリプトが用意されている為、ほぼ自動で導入が可能だ。ACSの場合は、導入用PCがインターネット接続を必要としたが、CUIの場合は、インストール用ファイルのダウンロードこそインターネット接続を必要とするが、インストール時にはオフラインによる作業が可能だ。社内において、インターネット接続に制限がある場合などは、CUIインストールが選択肢となるだろう。また、導入後のCUI操作も標準的な”yum”コマンドであるため、RedHat系Linuxに慣れ親しんだ技術者にとっては、違和感なく使う事が可能となっている。
以下に、CUIインストールの特徴を挙げる。

  • オフラインによるインストール
  • スクリプトによるほぼ自動インストール
  • ”yum”の全コマンドを使用可能
  • RedHat系 Linuxの知識がある技術者には、習得が用意
  • 軽量、ネットワークが細くてもストレス・レス

ここでの注意点としては、まず初めに「”インストール用ファイル”を入手し、IBM i へアップロードする」という作業があるが、ファイル転送の手段に”バイナリ転送”が可能な方法(※FTPなど)
を選択する事だ。この”インストール用ファイル”には、tarコマンドのバイナリが仕込まれており、うっかりACS等を使用してしまうと、バイナリ転送がされず、後段のインストール・スクリプトが正しく実行されないので、注意したい。

CUIインストール方法

以下の2つの導入用ファイルをダウンロードする。(インターネット接続が必要)

  • ダウンロードしたスクリプト・ファイルをIBMiへ転送
  • 注意)バイナリー・データとして転送する事!
  • 例)FTPの場合

    
    C:\Users\QSECPFR>ftp ホスト名
    ホスト名 に接続しました。
    220-QTCP AT ホスト名.
    220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES.
    ユーザー (ホスト名:(none)):QSECOFR
    331 ENTER PASSWORD.
    パスワード:
    230 QSECOFR LOGGED ON.
    ftp> bin
    200 REPRESENTATION TYPE IS BINARY IMAGE.
    ftp> put Desktop\bootstrap.sh /home/QSECOFR/temp/bootstrap.sh
    200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
    150-NAMEFMT SET TO 1.
    150 SENDING FILE TO /home/QSECOFR/temp/bootstrap.sh
    226 FILE TRANSFER COMPLETED SUCCESSFULLY.
    ftp: 3985746 バイトが送信されました 0.06秒 64286.23KB/秒。
    
    
    • 5250画面のQSHコマンドで以下を実行
      QSH CMD(‘touch -C 819 /tmp/bootstrap.log;/QOpenSys/usr/bin/ksh /tmp/bootstrap.sh > /tmp/bootstrap.log 2>&1′)
    • 環境変数PATHに「/QOpenSys/pkgs/bin」を追加

    導入後の作業yumコマンド例

    
    インストール…yum install パッケージ名
    アップデート…yum update パッケージ名
    アンインストール…yum remove パッケージ名
    [パッケージ一覧]
    インストール済…yum list installed
    利用可能…yum list available
    更新可能…yum list updates
    
    

    インストールの詳細情報

    これら”yum”の導入に関する主な情報は、BitbucketのIBM i サイトに掲載されている。
    (https://bitbucket.org/ibmi/opensource/src/master/docs/yum/)

    また、ファースト・ステップとして、「OSS協議会 IBM iのセミナー資料」にも日本語として、まとめられているので、是非ご活用頂きたい。

    4. yum の運用

    ”yum”の導入が完了すると、運用フェーズにて、2つの選択肢が存在する。1つはデフォルトで用意されている、IBM公式リポジトリ(※リポジトリとはソフトウェア・パッケージが配置されているサイト)を利用し、インターネット接続により運用する方法だ。(※以下、グローバル運用)
    以下に、グローバル運用の特徴を挙げる。

    • インターネット上のリポジトリを利用する
    • IBM iにインターネット接続と名前解決を必要とする
    • FTPサイトのリポジトリが存在する場合は、ファイアウォールも考慮する必要がある
    • ACS,CUI問わず利用可能
    • 常に最新のパッケージである
    • IBM公式リポジトリは、設定済みの為、用意に利用開始出来る

    • デフォルト設定済みのIBMリポジトリ
    
    /QOpenSys/etc/yum/repos.d/ibm.repo
    [ibm]
    name=ibm
    baseurl=https://public.dhe.ibm.com/software/ibmi/products/pase/rpms/repo
    enabled=1
    gpgcheck=0
    sslverify=0
    

    しかし、この方法だと、IBM i自身が、インターネット接続や名前解決を必要とし、これらが利用できるケースは、IBM iユーザーでは稀だと思われる。そこで、もう1つの手段が、ローカル・リポジトリを構築する方法だ。(※以下、ローカル運用)
    以下に、ローカル運用の特徴を挙げる。

    • IBM iにインターネット接続も名前解決も必要としない
    • 幾つかの手段から、ローカル・リポジトリの構築方法を選択する事が出来る
    • yumコマンドに、リポジトリ構築補助ツールが備わっている
    • 外部ネットワークの障害や速度に依存しない
    • 更新情報を得るためには、外部リポジトリとの定期的な同期が必要

    ローカル・リポジトリ構築手順

    • 複製したリポジトリをIFS上の任意のディレクトリに配置

    • リポジトリ設定にローカル用のファイルを追加

    • IBM公式リポジトリを無効にする

    • リポジトリを確認

    5. 代表的なソフトウェア

    • R
    • Midnight Commander
    • Node.js 12
    • vim
    • jupter

    Midnight Commander

    jupter

    6. 注意点

    ”yum”の初期導入時には、Python2、bash以外は導入されないため、”5733-OPS”相当で、必要なソフトウェアがある場合は、自身でインストールする必要がある。また、以下に挙げるソフトウェアは、yumで提供されていないため、最新バージョンへの移行や代替手段を検討する必要がある。

    • Node.js 8 未満
    • Orion

    7. これまでとこれから

    従来の”5733-OPS”の導入方法と比較すると、”yum”が以下に容易か、よく分かる。

    ライセンス方式

    1. 前提ライセンス導入
    2. 前提PTF導入
    3. OPSライセンス導入
    4. OPSのPTFを導入
    5. OPSのPTFを適用
    6. OPSの個別PTFがあれば同様に適用
    7. 最新PTFの動向を注視
    8. 4~7を繰り返し

    yum方式

    1. yum install パッケージ
    2. yum update パッケージ

    特に従来の方法だと、ライセンス導入権限、PTFを入手可能な権限、適用権限など運用上、中々難しい面も多かった。しかし”yum”であれば、今回は割愛するが”chroot”運用などにより、個人環境を構築し、権限の面でも柔軟に対応が可能だ。また、IBMとRedHatが一緒になったという事も、”yum”パッケージのPower対応という事が、活発に行われるのでは無いかと、私個人としては期待している。ここ最近の”yum”パッケージの更新や、新規ライブラリの採用状況を注視していても、これまでのライセンス方式の提供のそれとは、明らかに違うスピード感で進んでいる様に感じる。プロダクトを提供する側もスピード感、メンテナンス性を重視し、これまでの特異なIBM iのライセンス、PTF提供という方式より、”yum”リポジトリを更新していく方が、最良と考えたのだろう。

    最後に、IBM iのOSSの代表格である、PHPに関してビッグ・ニュースがあった。それは、これまで”Zend Server”のバンドルとして提供されてきたPHPが、コミュニティ版として”yum”で提供される事となったのである。このコミュニティ版PHPも”yum”というスピード感がなければ、実現し得なかったであろう。これも、ライセンス方式と同様に、Zend Server導入の敷居を高く感じていた、技術者には朗報だろう。

    まだまだ、これから情報が変化する可能性はあるが、番外編として現状でのコミュニティ版PHPの導入を紹介して今回のyum検証報告を終わりとする。

    8. 番外編 PHPコミュニティ版の導入

    • コミュニティ版PHPリポジトリの追加
    
       yum-config-manager --add-repo http://repos.zend.com/ibmiphp
    
    • 導入対象のPHPパッケージをインストール
    
       yum install php*(任意のパッケージやライブラリ)
    

    ※上記作業は、yumコマンドにPATHを通す事が前提

    2020年2月5日 現在の最新版は、PHP 7.3.14 となっている

Copyright © IGUAZU