[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

JRUBY does not find installed gem

Ronald Fischer

5/14/2007 9:15:00 AM

It seems that I am hunted with library search problems....

I installed the net-ssh Gem, and gem indeed installed it at the
default library for Jruby, but still my program can't find the
library!

Here is the installation command and its output:

H:\dl\lang\net-ssh-1.1.1>gem install net-ssh
Bulk updating Gem source index for: http://gems.rub...
Install required dependency needle? [Yn] y
Successfully installed net-ssh-1.1.1
Successfully installed needle-1.3.0
Installing ri documentation for net-ssh-1.1.1...
Installing ri documentation for needle-1.3.0...
Installing RDoc documentation for net-ssh-1.1.1...
Installing RDoc documentation for needle-1.3.0...


This is my Gem environment:

C:\ruby185\lib\ruby\site_ruby>gem environment
RubyGems Environment:
- VERSION: 0.9.1 (0.9.1)
- INSTALLATION DIRECTORY: H:/jruby-0.9.9/lib/ruby/gems/1.8
- GEM PATH:
- H:/jruby-0.9.9/lib/ruby/gems/1.8
- REMOTE SOURCES:
- http://gems.rub...


But when I want to run the following program, I get an error message
saying
that net/ssh is not found:

H:\tmp>type t2.rb
require 'socket'
require 'net/telnet'
require 'net/ssh'

H:\tmp>jruby t2.rb
t2.rb:3:in `require': no such file to load -- net/ssh (LoadError)
from t2.rb:3


Since the library was installed using the "gem" command, jruby should
be able to locate it automatically, doesn't it?

Ronald
--
Ronald Fischer <ronald.fischer@venyon.com>
Phone: +49-89-452133-162


--
Ronald Fischer <ronald.fischer@venyon.com>
Phone: +49-89-452133-162


3 Answers

Jano Svitok

5/14/2007 12:00:00 PM

0

On 5/14/07, Ronald Fischer <ronald.fischer@venyon.com> wrote:
> It seems that I am hunted with library search problems....
>
> I installed the net-ssh Gem, and gem indeed installed it at the
> default library for Jruby, but still my program can't find the
> library!
>
> Here is the installation command and its output:
>
> H:\dl\lang\net-ssh-1.1.1>gem install net-ssh
> Bulk updating Gem source index for: http://gems.rub...
> Install required dependency needle? [Yn] y
> Successfully installed net-ssh-1.1.1
> Successfully installed needle-1.3.0
> Installing ri documentation for net-ssh-1.1.1...
> Installing ri documentation for needle-1.3.0...
> Installing RDoc documentation for net-ssh-1.1.1...
> Installing RDoc documentation for needle-1.3.0...
>
>
> This is my Gem environment:
>
> C:\ruby185\lib\ruby\site_ruby>gem environment
> RubyGems Environment:
> - VERSION: 0.9.1 (0.9.1)
> - INSTALLATION DIRECTORY: H:/jruby-0.9.9/lib/ruby/gems/1.8
> - GEM PATH:
> - H:/jruby-0.9.9/lib/ruby/gems/1.8
> - REMOTE SOURCES:
> - http://gems.rub...
>
>
> But when I want to run the following program, I get an error message
> saying
> that net/ssh is not found:
>
> H:\tmp>type t2.rb
> require 'socket'
> require 'net/telnet'
> require 'net/ssh'
>
> H:\tmp>jruby t2.rb
> t2.rb:3:in `require': no such file to load -- net/ssh (LoadError)
> from t2.rb:3
>
>
> Since the library was installed using the "gem" command, jruby should
> be able to locate it automatically, doesn't it?

I don't know much about jruby, but in normal ruby (MRI) you have to
require 'rubygems', either by adding this line to the source, running
ruby -rubygems or setting $RUBYOPT to rubygems.

Note: If rubygems are loaded you get a different message when a file
is not loaded, similar to the following:

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require__': no such file to load -- zlib
(LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/package.rb:9
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/builder.rb:1
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:61:in `manage_gems'
...

Ronald Fischer

5/14/2007 1:46:00 PM

0

> I don't know much about jruby, but in normal ruby (MRI) you have to
> require 'rubygems', either by adding this line to the source, running
> ruby -rubygems or setting $RUBYOPT to rubygems.

RUBYOPT *is* set to -rubygems, so I guess it is a Jruby problem.

As it turns out, I got an email by Jamis Buck (the author of net-ssh),
that
this package would not run with Jruby anyway, so I need to look for a
completely different solution.

Thank you for helping, though... I wonder whether there is a specific
mailing
list devoted to compatibility issues between Ruby and JRuby. Right now,
I'm
doing a lot of trial and error, to find out what Ruby stuff happens to
work
under JRuby.

Ronald
--
Ronald Fischer <ronald.fischer@venyon.com>
Phone: +49-89-452133-162


Ronald Fischer

5/15/2007 10:35:00 AM

0

> Really the biggest incompatibility is anything that has a native
> extension. So if you go to install a gem and it gives you options for
> what platform to install, chances are it's not going to work.
>
> But Ruby language features should generally be very solid,
> and pure-Ruby
> code should be just fine. So if net-ssh isn't working (or is
> it needle?)
> then it's a bug we will want to fix. Can you report it please?

I created a new issue on the JRUBY project. My user id there is "rovf",
in case you need to look it up.

> (and the JRuby mailing lists are the best place to talk about
> incompatibilities and stuff...I see from your other thread you've now
> joined :)

Yes, it finally worked. I will post future messages specific to JRuby on
that list.

Thank you for all the help.

Ronald