インターネット接続の無い AIX で yum を利用する

#はじめに

WebSphere Application Server の ND 版 ( for AIX ) を導入する場合、
前提条件として GUI をつかえるようにする必要があります。
GUI ベースで IBM Installation Manager や Profile Management Tools などを利用します。

[WAS ND Traditional v9 の導入手順](https://www.ibm.com/developerworks/jp/websphere/library/was/twas9_install/index.html)や [マニュアル](https://www.ibm.com/support/knowledgecenter/SSAW57_9.0.0/com.ibm.websphere.installation.nd.doc/ae/tins_aixsetup.html)を参照すると、
前提ソフトウェアとして GUI 用に gtk2 を入れる必要があることが分かります。
gtk2 自体は [AIX Toolbox for Linux Applications](https://www.ibm.com/developerworks/aix/library/aix-toolbox/alpha.html) 等で公開されている rpm パッケージで導入しますが、 rpm コマンドで入れる場合、依存関係で苦労することになります。

yum コマンドがつかえれば 依存関係のあるパッケージも含めて簡単に導入できますが
yum コマンドは 基本的にインターネットに接続して使うのが一般的です。

今回は、インターネットに接続されていない AIX サーバー上で、
AIX Toolbox for Linux Applications からダウンロードした各種 rpm ファイルを用いて
yum リポジトリを作成し、そこから gtk2 を導入する手順を説明します。

#環境
AIX 7.1 TL05 SP03

#導入の流れ
作業の大まかなステップは以下のとおりです

1. [AIX Toolbox for Linux Applications](https://www.ibm.com/developerworks/aix/library/aix-toolbox/alpha.html) から rpm ファイルを入手
2. サーバーへのアップロード
3. yum のインストール
4. yum リポジトリ作成前提ファイルの導入
5. yum リポジトリの作成
6. yum コマンドの設定ファイル修正
7. gtk2 の導入

なお、単純に gtk2 を入れるのであれば、下記のページから gtk2_bundle_for_AIX_ALL.tar を入手し、展開、 `install.sh` スクリプトで導入することも可能です。 

[Installing and configuring GTK2 on IBM AIX](https://developer.ibm.com/tutorials/installing-and-configuring-gtk-on-aix/)

ただ、この方法だと、 入手できる gtk2_bundle_for_AIX_ALL.tar が新しいのか古いのかわからないこともあり、極力 AIX Toolbox for Linux Applications から入手したもので導入することを考えます。
（と、言いつつ yum の導入部分でいきなりヘタレますが。。）

#AIX Toolbox for Linux Applications から rpm ファイルを入手

[AIX Toolbox for Linux Applications](https://www.ibm.com/developerworks/aix/library/aix-toolbox/alpha.html) には AIX 向けにビルドされた各種 rpm ファイルが公開されています。
AIX 向けの rpm ファイルは他にもさまざまなサイトで公開されていますが、ここが Official site ですので極力ここで入手しましょう。

このページの難点としては、一括してダウンロードをする簡単な方法が無い、という点です。（私が知らないだけかも知れませんが。。。）
500 個近くあるファイルをブラウザから１つずつダウンロードしていくのは現実的ではありません。
そのため、ここでは、 インターネットにつながる Linux マシンから wget でダウンロードします。

（※ 一時的にでも AIX からインターネットにつなげられるのであれば、参考欄に記載の「[AIX Toolbox for Linux Applications を簡単にインストールする方法](https://www.ibm.com/developerworks/community/blogs/070548f2-a7e8-4ee2-b859-19828c444def/entry/yum_conf?lang=en)」方法等で直接ダウンロード・インストールするほうが簡単です。 ここでは、AIX はインターネットに出られない前提とし、インターネットにつながる Linux でダウンロードし、それを (DVD等のメディアや FTP等を用い）サーバーに持ち込む、というやり方を想定しています。）

やり方としては、 ダウンロード URL のリストを作成し、それを `wget -i <ファイル>` で
すべてダウンロードします。

URL のリストの作成方法は 原始的ではありますが、以下のようにして作成しました。
もっとよいやり方があればぜひお知らせください。

```
# wget https://www.ibm.com/developerworks/aix/library/aix-toolbox/alpha.html
# cat alpha.html | tr "\"" "\n" | grep -e ppc.rpm -e noarch.rpm > list.txt
```
アルファベット順のリストのページの HTML ソースが取得できることと、
その中の ダウンロードURL は すべて " で囲まれていることを利用しています
wget で alpha.html をダウンロードした後、 tr コマンドで " を \n (改行) に変換し
「ppc.rpm」または「noarch.rpm」 のものを grep しています。


※（追記：2019/08/27）確認してみたところ、 URL が変わっているようでした。
https://www-01.ibm.com/support/docview.wss?uid=ibm10883796
curl 上記URL  >  alpha.html  などでダウンロード可能でした。


list.txt は以下のようなリストになります。

```
# cat list.txt
https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/a2ps/a2ps-4.13-3.aix6.1.ppc.rpm
https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/ansible/ansible-2.7.0-1.aix6.1.ppc.rpm
https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/atk/atk-devel-2.20.0-3.aix6.1.ppc.rpm
https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/atk/atk-2.20.0-3.aix6.1.ppc.rpm
…（略）
```

リストファイルが作成できれば、それをベースにすべてダウンロードします。

```
# wget -i list.txt
```

もし、 AIX Toolbox for Linux Applications の DVD をお持ちであれば
それをコピーしてもかまいません。

※（追記）上記のリストをすべてダウンロードした場合、 特定の rpm で、 AIX 6.1, 7.1, 7.2 向けがある場合に
　依存関係がうまく解決されないことがあるようです。
　そのため、同じ rpm で 6.1 , 7.1, 7.2 向けのファイルがある場合、 リポジトリを利用する AIX のバージョンにあった
　ファイルを残し、他を削除してください。

#サーバーへのアップロード
ここでは、 NFS サーバー上にアップロードし、それを複数のサーバーから NFS 経由で利用します。

配置先は /nfsdir/AIXToolsBox_LinuxApps/Repo_20181220/local/Packages としました
"/nfsdir" 部分が NFS export されるイメージです。
なお、 **yum リポジトリを構築する目的で、  上記 "local" は リポジトリ名、 "Packages" は固定です。** "AIXToolsBox_LinuxApps/Repo_20181220" 部分は 何でも良いです。
（どうでもよいですが AIXToolsBox では無く AIXToolBox ですね。 勢いで s 入れてしまいました。。。）

#yum のインストール

yum のインストールですが、下記のページを参考に、 yum_bundle_v4.tar を入手し、
展開、 `rpm -ivh *.rpm` で導入します。

[AIX Toolbox for Linux Applications を簡単にインストールする方法](https://www.ibm.com/developerworks/community/blogs/070548f2-a7e8-4ee2-b859-19828c444def/entry/yum_conf?lang=en)

---
※ 2020/08/14 追記）
上記のページが見られなくなっているようです。
[AIX Toolbox for Linux Applications の Overview ページ](https://www.ibm.com/support/pages/aix-toolbox-linux-applications-overview)　の一番下から、以下のように遷移して入手してください。 (yum_bundle_v5.tar があるようです)
Direct connection to the ftp server
-> ezinstall
-> ppc
直接行くならこちら
ftp://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/

また、下記の一連の手順がうまくいかず、 libcrypt.a 関連のエラーが出る場合、
AIX-rpm パッケージや OpenSSL が古いケースがあるようです。
その場合、以下の対応をすればうまくいきます。

- AIX-rpm パッケージ更新
- OpenSSL 更新
- updtvpkg 実行

詳しくは、[こちら](https://qiita.com/shimauma_Zzzzz/items/fbe041d61d356184d072) の２～４をご覧ください。
sudo を入れる、という話ですが、AIX-rpm と OpenSSL の部分です。

---


AIX ToolBox for Linux Applications から入れるんじゃなかったのか？という話もありますが
それを試してみたところ、 必要な rpm ファイルが１つ ( python-pycurl-x.xx.x-x.aix6.1.ppc.rpm ) 
 ToolBox に載っていないことが分かりました。
そのため、あきらめて yum_bundle_v4.tar を使うことにしました。

yum_bundle_v4.tar を展開し、`rpm -ivh *.rpm` を実行します。

```
# cd yum_bundle_v4
# ls
ca-certificates-2016.10.7-2.aix6.1.ppc.rpm    python-iniparse-0.4-1.aix6.1.noarch.rpm
curl-7.52.1-1.aix6.1.ppc.rpm                  python-pycurl-7.19.3-1.aix6.1.ppc.rpm
db-4.8.24-3.aix6.1.ppc.rpm                    python-tools-2.7.10-1.aix6.1.ppc.rpm
gdbm-1.8.3-5.aix5.2.ppc.rpm                   python-urlgrabber-3.10.1-1.aix6.1.noarch.rpm
gettext-0.19.7-1.aix6.1.ppc.rpm               readline-6.1-2.aix6.1.ppc.rpm
glib2-2.14.6-2.aix5.2.ppc.rpm                 sqlite-3.15.2-1.aix6.1.ppc.rpm
pysqlite-1.1.7-2.aix6.1.ppc.rpm               yum-3.4.3-5.aix6.1.noarch.rpm
python-2.7.10-1.aix6.1.ppc.rpm                yum-metadata-parser-1.1.4-2.aix6.1.ppc.rpm
python-devel-2.7.10-1.aix6.1.ppc.rpm

# rpm -ivh *.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:readline-6.1-2                   ################################# [  6%]
   2:sqlite-3.15.2-1                  ################################# [ 12%]
…（略）
```

この yum コマンドですが、 日本語設定の場合、下記のようなエラーになります。

```
# yum repolist
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/opt/freeware/share/yum-cli/yummain.py", line 288, in user_main
    errcode = main(args)
  File "/opt/freeware/share/yum-cli/yummain.py", line 40, in main
    yum.misc.setup_locale(override_time=True)
  File "/opt/freeware/lib/python2.7/site-packages/yum/misc.py", line 996, in setup_locale
    sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout)
  File "/opt/freeware/lib/python2.7/codecs.py", line 997, in getwriter
    return lookup(encoding).streamwriter
LookupError: unknown encoding: IBM-943
```

そのため、 `LANG=C` を指定して実行します。 (下記の例は LANG=C yum... としていますが、 export LANG=C を行ってから実行してもかまいません）

```
# LANG=C yum repolist
https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/repodata/repomd.xml: [Errno 14] curl#6 - "Couldn't resolve host 'public.dhe.ibm.com'"
Trying other mirror.
repo id                                            repo name                                                    status
AIX_Toolbox                                        AIX generic repository                                       0
AIX_Toolbox_71                                     AIX 7.1 specific repository                                  0
AIX_Toolbox_noarch                                 AIX noarch repository                                        0
repolist: 0
```

デフォルトで インターネット上のリポジトリ設定がされているため、 結局エラーになっていますが。。。

# yum リポジトリ作成の前提ファイルセットの導入

これが苦労しました。。。
yum リポジトリを構築する上で、 以下の３つを導入することになります。
- deltarpm-3.6-1.aix6.1.ppc.rpm
- python-deltarpm-3.6-1.aix6.1.ppc.rpm
- createrepo-0.10.3-3.aix6.1.noarch.rpm

このうち、 deltarpm, python-deltarpm は単独で導入可能でした。
（なお、ここでは NFS サーバーとは別のサーバーで /mnt にマウントして作業をしています。
後から考えると、別に NFS サーバー上でやっておけばそれで OK だということが分かりました）

```
# cd /mnt/AIXToolsBox_LinuxApps/Repo_20181220/Packages
# rpm -ivh deltarpm-3.6-1.aix6.1.ppc.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:deltarpm-3.6-1                   ################################# [100%]
# rpm -ivh python-deltarpm-3.6-1.aix6.1.ppc.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:python-deltarpm-3.6-1            ################################# [100%]

```

createrepo に関しては、 依存関係のエラーがでました

```
# rpm -ivh createrepo-0.10.3-3.aix6.1.noarch.rpm
error: Failed dependencies:
        libxml2-python >= 2.7.8 is needed by createrepo-0.10.3-3.noarch
        xz is needed by createrepo-0.10.3-3.noarch
        xz-libs is needed by createrepo-0.10.3-3.noarch
```

たった３つ、と思わせつつ、表示されたものを入れようとするとさらに依存関係があり、、、と言った感じで必要なファイルを洗い出すのにも多少時間がかかりました。
何か良い方法はないものか。。。（それが yum では、という説もありますが）

依存関係確認の際は、 rpm の依存関係確認オプション `rpm -qpR <ファイルセット>`  というコマンドもあるのですが、 `rpm -Uvh --test <ファイルセット>`  で確認すれば十分です。
（実際にインストールするときは --test をはずす）

結局、３～４回ぐらいトライしながら 必要なファイルセットを特定・追加していきました。
これが一番めんどくさい。。。

最終的なコマンドは以下のようになりました

```
rpm -Uvh --test createrepo-0.10.3-3.aix6.1.noarch.rpm \
  libxml2-python-2.9.7-1.aix6.1.ppc.rpm \
  xz-5.2.3-1.aix6.1.ppc.rpm \
  xz-libs-5.2.3-1.aix6.1.ppc.rpm \
  libffi-3.2.1-2.aix6.1.ppc.rpm \
  libgcc-6.3.0-2.aix7.1.ppc.rpm \
  ncurses-6.1-1.aix6.1.ppc.rpm \
  libxml2-2.9.7-1.aix6.1.ppc.rpm \
  bash-4.4-3.aix6.1.ppc.rpm \
  libstdcplusplus-6.3.0-2.aix7.1.ppc.rpm \
  libiconv-1.14-1.aix6.1.ppc.rpm \
  zlib-1.2.11-1.aix6.1.ppc.rpm \
  gettext-0.19.8.1-3.aix6.1.ppc.rpm

Preparing...                          ################################# [100%]

```
これでテストがうまく行きましたので、 --test をはずして導入します。

```
rpm -Uvh createrepo-0.10.3-3.aix6.1.noarch.rpm libxml2-python-2.9.7-1.aix6.1.ppc.rpm xz-5.2.3-1.aix6.1.ppc.rpm xz-libs-5.2.3-1.aix6.1.ppc.rpm libffi-3.2.1-2.aix6.1.ppc.rpm libgcc-6.3.0-2.aix7.1.ppc.rpm ncurses-6.1-1.aix6.1.ppc.rpm libxml2-2.9.7-1.aix6.1.ppc.rpm bash-4.4-3.aix6.1.ppc.rpm libstdcplusplus-6.3.0-2.aix7.1.ppc.rpm libiconv-1.14-1.aix6.1.ppc.rpm zlib-1.2.11-1.aix6.1.ppc.rpm gettext-0.19.8.1-3.aix6.1.ppc.rpm

Preparing...                          ################################# [100%]
Updating / installing...
   1:libgcc-6.3.0-2                   ################################# [  7%]
   2:xz-libs-5.2.3-1                  ################################# [ 14%]
   3:libffi-3.2.1-2                   ################################# [ 21%]
   4:libstdc++-6.3.0-2                ################################# [ 29%]
   5:ncurses-6.1-1                    ################################# [ 36%]
   6:gettext-0.19.8.1-3               ################################# [ 43%]
   7:libiconv-1.14-1                  ################################# [ 50%]
add shr4.o shared members from /usr/lib/libiconv.a to  /opt/freeware/lib/libiconv.a
add shr.o shared members from /usr/lib/libiconv.a to  /opt/freeware/lib/libiconv.a
add shr4_64.o shared members from /usr/lib/libiconv.a to  /opt/freeware/lib/libiconv.a
/
   8:zlib-1.2.11-1                    ################################# [ 57%]
   9:libxml2-2.9.7-1                  ################################# [ 64%]
  10:libxml2-python-2.9.7-1           ################################# [ 71%]
  11:bash-4.4-3                       ################################# [ 79%]

        ## Binary "bash" is avaible in 32bit and 64bit ##

        The default used is 64bit

        If 32bit is needed, please change symbolic link
        for "bash" in /bin directory
        To do that type:
                # rm -f /bin/bash
                # ln -sf /opt/freeware/bin/bash_32 /bin/bash
  12:xz-5.2.3-1                       ################################# [ 86%]
  13:createrepo-0.10.3-3              ################################# [ 93%]
Ignore the error about AIX-rpm dependency since the older libintl.a            is already preserved and will be reverted back
Cleaning up / removing...
  14:gettext-0.19.7-1                 ################################# [100%]

```

導入の際の rpm のオプションとして、 "U" を使っていますが、
"U" は アップデートまたはインストール、という意味のようです。 
そのため、もし事前に何かインストールされているような場合は "U" を使えば Update されます。
初期インストールの際は "i" で良いですが、面倒なので "-Uvh" を使いました。

#yum リポジトリの作成

一番めんどくさかった createrepo パッケージも入りましたので、
いよいよ yum リポジトリを作成していきます。

今、ディレクトリ構成としては 以下のようになっています
繰り返しですが、 NFS サーバー側で実施してもかまいませんし、  AIX～Repo_20181220 は何でも良いです。 local は好きな名前を。

```
/mnt (NFS マウントしたディレクトリ) 
 |--AIXToolsBox_LinuxApps
    |--Repo_20181220
       |--local
          |--Packages    <- 各種 rpm ファイル配置
```

苦労して導入した createrepo コマンドでリポジトリを作成します。

```
# pwd
/mnt/AIXToolsBox_LinuxApps/Repo_20181220
# ls
local
# createrepo .
Spawning worker 0 with 47 pkgs
Spawning worker 1 with 47 pkgs
Spawning worker 2 with 47 pkgs
Spawning worker 3 with 47 pkgs
Spawning worker 4 with 47 pkgs
Spawning worker 5 with 47 pkgs
Spawning worker 6 with 46 pkgs
Spawning worker 7 with 46 pkgs
Spawning worker 8 with 46 pkgs
Spawning worker 9 with 46 pkgs
Spawning worker 10 with 46 pkgs
Spawning worker 11 with 46 pkgs
Worker 4:
Worker 4: iso-8859-1 encoding on Trond Eivind Glomsr <teg@redhat.com>
Worker 4:
Worker 7:
Worker 7: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 7:
Worker 8:
Worker 8: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 8:
Worker 4:
Worker 4: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 4:
Worker 2:
Worker 2: iso-8859-1 encoding on - added "Obsoletes: proftpd-core" to make migration to new RPMs easier.
Worker 2:   Thanks to S饕astien Prud'homme <prudhomme@easy-flying.com> for the hint.
Worker 2: - release: 1.2.0-3
Worker 2:
Worker 8:
Worker 8: iso-8859-1 encoding on - Rebuilt with "build" onsted of "buildﾃ_ext" compile option
Worker 8:
Worker 9:
Worker 9: iso-8859-1 encoding on Trond Eivind Glomsr <teg@redhat.com>
Worker 9:
Worker 1:
Worker 1: iso-8859-1 encoding on Trond Eivind Glomsr <teg@redhat.com>
Worker 1:
Worker 8:
Worker 8: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 8:
Worker 8:
Worker 8: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 8:
Worker 8:
Worker 8: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 8:
Worker 8:
Worker 8: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 8:
Worker 8:
Worker 8: iso-8859-1 encoding on Bernhard Rosenkr舅zer <bero@redhat.com>
Worker 8:
Worker 10:
Worker 10: iso-8859-1 encoding on [3.3.1-4]
Worker 10: - added a new font patch, hopefully this works better (Thanks to G畸or J.Th)
Worker 10:
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
```

repodata というディレクトリができ、その中にファイルが作成されています。

```
# ls
local     repodata
# ls -lR repodata
合計 5424
-rw-r--r--    1 root     system       762263 Dec 20 20:25 100eacac450ff07b8a4b544c9563d84f62f472909b5d5c551b63763e37eb2fc3-filelists.sqlite.bz2
-rw-r--r--    1 root     system       326345 Dec 20 20:24 2595ff438481ab49810ed4c706770c6bf5e4e147e5b91476b51a7b7beaa7a0df-other.xml.gz
-rw-r--r--    1 root     system       205390 Dec 20 20:24 4e9687935ae608aca3538a96717b705f024ce9cc6f55b6d691ed92461a992f2e-primary.xml.gz
-rw-r--r--    1 root     system       421287 Dec 20 20:25 61b26383f68ceeeecd7451261783259c4a329906ed9aac07e3580c0832fe652c-primary.sqlite.bz2
-rw-r--r--    1 root     system       305515 Dec 20 20:24 e1dbe6913ff42d861a8d6230b59f726606cc59c986e8b48a841a284529743dd2-other.sqlite.bz2
-rw-r--r--    1 root     system       738423 Dec 20 20:24 f35d82047f08a28208372f6b9c87a5ac3910e9ef1f3e9c6fb9dba3db7e04f6e5-filelists.xml.gz
-rw-r--r--    1 root     system         3000 Dec 20 20:25 repomd.xml
```

#yum コマンドの設定ファイル修正

リポジトリが出来ましたので、 yum コマンドの設定ファイルを修正して、
作成したリポジトリを参照するように設定します。

Linux では /etc/yum  等のディレクトリがありますが、 AIX では /opt/freeware/etc/yum  以下になります。

```
# cd /opt/freeware/etc/yum
# ls -l
合計 16
drwxr-xr-x    2 root     system          256 Aug 03 2017  protected.d
drwxr-xr-x    2 root     system          256 Aug 03 2017  repos.d
drwxr-xr-x    2 root     system          256 Aug 03 2017  vars
-rw-r--r--    1 root     system          444 Aug 03 2017  version-groups.conf
-rw-r--r--    1 root     system          599 Dec 20 19:19 yum.conf
```

まず、 repos.d の中に 今回作成したリポジトリの定義ファイルを作成します。

```
# cd repos.d
# vi local.repo
<ファイル編集>

# cat local.repo
[local]
gpgcheck=0
name=LocalRepository
baseurl=file:///mnt/AIXToolsBox_LinuxApps/Repo_20181220
enabled=0
```

なお、今回は NFS サーバーから /mnt にマウントしています。
常にマウントされているわけではないため、 `enabled=0` とし、通常は無効な設定にしています。
また、 baseurl は  http://.... ではなく、 file://... で、 repodata ディレクトリの１つ上のディレクトリを指定します。

次に、デフォルトの yum.conf も修正してしまいます
（インターネットには出られないため、 インターネット上のリポジトリの定義については  `enabled=0` とします。）

```
# cd /opt/freeware/etc/yum
# cp -p yum.conf yum.conf.20181220
# vi yum.conf
<ファイル編集>

# cat yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1

[AIX_Toolbox]
name=AIX generic repository
baseurl=https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/
enabled=0
gpgcheck=0

[AIX_Toolbox_noarch]
name=AIX noarch repository
baseurl=https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/noarch/
enabled=0
gpgcheck=0


[AIX_Toolbox_71]
name=AIX 7.1 specific repository
baseurl=https://anonymous:anonymous@public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc-7.1/
enabled=0
gpgcheck=0

```

yum の定義修正が終わったため、 テストしてみます。

```
# LANG=C yum --enablerepo=local list
local                                                                                          | 2.9 kB  00:00:00
Installed Packages
AIX-rpm.ppc                                                        7.1.4.30-2                                installed
bash.ppc                                                           4.4-3                                     installed
ca-certificates.ppc                                                2016.10.7-2                               installed
createrepo.noarch                                                  0.10.3-3                                  installed
... （略）
```

デフォルトの yum.conf を修正していない場合は、 オプションで無効化することも可能です。
`LANG=C yum --disablerepo=* --enablerepo=local list`


#gtk2 の導入

最後に、もはやどうでもいい気分ではありますが、 gtk2 を導入します。

```
# LANG=C yum --enablerepo=local install gtk2
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gtk2.ppc 0:2.24.30-2waixX11 will be installed
…（略）…

Dependencies Resolved

======================================================================================================================
 Package                          Arch                Version                             Repository             Size
======================================================================================================================
Installing:
 gtk2                             ppc                 2.24.30-2waixX11                    local                  37 M
Installing for dependencies:
 atk                              ppc                 2.20.0-3                            local                 404 k
 cairo                            ppc                 1.14.6-2waixX11                     local                 5.0 M
 expat                            ppc                 2.2.4-1                             local                 511 k
 fontconfig                       ppc                 2.11.95-3                           local                 1.4 M
 freetype2                        ppc                 2.8-1                               local                 1.9 M
 gdk-pixbuf                       ppc                 2.35.1-2waixX11                     local                 3.5 M
 harfbuzz                         ppc                 1.2.7-2                             local                 2.0 M
 libXft                           ppc                 2.3.2-4waixX11                      local                 719 k
 libXrender                       ppc                 0.9.8-2waixX11                      local                 219 k
 libjpeg                          ppc                 6b-7                                local                 630 k
 libpng                           ppc                 1.6.27-2                            local                 1.6 M
 libtiff                          ppc                 3.8.2-1                             local                 774 k
 lzo                              ppc                 2.10-2                              local                 123 k
 pango                            ppc                 1.40.1-2waixX11                     local                 1.5 M
 pixman                           ppc                 0.34.0-1                            local                 877 k
 shared-mime-info                 ppc                 1.6-2                               local                 1.0 M
Updating for dependencies:
 glib2                            ppc                 2.56.1-2                            local                  28 M

Transaction Summary
======================================================================================================================
Install      17 Packages
Upgrade       1 Package

Total download size: 87 M
Is this ok [y/N]: N
```

導入といいつつ、上記の例は最後で N を指定して抜けています。
そこで y を指定すれば導入完了です。

今回の例では、  ファイルを NFS サーバーに配置し、別のサーバーでリポジトリ作成、yum 設定を行いました。
実際に作業した後から考えると NFS サーバー上で リポジトリの作成までやってしまい
別のサーバー（yum 利用サーバー）で yum 設定を行う方が本来の姿だと思います。

#参考

■ AIX Toolbox for Linux Applications
https://www.ibm.com/developerworks/aix/library/aix-toolbox/alpha.html

■ Installing and configuring GTK2 on IBM AIX
https://developer.ibm.com/tutorials/installing-and-configuring-gtk-on-aix/

■ AIX Toolbox for Linux Applications を簡単にインストールする方法
https://www.ibm.com/developerworks/community/blogs/070548f2-a7e8-4ee2-b859-19828c444def/entry/yum_conf?lang=en

■ WebSphere Application Server traditional V9 導入ガイド
https://www.ibm.com/developerworks/jp/websphere/library/was/twas9_install/index.html

■ Preparing AIX systems for installation
https://www.ibm.com/support/knowledgecenter/SSAW57_9.0.0/com.ibm.websphere.installation.nd.doc/ae/tins_aixsetup.html