CentoOSのVPSにswi-prologをインストールした

手続き的に言うと、この間、日本語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サーバーを動かすことができなかった、笑)