From: Tetsunori Matsubara - Nihon Sun IR Date: 1995-12-25T16:43:06+09:00 Subject: [ruby-list:23] ruby install on Solaris 2.4 松原@日本サンです。 今日 ruby をインストールして見ました。当初 fj.sources で配布されたものをコ ンパイルしたのですが、make test で core dump してしまいました。 そこで ruby-0.95-0.95b-diff を ftp してきて、patch を当てたところ、問題無 く make test は通りました。しかし、それからもいろいろ問題が起きましたので、 起きた現象と私のとった対処方法を以下にまとめます。今後のリリースの参考にな れば幸いです。 以下は Solaris2.4 でのコンパイル結果を元にしています。他のシステムには当て はまらないかも知れません。 1. ext/*/*.so が インストールされない。 make install の際に .././install-sh というコマンドが呼ばれていたが、実 際のコマンドは ../../install-sh に存在していたため、エラーとなった。 → ext/ ディレクトリに ../install-sh に対するシンボリックリンクを張って 対処。本来は install script を修正すべきところかと思います。 2. ext/tkutil/tkutil.so が作成されない。 ext/Setup に tkutil を指定していたが、なぜかコンパイルされない。他のモ ジュールはコンパイルされていた。 → コンパイル時に PATH に wish が存在していないと、省略される事に気付く。 which wish で wish を見えるように設定して対処。 3. lib/*.rb が base64.rb のみインストールされる。 make install 時に lib/*.rb が /usr/local/lib/ruby にインストールされる が、なぜか base64.rb しかインストールされない。install-sh のバグ? → Makefile を直接修正して、/usr/ucb/install を使用するように変更。 4. sample/dbm.rb が core dump する。 make test が成功した ruby で、sample/ ディレクトリの dbm.rb を実行させ ると core dump してしまう。debugger で追いかけたりした結果、dlopen が実 行されていない事に気付く。config.log に Undefined first referenced symbol in file dlopen conftest.o (/usr/lib/libdl.so.1?) ld: fatal: Symbol referencing errors. No output written to conftest というエラーが出ていたので、どうも configure が dynamic load 無しと判断 しているらしい。 → configure はよくわからないので、defines.h に #define USE_DLN_DLOPEN を追加して再コンパイルしたところ、無事共有ライブラリをロードした。 5. socket.so のコンパイルオプションに -lnsl が抜けている。 0.95b パッチを当てた直後の socket/extconf.rb は、 have_library("inet", "gethostbyname") have_library("nls", "gethostbyname") have_library("nls", "gethostbyname") have_library("socket", "socket") have_header("sys/un.h") if have_func("socket") create_makefile("socket") end となっているが、これは、 have_library("nsl", "gethostbyname") have_library("socket", "socket") have_header("sys/un.h") if have_func("socket") create_makefile("socket") end であるべき。上記のように変更後、再コンパイルして clnt.rb/svr.rb が動作 する事を確認しました。 6. Tk が動かない。(未解決) sample/tkhello.rb を起動しても何も表示されない。ps でプロセスを見てみる と wish -n /dev/null というプロセスがあるので、何かをしようとしていると は思うのですが、何か足りないんでしょうか?皆様のところでは Tk うまく動 いていますか? とりあえず Tk 以外の機能は動くようになりました。これから時間を見つけていろ いろ試して見ようと思います。ゆくゆくは oraperl みたいな RDBMS の ext を作 れたら楽しそうだなとか、考えています。 − 松原 哲範 teppan@sun.co.jp Nihon Sun Microsystems K.K. - Information Resources