[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Building ruby

Jon Rust

4/9/2008 12:26:00 AM

The linux systems I admin @ work have an old version of ruby (1.8.2).
I've decided to attempt an upgrade. (SuSE 9.1 fwiw.)

First attempt was with Ruby 1.9.0-1. Everything seemed to work fine,
even got a recent build of OCI8 to work, and my oracle connection
scripts were golden. Then I tried another group of scripts with less
favorable results. Apparently 'ping' isn't in the std lib anymore? It
wasn't immediately clear to me that net-ping-1.22 would be a drop in
replacement, so I punted on 1.9. :-(

Next in line was 1.8.6-p114. Also went smoothly through build. Tried to
run a few scripts... nope. Error on 'socket'? huh?

irb(main):001:0> require 'socket'
LoadError: no such file to load -- socket
from (irb):1:in `require'
from (irb):1

I see in the console from 'make' that socket was built cleanly. And it's
in the lib directory:

lib/ruby/1.8/i686-linux/socket.so

Been using ruby for some time now and feel like a noobie all of a sudden
by not being able to get either of these builds working. Both builds
were done with "./configure; make; sudo make install". Nothing special.

Any tips welcome. My scripts are monitoring oriented, making liberal use
of ping, socket, OCI8, gserve, thread and timeout. (If any of that makes
a difference.)

thanks,
jon
--
Posted via http://www.ruby-....

3 Answers

Marc Heiler

4/9/2008 7:16:00 AM

0

> The linux systems I admin @ work have an old version of ruby (1.8.2).
> I've decided to attempt an upgrade. (SuSE 9.1 fwiw.)
>
> First attempt was with Ruby 1.9.0-1.


You should be careful from 1.8 to 1.9
As far as I understood it, 1.9 is a "different language" than 1.8

> Everything seemed to work fine

Famous last words SCNR ;-)

> Next in line was 1.8.6-p114. Also went smoothly through build. Tried to
> run a few scripts... nope. Error on 'socket'? huh?
>
> irb(main):001:0> require 'socket'
> LoadError: no such file to load -- socket


Works here.
My ruby is source built from p114:
ruby 1.8.6 (2008-03-03 patchlevel 114) [i686-linux]

Maybe you have messed up your ruby install. Or the default SuSE
ruby is missing some bits. Personally I compile things into
self-contained dirs.

> Both builds were done with "./configure; make; sudo make install". Nothing special.

Guess that will default to /usr/local
Where does your irb reside at? And do you have /usr/lib/ruby*
something, some stray ruby files somewhere?

All I know is that it *should* work (it works here)
--
Posted via http://www.ruby-....

Vidar Hokstad

4/9/2008 9:34:00 AM

0

On Apr 9, 1:25 am, Jon Rust <wonderdog+rt...@gmail.com> wrote:
>irb(main):001:0> require 'socket'
> LoadError: no such file to load -- socket
>         from (irb):1:in `require'
>         from (irb):1
>
> I see in the console from 'make' that socket was built cleanly. And it's
> in the lib directory:
>
>   lib/ruby/1.8/i686-linux/socket.so
>

It may be a path issue. "strace" in a shell is your friend. Run
"strace ruby yourscript.rb 2>&1 | grep socket | more". It'll how you
what files/directories your new Ruby interpreter actually tries
loading the socket extension from. (strace shows you what system calls
your app calls - it's very flexible, and well worth learning how to
use)

Vidar

Jon Rust

4/9/2008 11:54:00 PM

0

Vidar Hokstad wrote:
> It may be a path issue. "strace" in a shell is your friend. Run
> "strace ruby yourscript.rb 2>&1 | grep socket | more". It'll how you

Glorious. Thanks for the tip/reminder. (slapping forehead)

The socket.so file was installed mode 640. Doh!

stat64("/usr/local/ruby186/lib/ruby/1.8/i686-linux/socket.so",
{st_mode=S_IFREG|0750, st_size=84340, ...}) = 0

open("/usr/local/ruby186/lib/ruby/1.8/i686-linux/socket.so",
O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)


Thanks,
jon

--
Posted via http://www.ruby-....