Forum: Ruby JRUBY does not find installed gem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ronald F. (Guest)
on 2007-05-14 13:16
(Received via mailing list)
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.rubyforge.org
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.rubyforge.org


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 F. <removed_email_address@domain.invalid>
Phone: +49-89-452133-162
Jano S. (Guest)
on 2007-05-14 16:00
(Received via mailing list)
On 5/14/07, Ronald F. <removed_email_address@domain.invalid> wrote:
> Install required dependency needle? [Yn]  y
> C:\ruby185\lib\ruby\site_ruby>gem environment
> saying
>
>
> 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 F. (Guest)
on 2007-05-14 17:47
(Received via mailing list)
> 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 B. (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
Charles Oliver N. (Guest)
on 2007-05-14 21:58
(Received via mailing list)
Ronald F. wrote:
>
> 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.

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?

(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 :)

- Charlie
Charles Oliver N. (Guest)
on 2007-05-14 22:00
(Received via mailing list)
Ronald F. wrote:
>
> 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.

Also, please do update the wiki (headius.com/jrubywiki) with everything
you find out :)

- Charlie
Ronald F. (Guest)
on 2007-05-15 14:36
(Received via mailing list)
> 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
This topic is locked and can not be replied to.