From: Randy Kramer Date: 2006-03-28T00:38:39+09:00 Subject: Re: Help with tkHTML (specifically, require 'tkextlib/tkHTML' fails to find package) Everyone: I'm still not there, any suggestions appreciated. Hidetoshi NAGAI, Thanks very much for your help so far! As you can see (from the comments interspersed with yours, below) I'm probably out of my depth here, and I don't want to waste a lot of your time. Maybe I should delete (uninstall) Ruby, ActiveTCL, and the ktHTML packages and reinstall? If I do that, I'd prefer not to reinstall ActiveTCL (just because of the size of it) and install only Ruby and the ktHTML package. I can't immediately recall/find from where I downloaded the ktHTML package, there is no version number on the package, and the dates on the files are now (of course) the dates I downloaded the files, not the original dates. The size of the tkhtml.tar.gz is 387987 bytes, and the first lines of the spec.html file are: "This is a draft interface specification for the Tk HTML widget currently under development. Since it is still a draft, it is subject to change. Eventually, the interface will stabilize and this interface specification will morph into a manual page." My question is, is that the latest version, or is the version in ActiveTCL more up-to-date? Below (interspersed with your suggestions) are the things I've tried and the results--perhaps you or somebody else can see what I've done wrong. (Or, at some time in the fairly near future, I'll uninstall Ruby, etc., and start again--it may be a week or two as I have some other things to deal with in the next week or so.) On Sunday 26 March 2006 09:58 pm, Hidetoshi NAGAI wrote: > I think that your tcltklib.so doesn't load ActiveTcl library. > Please run "/usr/local/bin/ruby -r tk -e 'p Tk::TCL_LIBRARY'". > Probably, it shows the path your original (not ActiveTcl) Tcl/Tk directory. Yes, it shows "/usr/lib/tcl8.4" > You may control the path with LD_LIBRARY_PATH or TCL_LIBRARY environment > variable. For example, "TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.4 > /usr/local/bin/ruby -r tk -e 'p Tk::TCL_LIBRARY'". That didn't seem to do anything the first time I tried it, now going back to try again and check various things: * I now see the following in my environment--is that what I should see? [rhk@s14 tkHTML]$ set | grep LIBRARY _='p Tk::TCL_LIBRARY' * I installed ActiveTcl 8.5, so I believe the path I should use is /usr/local/ActiveTcl/lib/tcl8.5. It exists, and contains some .tcl files (e.g., auto.tcl) and subdirectories (e.g., opt0.4). * Now I run [rhk@s14 tkHTML]$ TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.5 /usr/local/bin/ruby -r tk -e 'p Tk::TCL_LIBRARY' and get: "/usr/lib/tcl8.4" which looks the same as before. Is that what I should get? Earlier (on the first try) I tried running irb and got no better results for the require 'tclextlib/tkHTML' statement, but I now realize I should run irb something like this: TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.5 /usr/local/bin/irb Let's see how that works--nope, still the same problem: [rhk@s14 rhk]$ TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.5 /usr/local/bin/irb irb(main):001:0> require 'tk' => true irb(main):002:0> require 'tkextlib/tkHTML' RuntimeError: TkPackage can't find package Tkhtml from /usr/local/lib/ruby/1.8/tk/package.rb:86:in `require' from /usr/local/lib/ruby/1.8/tkextlib/tkHTML/htmlwidget.rb:15 from /usr/local/lib/ruby/1.8/tkextlib/tkHTML.rb:13 from (irb):2 > You can get the support status of Tk extensions on your environment > by "/usr/local/lib/ruby/1.8/tkextlib/pkg_checker.rb". That seems useful (now and in the future). Among other things, I see: *LACK : tkHTML.rb : require->{} FAIL->[["tkextlib/tkHTML/htmlwidget", :require_ruby_lib]] *LACK : tkHTML/htmlwidget.rb : require->{} FAIL->[["Tkhtml", :package]] Ready : tkHTML/setup.rb : require->{} (And maybe half of the packages that scroll by are marked Ready and the other half marked LACK (just a guess). I'm guessing that Ready means I'm good to go, and LACK means there is a problem.) > Possibly, you get different result between > "/usr/local/bin/ruby /usr/local/lib/ruby/1.8/tkextlib/pkg_checker.rb" > and > "TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.4 /usr/local/bin/ruby > /usr/local/lib/ruby/1.8/tkextlib/pkg_checker.rb". -- Nope, they seem the same. The results for tkHTML seem the same: [rhk@s14 tkHTML]$ TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.5 /usr/local/bin/ruby /usr/local/lib/ruby/1.8/tkextlib/pkg_checker.rb | grep tkHTML *LACK : tkHTML.rb : require->{} FAIL->[["tkextlib/tkHTML/htmlwidget", :require_ruby_lib]] *LACK : tkHTML/htmlwidget.rb : require->{} FAIL->[["Tkhtml", :package]] Ready : tkHTML/setup.rb : require->{} [rhk@s14 tkHTML]$ TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.5 /usr/local/bin/ruby /usr/local/lib/ruby/1.8/tkextlib/pkg_checker.rb | wc 253 1313 12046 [rhk@s14 tkHTML]$ /usr/local/lib/ruby/1.8/tkextlib/pkg_checker.rb | wc 253 1313 12046 Ok, maybe because tkHTML/setup.rb is ready, I should try running that, with the TCL_LIBRARY path prefix: [rhk@s14 tkHTML]$ TCL_LIBRARY=/usr/local/ActiveTcl/lib/tcl8.5 /usr/local/bin/ruby /usr/local/lib/ruby/1.8/tkextlib/tkHTML/setup.rb And then retry pkg_checker--no, no change in the output listed previously (with or without the TCL_LIBRARY prefix): *LACK : tkHTML.rb : require->{} FAIL->[["tkextlib/tkHTML/htmlwidget", :require_ruby_lib]] *LACK : tkHTML/htmlwidget.rb : require->{} FAIL->[["Tkhtml", :package]] Ready : tkHTML/setup.rb : require->{} Randy Kramer