新井です。

>>> From: ttate / jaist.ac.jp
>>> Date: 24 Apr 1999 01:36:22 +0900
>>> Subject: [ruby-ext:00172] Re: Tcl_Init,Tk_Init fail. (tcltklib.so)

> 立石です。

> 原因がわかりました。Tclのライブラリの検索パスが原因のようです。
> 僕の場合libc5->glibc2への移行に伴い
> /opt/local/lib/tcl8.1			(tcl8.1a1)
> /opt/i586-pc-linux-gnulibc2/lib/tcl8.1	(tcl8.1b3)
> の2つが存在していたことが原因です。

うーん、そうですかぁ。私のところとは別の症状でした
ね。こちらはやはり前に書いた通りでDISPLAYを"ホスト
名:0"に設定すると

$ ruby-1.3.2-990413 tklentry.rb
/usr/local/lib/ruby/1.3/tk.rb:408:in `new': Tk_Init (RuntimeError)
        from /usr/local/lib/ruby/1.3/tk.rb:408
        from tklentry.rb:3:in `require'
        from tklentry.rb:3

となります(今度は、1.3.2で試した)。

さらに、wishだと正常に動作してしまう。謎です。
tcl/tkともに7.6jp/4.2jpしかインストールしてません。

> /opt/local/bin/rbcを実行すると実行時のディレクトリをもとに
> 検索しているらしく/opt/local/lib/tcl8.1というディレクトリの
> 中のファイルでTclインタプリタを初期化していたようです。
> 実際に/opt/i586-pc-linux-gnulibc2/bin/rbcなどを作ってやって
> 実行するとエラーになりません。あるいはTCL_LIBRARY環境変数を
> setすればいいのかも、、、、

このあたりまだ追っかけてないですが、暇ができたら見てみます。
休み明けまでちょっと無理そうですが。

でも、私のところはたぶん

/usr/local/bin/ruby
/usr/local/lib/libtcl7.2jp.so
/usr/local/lib/libtk4.2jp
/usr/local/lib/tcl7.2jp/
/usr/local/lib/tk4.2jp/

こうなってるはず。