手続き的に言うと、この間、日本語wikipediaのデータをprologの二分木化して、それをprologサーバに処理させて、tcpクライアントからデータ検索できるようにすると言う作業をやっていた。なんのことやら、と思う方がいるかと思うが、こればっかりは、話が長くなるので、このサイトの過去の記事を読んでいただかないといけない。
さて、その7Gもある二分木もそれを検索するprologプログラムも、それを利用可能にするprologのtcpサーバーもできた。直にそれをtcpクライアントから利用してもいいのだが、何かと不便なのでウェッブで使えるようにした。
つまり、ブラウザから、javascriptのajax経由で、サーバーサイトのphpを起動して、tcpクライアントを動かして、検索し、その出力をブラウザに表示すると言うシステムはできたのだ。Macのwebサーバーとprologサーバーでこれが機能することを確かめた。Macはローカルなので、これをこのブログも動かしている「お名前.com」のVPS上において、どこからでも利用できるようにしようと言う段取りになった。
VPSは、なぜかCentoOSで動いている。今は、Ubuntuにすればよかったと思うが、入れ替えると、また色々1から作り直さないけない。一時期、私が管理するネットワークサーバーは、CentoOSと決めていたことがあって、その勢いでのこと。まあ、仕方がない。
このVPSにswi-prologを入れようとしてちょっと詰まってしまった。Linuxなので、ソースからコンパイルする必要がある。まず、cmakeのバージョンが古いと怒られた。cmake 新しくしようとすると、g++のバージョンが古いと怒られた。 g++のバージョンアップは、こちらのサイトを参考にインストールできた。さしあたって、
gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC)
ここまで、バージョンアップした(もっと新しいバージョンもあるが、そこまでは必要なかった)。さらに、この辺りかそこらで、zlibが見つからないと言うエラーもあったので、これは、こちらを参考に、簡単に最新バージョンをインストールできた。そして、cmakeを新たにコンパイルし直した。cmakeは、
cmake version 3.14.1
ここまで、バージョンアップした。さらに、swi-prologのインストールページにある、事前準備をしようとしたら(※ dnfをyumに変える必要があった)
エラー: Multilib version problems found. ・・・・・・続く
と言うことで止まってしまった。経験的に、これがちゃんとインストールできていないと、swi-prologのコンパイルに失敗する。これはやや戸惑ったが、こちらにある通り対処したら、クリアできた。
このような過程を経て、無事、swi-prologはちょっと古びたCentOSにインストールできましたとさ。
(追記:結局VPSはメモリとパワー不足でprologサーバーを動かすことができなかった、笑)