IBM i でyumを使う

# IBM iでのオープンソース活用の第一歩 〜yumのインストール〜

IBM i のオープンソース管理が**5733-OPS**から**yum**に変わって、さらにオープン性が高まっています。
yumが使えるようになった利点は、IBM iで利用できるオープンソースが増えたこと、そしてLinuxスキルの方がIBM i上のパッケージ導入と管理が容易になったことが大きいと思います。

yumの導入手順は[bitbucket](https://bitbucket.org/ibmi/opensource/src/3e06f584c88b39f1964d2a58aa094a234a8f77d2/docs/yum/ "bitbucket")を参考にしました。
いくつか方法がありますが、ACS（IBM i Access Client Solution）の機能を使って導入してみます。

## 前提
・IBM iでSSHサーバーが稼働していること
・PCにACSを導入済みであること

## ACSからyumをインストール
WindowsやMacでACSを起動します。
対象のIBM iを**システムのプルダウンから選択**し、[ツール]メニューの**[オープン・ソース・パッケージ管理]**を開きます。
![01_acs_open_source_package.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/cbb4290b-98d8-dd5f-5915-205bcff0cbe2.png)


Systemに対象のIBM iのホスト名（もしくはIPアドレス）を指定します。
*ALLOBJ権限を持つ5250ユーザーを指定して[OK]をクリックします。
_(接続に失敗する場合はIBM iのSSHサーバーが正しく稼働しているか確認します)_
![02_acs_ssh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/b5d803a7-585c-dad7-8293-23b594e1df59.png)
「オープンソース環境が未導入なので導入しますか？」という意味のメッセージが出たら[はい]で進みます。
![03_acs_message.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/a8a9339f-acc9-ca43-d797-4c8a61c9871b.png)
1つ目のプログレスバー「Sending setup script」が表示されます。
![04_acs_progress_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/30953b51-203d-ed4d-eaf9-3b187540f63c.png)
2つ目のプログレスバー「Sending open source environment」が表示されます。
こちらのプロセスはネットワーク環境によって長時間かかることがあります。その場合、プログレスバーが進まないので不安になりますが、IBM i の/tmpディレクトリにbootstrap.tar.Zが生成されていれば大丈夫です。103MBほどのサイズなのでダウンロードが完了するまで待ちます。
![05_acs_progress_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/b3327581-ca6d-4ce8-0008-7053333a8957.png)
ダウンロードが完了するとインストールが始まります。
Bootstrap succeededとメッセージが出たらウィンドウを閉じます。
![07_acs_ops_finish_install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/b3111e06-5b99-485b-ae20-c3121d8e6c9d.png)
ポップアップメッセージが出ればyumのインストールが完了です。
![08_acs_ops_install_complete.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/84722189-45e1-7199-fd23-109f01e2fd3a.png)
## ACSでのyum管理
ACSにはyumのインストール機能だけでなく、パッケージ管理のGUIインターフェースがあります。yumコマンドを使わなくても簡単にパッケージ管理ができます。

* Installed packages: 導入済みパッケージの管理（再導入/削除）
* Updates available: 導入済みパッケージのアップデート
* Available packages: パッケージの追加

※アップデートを入手するにはIBM iがインターネットに接続できる必要があります。
![09_acs_installed_packages.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524161/9bc4ce9d-c4b8-a039-ebfa-041534e58824.png)
ACSでyumをインストールすると、以下のパッケージは導入済みとなっていました。

* bash (4.4-0)
* coreutils-pase-dummy (7.1-0)
* db (4.8.30-0)
* file-magic (5.32-4)
* libbz2-1 (1.0.6-13)
* libcurl4 (7.58.0-2)
* libexpat1 (2.2.0-0)
* libffi6 (3.2.1-1)
* libgcc_s1 (6.3.0-19)
* libglib-2_0-0 (2.52.0-3)
* libiconv2 (1.14-2)
* libintl9 (0.19.8-0)
* liblua5_3 (5.3.4-1)
* liblzma5 (5.2.3-0)
* libmagic1 (5.32-4)
* libopenssl1_0_0 (1.0.2o-4)
* libpcre1 (8.40-0)
* libpopt0 (1.16-1)
* libreadline6 (6.3-2)
* libsqlite3-0 (3.19.3-0)
* libutil1 (0.3-0)
* libxml2-2 (2.9.4-3)
* libz1 (1.2.11-1)
* nspr (4.13.1-3)
* nss (3.30-5)
* pase-libs-dummy (7.1-0)
* perl (5.24.1-0)
* python2 (2.7.15-1)
* python2-pycurl (7.43.0-1)
* python2-rpm (4.13.0.1-13)
* python2-urlgrabber (3.10.2-2)
* rpm (4.13.0.1-13)
* yum (3.4.3-15)
* yum-metadata-parser (1.1.4-1)

## sshでyumを使うための準備
yumをインストールしたIBM iにターミナルソフトからsshでアクセスして、オープンソースパッケージのディレクトリにパスを通します。

```
echo 'PATH=/QOpenSys/pkgs/bin:$PATH' >> $HOME/.profile
echo 'export PATH' >> $HOME/.profile
```

## yumでIBM iのオープンソースを管理
パスが通っていれば**Linuxと同じように**IBM iでもyumを使ったオープンソース管理ができます。

```
$ bash
bash-4.4$ yum list | grep python3
python3.ppc64                                3.6.9-1                   ibm
python3-Pillow.ppc64                         5.0.0-4                   ibm
python3-asn1crypto.noarch                    0.24.0-0                  ibm
python3-bcrypt.ppc64                         3.1.4-5                   ibm
python3-cffi.ppc64                           1.11.5-2                  ibm
python3-cryptography.ppc64                   2.2.2-2                   ibm
python3-dateutil.noarch                      2.7.5-0                   ibm
python3-devel.ppc64                          3.6.9-1                   ibm
python3-ibm_db.ppc64                         2.0.5.9-0                 ibm
python3-idna.noarch                          2.8-0                     ibm
python3-itoolkit.ppc64                       1.6.1-0                   ibm
python3-lxml.ppc64                           4.2.1-3                   ibm
python3-numpy.ppc64                          1.15.4-0                  ibm
python3-pandas.ppc64                         0.22.0-4                  ibm
python3-pip.noarch                           9.0.1-2                   ibm
python3-psutil.ppc64                         5.5.1-0                   ibm
python3-pycparser.ppc64                      2.19-1                    ibm
python3-pynacl.ppc64                         1.2.1-3                   ibm
python3-pytz.noarch                          2018.5-2                  ibm
python3-pyzmq.ppc64                          17.1.2-0                  ibm
python3-rpm.ppc64                            4.13.0.1-17               ibm
python3-scikit-learn.ppc64                   0.19.1-6                  ibm
python3-scipy.ppc64                          1.1.0-0                   ibm
python3-setuptools.noarch                    36.0.1-2                  ibm
python3-six.noarch                           1.10.0-0                  ibm
python3-tkinter.ppc64                        3.6.9-1                   ibm
python3-wheel.noarch                         0.29.0-2                  ibm
```
## 最後に
IBM iはインターネットに接続されていない環境も多いので、オフラインでyumをインストールする方法も用意されています。オフラインでのインストール方法は別の機会にご紹介できればと思います。