[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Problems Using rb-gsl

Mark Bennett

1/10/2005 9:22:00 PM

I'm trying to use rb-gsl in an application I'm writing and am able to
use it on Mac OS X but not Linux. On an old Red Hat 7.3 box I see the
following error messages when compiling use, 'ruby setup.rb setup':

gcc -fPIC -I../include -Wall -I/usr/local/include -I.
-I/usr/local/lib/ruby/1.8/i686-linux
-I/usr/local/lib/ruby/1.8/i686-linux
-I/home/mark/versioned/praxis/sbcalc/third_party/rb-gsl-1.6.0/ext -c
wavelet.c
cc1: warning: changing search order for system directory
"/usr/local/include"
cc1: warning: as it has already been specified as a non-system directory

It says this for all files being compiled. When I try to run any of the
sample applications included with rb-gsl I see the message:

/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so: libgsl.so.0:
cannot open shared object file: No such file or directory -
/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/gsl.rb:1
from cheb.rb:2:in `require'
from cheb.rb:2

This same procedure works just find on my Mac. I've run ldconfig to
make sure all my GSL libraries are found, and I run 'make test' after
installing GSL. All tests passed.

Does anyone out there have a suggestion for what to do?

Thanks!

-Mark


6 Answers

Yoshiki Tsunesada

1/10/2005 10:14:00 PM

0

Hi Mark,

I've never found the problems in my test,
on MacOS X and Redhat 9.0. Please check the
followings and try again.

* The shared object
/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so
is copired correctly? Check with ext/rb_gsl.so, or copy
it by-hand.
* Add an entry "/usr/local/lib" in /etc/ld.so.conf.

Sorry for inconvenience.
Yoshiki

On Tue, 11 Jan 2005 06:22:17 +0900, Mark Bennett wrote:
> I'm trying to use rb-gsl in an application I'm writing and am able to
> use it on Mac OS X but not Linux. On an old Red Hat 7.3 box I see
> the following error messages when compiling use, 'ruby setup.rb
> setup':
>
> gcc -fPIC -I../include -Wall -I/usr/local/include -I.
> -I/usr/local/lib/ruby/1.8/i686-linux
> -I/usr/local/lib/ruby/1.8/i686-linux
> -I/home/mark/versioned/praxis/sbcalc/third_party/rb-gsl-1.6.0/ext
> -c wavelet.c
> cc1: warning: changing search order for system directory
> "/usr/local/include"
> cc1: warning: as it has already been specified as a non-system directory
>
> It says this for all files being compiled. When I try to run any of
> the sample applications included with rb-gsl I see the message:
>
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so: libgsl.so.0:
> cannot open shared object file: No such file or directory -
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so (LoadError)
> from /usr/local/lib/ruby/site_ruby/1.8/gsl.rb:1
> from cheb.rb:2:in `require'
> from cheb.rb:2
>
> This same procedure works just find on my Mac. I've run ldconfig to
> make sure all my GSL libraries are found, and I run 'make test' after
> installing GSL. All tests passed.
>
> Does anyone out there have a suggestion for what to do?
>
> Thanks!
>
> -Mark


Mark Bennett

1/10/2005 10:39:00 PM

0

Yoshiki:

Thank-you for your help I really appreciate it! I did the things you
suggested in your last email.

1) rb_gsl.so seems correct

[mark@www rb-gsl-1.6.0]$ ls -la /usr/local/lib/ruby/site_ruby/1.8/i686-linux/

total 1556

drwxr-xr-x 2 root root 4096 Jan 10 15:40 .

drwxr-xr-x 4 root root 4096 Jan 10 15:19 ..

-rw-r--r-- 1 root root 143 Jan 10 15:18 narray_config.h

-rw-r--r-- 1 root root 4823 Jan 4 2004 narray.h

-rwxr-xr-x 1 root root 343577 Jan 10 15:19 narray.so

-r-xr-xr-x 1 root root 1218609 Jan 10 15:40 rb_gsl.so

[mark@www rb-gsl-1.6.0]$ md5sum ext/rb_gsl.so

7e8fb48ce8c6c12e76b05fe2c46e0b20 ext/rb_gsl.so

[mark@www rb-gsl-1.6.0]$ md5sum /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so

7e8fb48ce8c6c12e76b05fe2c46e0b20 /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so


2) Added /usr/local/lib to /etc/ld.so.conf

This directory was missing from the list in ld.so.conf but I added it.
The file now looks like this:

[mark@www rb-gsl-1.6.0]$ cat /etc/ld.so.conf

/usr/kerberos/lib

/usr/X11R6/lib

/usr/lib/qt-3.0.5/lib

/usr/lib/mysql

/usr/local/lib


After doing both these things, I tried running a setup.rb clean, then
ran though the build intructions again with the same outcome. Is there
any other information I can provide that might be helpful?

Thanks! :-)

-Mark


Yoshiki Tsunesada wrote:

> Hi Mark,
>
> I've never found the problems in my test,
>on MacOS X and Redhat 9.0. Please check the
>followings and try again.
>
> * The shared object
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so
> is copired correctly? Check with ext/rb_gsl.so, or copy
> it by-hand.
> * Add an entry "/usr/local/lib" in /etc/ld.so.conf.
>
> Sorry for inconvenience.
> Yoshiki
>
>On Tue, 11 Jan 2005 06:22:17 +0900, Mark Bennett wrote:
>
>
>>I'm trying to use rb-gsl in an application I'm writing and am able to
>>use it on Mac OS X but not Linux. On an old Red Hat 7.3 box I see
>>the following error messages when compiling use, 'ruby setup.rb
>>setup':
>>
>>gcc -fPIC -I../include -Wall -I/usr/local/include -I.
>>-I/usr/local/lib/ruby/1.8/i686-linux
>>-I/usr/local/lib/ruby/1.8/i686-linux
>>-I/home/mark/versioned/praxis/sbcalc/third_party/rb-gsl-1.6.0/ext
>>-c wavelet.c
>>cc1: warning: changing search order for system directory
>>"/usr/local/include"
>>cc1: warning: as it has already been specified as a non-system directory
>>
>>It says this for all files being compiled. When I try to run any of
>>the sample applications included with rb-gsl I see the message:
>>
>>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so: libgsl.so.0:
>>cannot open shared object file: No such file or directory -
>>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so (LoadError)
>> from /usr/local/lib/ruby/site_ruby/1.8/gsl.rb:1
>> from cheb.rb:2:in `require'
>> from cheb.rb:2
>>
>>This same procedure works just find on my Mac. I've run ldconfig to
>>make sure all my GSL libraries are found, and I run 'make test' after
>>installing GSL. All tests passed.
>>
>>Does anyone out there have a suggestion for what to do?
>>
>>Thanks!
>>
>>-Mark
>>
>>



Yoshiki Tsunesada

1/10/2005 10:49:00 PM

0

On Tue, 11 Jan 2005 07:38:37 +0900, Mark Bennett wrote:
> Thank-you for your help I really appreciate it! I did the things you
> suggested in your last email.
> After doing both these things, I tried running a setup.rb clean, then
> ran though the build intructions again with the same outcome. Is
> there any other information I can provide that might be helpful?

Hmm, the message says the system could not find libgsl.so.0.
Where is the shared library? Is it in search path, or has it be
built?

> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so: libgsl.so.0: cannot
open shared object file: No such file or directory -
/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/gsl.rb:1
from cheb.rb:2:in `require'
from cheb.rb:2

Yoshiki


Mark Bennett

1/10/2005 11:08:00 PM

0

Yoshiki:

The libgsl.so.0 is in /usr/local/lib which I'm assuming is in my search
path. Is there a way I can check this? I'm not sure which search path
I need to look at.

Here are the details of libgsl:

[mark@www cheb]$ locate libgsl.so.0

/usr/local/lib/libgsl.so.0

[mark@www cheb]$ ls -la /usr/lo

local lost+found

[mark@www cheb]$ ls -la /usr/local/lib/ | grep libgsl.so

lrwxrwxrwx 1 root root 15 Jan 10 15:16 libgsl.so -> libgsl.so.0.7.0

lrwxrwxrwx 1 root root 15 Jan 10 15:16 libgsl.so.0 -> libgsl.so.0.7.0

-rwxr-xr-x 1 root root 6248793 Jan 10 15:16 libgsl.so.0.7.0


-Mark

Yoshiki Tsunesada wrote:

>On Tue, 11 Jan 2005 07:38:37 +0900, Mark Bennett wrote:
>
>
>>Thank-you for your help I really appreciate it! I did the things you
>>suggested in your last email.
>>After doing both these things, I tried running a setup.rb clean, then
>>ran though the build intructions again with the same outcome. Is
>>there any other information I can provide that might be helpful?
>>
>>
>
> Hmm, the message says the system could not find libgsl.so.0.
>Where is the shared library? Is it in search path, or has it be
>built?
>
>
>
>>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so: libgsl.so.0: cannot
>>
>>
>open shared object file: No such file or directory -
>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so (LoadError)
> from /usr/local/lib/ruby/site_ruby/1.8/gsl.rb:1
> from cheb.rb:2:in `require'
> from cheb.rb:2
>
> Yoshiki
>
>



Yoshiki Tsunesada

1/11/2005 2:15:00 AM

0

Mark,

* I guess you use GCC 3.1: it warns "changing search order
for system directory" when an option -I/usr/local/include
is given. If you use newer(older) GCC, the warning won't
appear.
* The message you showed says, the shared object rb_gsl.so
is not found in your system, but it is installed in
/usr/local/lib/ruby/site_ruby/1.8/i686-linux/.
As you shown, narray.so is also installed in the same
place, and how about is it (or other Ruby wrappers of C
libraries)? Is it possible to run scripts using NArray?
I'm not sure the problem is of rb-gsl or of the system.

Yoshiki

On Tue, 11 Jan 2005 06:22:17 +0900, Mark Bennett wrote:
> I'm trying to use rb-gsl in an application I'm writing and am able to
> use it on Mac OS X but not Linux. On an old Red Hat 7.3 box I see
> the following error messages when compiling use, 'ruby setup.rb
> setup':
>
> gcc -fPIC -I../include -Wall -I/usr/local/include -I.
> -I/usr/local/lib/ruby/1.8/i686-linux
> -I/usr/local/lib/ruby/1.8/i686-linux
> -I/home/mark/versioned/praxis/sbcalc/third_party/rb-gsl-1.6.0/ext
> -c wavelet.c
> cc1: warning: changing search order for system directory
> "/usr/local/include"
> cc1: warning: as it has already been specified as a non-system directory
>
> It says this for all files being compiled. When I try to run any of
> the sample applications included with rb-gsl I see the message:
>
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so: libgsl.so.0:
> cannot open shared object file: No such file or directory -
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so (LoadError)
> from /usr/local/lib/ruby/site_ruby/1.8/gsl.rb:1
> from cheb.rb:2:in `require'
> from cheb.rb:2
>
> This same procedure works just find on my Mac. I've run ldconfig to
> make sure all my GSL libraries are found, and I run 'make test' after
> installing GSL. All tests passed.
>
> Does anyone out there have a suggestion for what to do?
>
> Thanks!
>
> -Mark


Mark Bennett

1/11/2005 5:28:00 PM

0

Hi Yoshiki:

Just to update you and the rest of the list, I was able to get this
problem sorted out with a lot of help from Ara Howard.

Here's what I had to do to fix this problem...

1) Edit /etc/ld.so/conf

Red Hat boxes don't seem to include /usr/local/lib in their search path
so I added it along with my Ruby lib folder. My /etc/ld.so.conf now
looks like:

/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/qt-3.0.5/lib
/usr/lib/mysql
/usr/local/lib
/usr/local/lib/ruby/site_ruby/1.8/i686-linux

2) Run ldconfig

I ran ldconfig as root to update the ld.so search path

3) Rebuild rb-gsl

Followed the directions to recompile and install rb-gsl

4) Ran rb-gsl examples

When I ran the examples again they now worked with no problems. :-)

Hope this helps anyone else out there with the same problems! Thanks
for all the assistance.

-Mark


Yoshiki Tsunesada wrote:

> Mark,
>
> * I guess you use GCC 3.1: it warns "changing search order
> for system directory" when an option -I/usr/local/include
> is given. If you use newer(older) GCC, the warning won't
> appear.
> * The message you showed says, the shared object rb_gsl.so
> is not found in your system, but it is installed in
> /usr/local/lib/ruby/site_ruby/1.8/i686-linux/.
> As you shown, narray.so is also installed in the same
> place, and how about is it (or other Ruby wrappers of C
> libraries)? Is it possible to run scripts using NArray?
> I'm not sure the problem is of rb-gsl or of the system.
>
> Yoshiki
>
>On Tue, 11 Jan 2005 06:22:17 +0900, Mark Bennett wrote:
>
>
>>I'm trying to use rb-gsl in an application I'm writing and am able to
>>use it on Mac OS X but not Linux. On an old Red Hat 7.3 box I see
>>the following error messages when compiling use, 'ruby setup.rb
>>setup':
>>
>>gcc -fPIC -I../include -Wall -I/usr/local/include -I.
>>-I/usr/local/lib/ruby/1.8/i686-linux
>>-I/usr/local/lib/ruby/1.8/i686-linux
>>-I/home/mark/versioned/praxis/sbcalc/third_party/rb-gsl-1.6.0/ext
>>-c wavelet.c
>>cc1: warning: changing search order for system directory
>>"/usr/local/include"
>>cc1: warning: as it has already been specified as a non-system directory
>>
>>It says this for all files being compiled. When I try to run any of
>>the sample applications included with rb-gsl I see the message:
>>
>>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so: libgsl.so.0:
>>cannot open shared object file: No such file or directory -
>>/usr/local/lib/ruby/site_ruby/1.8/i686-linux/rb_gsl.so (LoadError)
>> from /usr/local/lib/ruby/site_ruby/1.8/gsl.rb:1
>> from cheb.rb:2:in `require'
>> from cheb.rb:2
>>
>>This same procedure works just find on my Mac. I've run ldconfig to
>>make sure all my GSL libraries are found, and I run 'make test' after
>>installing GSL. All tests passed.
>>
>>Does anyone out there have a suggestion for what to do?
>>
>>Thanks!
>>
>>-Mark
>>
>>