gauche に SLIB をインストールした
trace したいと思って (use slib)
したらエラーが出て,SLIB 入れてなかったことに気付いたので入れた.
前提
手順
2015/07/28時点での最新バージョンは3b5でした(The SLIB Portable Scheme Library)
$ cd ~/Downloads $ curl -O http://groups.csail.mit.edu/mac/ftpdir/scm/slib-3b5.zip $ unzip slib-3b5.zip $ sudo mkdir /usr/local/slib $ cp -r slib /usr/local
trace とか使えるようにする
この時点だとまだ trace とかは使えない.
$ gosh gosh> (use slib) #<undef> gosh> (require 'trace) *** ERROR: couldn't open output file: "/usr/local/Cellar/gauche/0.9.4/share/gauche-0.9/0.9.4/lib/slibcat" (省略)
slibcat に書き込み権限があるユーザが実行することで,一般ユーザもtraceとか使えるようになるらしい.
Gauche 0.5.3以降はmake install時にSLIBが見付けられればslibcatを 作成するようになっていますが、何らかの理由でその時点でslibcatが 作られなかった場合、SLIBは 最初にSLIBが使われる時に slibcatを 作成しようとします。ここでgauche-library-directoryが一般ユーザに 書き込み不可能になっていたりすると、上記のようなエラーが出ます。
解決法は、gauche-library-directoryに書き込みできる権限のある ユーザがgoshを走らせて、何らかのSLIBモジュールをrequireすることです。 例えば次のような式を評価すると良いでしょう。
ということなので,sudo gosh
で対応する.
$ sudo gosh gosh> (use slib) #<undef> gosh> (require 'trace) #t
これでOK.