FXRuby 1.6.4 redux

OK, thanks to the timely help of Lyle Johnson (Thanks, Lyle!) I got
FXRuby 1.6.4 compiled and installed. Unfortunately I cannot say that I
have it running.

1. Using 'gem install fxruby', as per the FXRuby web site's warning,
doesn't work. (This was not unexpected.)
2. Building FXRuby 1.6.4 myself from source and installing it
('install.rbconfig', 'install.rb setup' and 'install.rb install') seems
to have worked in that it compiled (relatively) cleanly, made the files
I'd expect and then put them about where I'd expect to find them.
That's where the good news ends, however. When I try a quick test of
it, things fail in ways I can't figure out:

        $ irb
        irb(main):001:0> require 'fox16'
        LoadError: libfxscintilla.so.18: cannot open shared object file:
        No such file or directory
        - /usr/local/lib/site_ruby/1.8/i486-linux/fox16.so
                from /usr/local/lib/site_ruby/1.8/i486-linux/fox16.so
                from (irb):1
        irb(main):002:0> quit
        
        $ find /usr/local/lib -name fox16.so
        /usr/local/lib/site_ruby/1.8/i486-linux/fox16.so
        
        $ ls -l /usr/local/lib/site_ruby/1.8/i486-linux
        total 19M
        -rwxr-xr-x 1 root staff 59K 2006-12-11 15:03 bz2.so
        -r-xr-xr-x 1 root staff 19M 2006-12-14 06:48 fox16.so
        
        $ find /usr/local/ -name "*scin*"
        /usr/local/lib/site_ruby/1.8/fox16/scintilla.rb
        /usr/local/lib/libfxscintilla.so.18.1.1
        /usr/local/lib/libfxscintilla.so.18
        /usr/local/lib/libfxscintilla.so
        /usr/local/lib/libfxscintilla.la
        /usr/local/lib/libfxscintilla.a
        /usr/local/lib/libfxscintilla.17.0.0
        /usr/local/lib/libfxscintilla.17
        /usr/local/lib/libfxscintilla
        /usr/local/include/fxscintilla
        
        $ ls -l /usr/local/lib/libfxscintilla*
        lrwxrwxrwx 1 root root 21 2006-12-11
        20:07 /usr/local/lib/libfxscintilla -> libfxscintilla.17.0.0
        lrwxrwxrwx 1 root root 21 2006-12-11
        20:07 /usr/local/lib/libfxscintilla.17 -> libfxscintilla.17.0.0
        -rwxr-xr-x 1 root root 2.5M 2006-12-11
        20:07 /usr/local/lib/libfxscintilla.17.0.0
        -rw-r--r-- 1 root root 4.4M 2006-12-13
        21:22 /usr/local/lib/libfxscintilla.a
        -rwxr-xr-x 1 root root 778 2006-12-13
        21:22 /usr/local/lib/libfxscintilla.la
        lrwxrwxrwx 1 root root 24 2006-12-11
        19:25 /usr/local/lib/libfxscintilla.so ->
        libfxscintilla.so.18.1.1
        lrwxrwxrwx 1 root root 24 2006-12-11
        19:25 /usr/local/lib/libfxscintilla.so.18 ->
        libfxscintilla.so.18.1.1
        -rwxr-xr-x 1 root root 3.0M 2006-12-11
        19:25 /usr/local/lib/libfxscintilla.so.18.1.1

My inexperienced eyes can find nothing wrong. The fox16.so file that it
claims it can't find is very obviously there. Or, if I'm misreading
this, the libfxscintilla.so.18 file it claims it can't find is also
clearly present. Permissions seem to all be sane. I can't figure out
what it wants from me. What painfully, laughably obvious thing am I
missing here?

···

--
Michael T. Richter
Email: ttmrichter@gmail.com, mtr1966@hotpop.com
MSN: ttmrichter@hotmail.com, mtr1966@hotmail.com; YIM:
michael_richter_1966; AIM: YanJiahua1966; ICQ: 241960658; Jabber:
mtr1966@jabber.cn

"My paramount object in this struggle is to save the Union, and is not
either to save or to destroy slavery." --Abraham Lincoln

Michael T. Richter wrote:

OK, thanks to the timely help of Lyle Johnson (Thanks, Lyle!) I got
FXRuby 1.6.4 compiled and installed. Unfortunately I cannot say that I
have it running.

/ ...

What painfully, laughably obvious thing am I
missing here?

The library file is present, but the application that needs it cannot find
it.

1. Check that /etc/ld.so.conf contains the path to the required library
directory. Example of /etc/ld.so.conf contents:

···

-----------------------------
include ld.so.conf.d/*.conf
/usr/local/lib
-----------------------------

Notice that the path to the required library directory is explicitly
included in this key library path resolution file.

If your /etc/ld.so.conf file doesn't look like this, edit it.

2. Run ldconfig as root:

# /sbin/ldconfig

See if this generic approach resolves the problem.

BTW this is a way to resolve a large number of library-related problems.

--
Paul Lutus
http://www.arachnoid.com

# a whole bunch of stuff about /etc/ld.so.conf

Yes, that did it Paul. Thanks. I guess what baffled me was the fact
that it was giving the path all the way to the library to say it wasn't
there. Weird error message, but this set of incantations made it all
work, so I'm happy.

···

On Thu, 2006-14-12 at 17:10 +0900, Paul Lutus wrote:

--
Michael T. Richter
Email: ttmrichter@gmail.com, mtr1966@hotpop.com
MSN: ttmrichter@hotmail.com, mtr1966@hotmail.com; YIM:
michael_richter_1966; AIM: YanJiahua1966; ICQ: 241960658; Jabber:
mtr1966@jabber.cn

"Sexual organs were created for reproduction between the male element
and the female element -- and everything that deviates from that is not
acceptable from a Buddhist point of view. Between a man and man, a woman
and another woman, in the mouth, the anus, or even using a hand." --The
Dalai Lama

It was giving you the path to the FXRuby extension's shared library
(in your case, /usr/local/lib/site_ruby/1.8/i486-linux/fox16.so), and
Ruby did know where to find that file. What it couldn't find was
/usr/local/lib/libFOX-1.6.so, which is a dependency of the former. The
information that Paul provided corrected that latter problem.

This is discussed in the FXRuby User's Guide, here:

    http://www.fxruby.org/doc/build.html#tragedies

Hope this helps,

Lyle

P.S. Thanks, Paul!

···

On 12/14/06, Michael T. Richter <ttmrichter@gmail.com> wrote:

Yes, that did it Paul. Thanks. I guess what baffled me was the fact that
it was giving the path all the way to the library to say it wasn't there.