ここでは、プロバイダのサーバーなどにユーザレベルでGaucheを インストールする際の注意点を挙げておきます。ユーザはサーバーに ログインしてシェルが使えるものとします。 また、そのサーバでの基本的なCGIのセットアップは出来るものとします。
まず、サーバーに必要なライブラリがあるかどうかを調べます。 Gauche本体は最低限のライブラリさえあればビルドできますが、 CGIとして使いたい場合、次のようなライブラリが入っていることが 望ましいでしょう。
これらのライブラリがシステムに無い場合は、自分のホーム ディレクトリの下などにインストールしておいてください。 基本的には、ソースを展開したディレクトリで、
./configure --prefix=$HOME make make install
で良いはずです。
Gaucheのディストリビューションをサーバーにコピーして 展開し、次のようにconfigureします。
./configure --prefix=$HOME --with-local=$HOME --with-iconv=$HOME --with-rpath=$HOME/lib
ここで、それぞれのオプションの役割は以下の通りです。
ホームディレクトリの下にGaucheをインストールします。
ホームディレクトリの下にインストールされた 外部ライブラリを使います。gdbmを自前でインストールした場合などに 必要です。
ホームディレクトリの下にインストールされた iconvを使います。iconvを自前でインストールした場合のみに必要です。
このオプションは、ホームディレクトリ以下に インストールされた外部ライブラリを正しくダイナミックリンク できるようにします。gccでしか動作を確認していません。
続いてビルドします。
make
goshのリンク時に、「-Wl,-rpathなんてオプション知らん」と 怒られた場合は、--with-rpathを外してconfigureしなおしてみて下さい。
ビルドが終わったらテストしときましょう。
make test
OSによっては、いくつかのテストに失敗するかもしれません。 http://www.shiro.dreamhost.com/scheme/gauche/features-j.html#ports を参照してください。
make install
でGaucheが$HOME/bin, $HOME/lib, $HOME/share の下にインストール されます。
まずはシェルから起動してちょっと遊んでみます。
% $HOME/bin/gosh gosh> (use gauche.charconv) (#<module gauche.interactive> #<module gauche.charconv>) gosh>
(use gauche.charconv)が使えるかどうかは重要です。 ここで、「libiconv.soが見つからないよん」などと言われて しまった場合、ダイナミックリンクローダがiconvライブラリを 見つけられていません。普通、LD_LIBRARY_PATHとかLD_RUN_PATH などの環境変数を設定する必要があります。 (--with-rpath configure オプションが使えていればこの エラーは出ないはずです)。 man rldとかman ld.soとかを見て調べてください。
ただ問題は、シェルから起動してそれらの環境変数を設定して 動いたとしても、CGIとしてWebサーバから起動された場合に やはり環境変数が設定されずに動作しない可能性があることです。 Webサーバによっては、.htaccessファイルなどでそのディレクトリ内の CGIプログラムの起動の際の環境変数を設定できるようにしてある かもしれません。プロバイダに尋ねてみてください。
--with-rpath が使えず、CGIの実行時の環境変数も設定できない場合は、 一度シェルスクリプトを起動してそこからSchemeスクリプトをキックする というようなトリックが必要になるでしょう。
次に、簡単なcgiを動かしてみます。たとえばこんなの。
#!/home/shiro/bin/gosh (display "Content-type: text/plain\r\n\r\nHello, world.\r\n")
/home/shiro/binのところは自分のパスに変えといて下さい。 これに実行権限を出して、Webブラウザからアクセスして
Hello, world
というページが出れば成功です。