From: Yuji Shigehiro Date: 1999-10-01T16:12:18+09:00 Subject: [ruby-list:17304] Re: ruby on Compaq 忘れたころにやってくる重弘です. > Date: Mon, 30 Aug 1999 14:42:37 +0900 > Subject: [ruby-list:16370] Re: ruby on Compaq > Message-Id: <199908300542.OAA14638@kaken98.ee.oit.ac.jp> > > Date: Mon, 30 Aug 1999 14:09:15 +0900 > > Subject: [ruby-list:16366] ruby on Compaq > > Message-Id: <14282.4921.362716.72159A@studly.private.netlab.co.jp> > > > ・Compaq Alpha station > > ・Compaq Tru64 UNIX > > > という環境でRubyが動くか、という質問を受けたのですが、どなたかご > > 存知ありませんでしょうか。 動くはず, と答えてあげてください. 大丈夫です. 多分 (^^; > マシン: VT-Alpha600 (21164 を積んだ Alpha の互換機) > OS: DIGITAL UNIX (と箱に書いてある, Linux ではない方の UNIX) > コンパイラ: gcc > 今, 試してみると, 少なくとも, tcl/tk 関係はうまくいってないようです. tcl/tk 関係がうまくいかない原因は, ライブラリのバージョンの不一致でした. といっても, 何のことやらわからないと思いますので, もう少し説明します. ---------------------------------------------------------------- 0. しげひろは, Digital Unix には (当然) tcl/tk が入っていないと思って いた. 1. そこで, ruby のために 「日本語 Freeware for DIGITAL UNIX V4.0E」 という CD-ROM に入っていた tcl8.0.3 と tk8.0.3 をインストールした. ライブラリは /usr/local/lib/libtcl8.0.a /usr/local/lib/libtk8.0.a とインストールされた. 2. しかし, もともと tcl/tk はインストールされていて, /usr/shlib/libtcl.so /usr/shlib/libtk.so というライブラリが存在した. 3. ruby-1.3 の ext/tcltklib/extconf.rb は, こちらの思惑通り -libtcl8.0 -libtk8.0 というオプションを生成したので, ことなきを得た. しかし ruby-1.4.[02] の ext/tcltklib/extconf.rb は めざとく /usr/shlib/libtk.so を見つけ, -libtcl8.0 -libtk というオプションを生成してしまった. (なぜか (?) /usr/shlib/libtcl.so の方は無視された.) そのため, 古い tk と新しい tcl が同居することになってしまった. というあたりが真相のようです. そこで, ext/tcltklib/extconf.rb の一行を # find_library("tk", func, *paths) or とコメントアウトしてコンパイルしてみたところ, 無事, -libtcl8.0 -libtk8.0 となり, ちゃんと動くようになりました. ---------------------------------------------------------------- 結局, 悪いのは 1. しげひろの tcl/tk のインストールの仕方 2. ruby-1.4 の ext/tcltklib/extconf.rb のどちらかなのですが, どうしたものでしょうか? 古い /usr/shlib/lib/libtk を手で消せば良いのかなぁ ?? ---- 重弘裕二 大阪工業大学工学部電気工学科 (sigehiro@ee.oit.ac.jp)