Error while installing GEM WMQ

Hi,

I am trying to install Ruby WMQ on RHEL6 and SLES11, and it is failing
on
both environments.
Here is what I get:

The scenario is for SuSe Ver 11.

ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 0

gem install rubywmq
Building native extensions. This could take a while…
ERROR: Error installing rubywmq:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/usr/local/bin/ruby
internal:lib/rubygems/custom_require:29:in require': no such file to load -- generate/generate_reason (LoadError) from <internal:lib/rubygems/custom_require>:29:inrequire’
from extconf.rb:18:in `’

Gem files will remain installed in
/usr/local/lib/ruby/gems/1.9.1/gems/rubywmq-1.0.0 for inspection.
Results logged to
/usr/local/lib/ruby/gems/1.9.1/gems/rubywmq-1.0.0/ext/gem_make.out

Red Hat Enterprise Linux Ver 6:

ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

Linux myhost 2.6.32-71.29.1.el6.x86_64 #1 SMP Tue May 10 23:11:30 EDT
2011
x86_64 x86_64 x86_64 GNU/Linux

gem install rubywmq
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/rubygems-update-1.8.0.gemspec:11.
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/nokogiri-1.4.4.gemspec:10.
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/bundler-1.0.13.gemspec:10.
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/rubygems-update-1.8.0.gemspec:11.
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/nokogiri-1.4.4.gemspec:10.
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/bundler-1.0.13.gemspec:10.
Fetching: rubywmq-1.0.0.gem (100%)
Building native extensions. This could take a while…
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/ext/builder.rb:48: warning:
Insecure world writable dir /usr/local/shoes in PATH, mode 040777
ERROR: Error installing rubywmq:
ERROR: Failed to build gem native extension.

    /usr/local/bin/ruby extconf.rb

NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/rubygems-update-1.8.0.gemspec:11.
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/nokogiri-1.4.4.gemspec:10.
NOTE: Gem::Specification#default_executable= is deprecated with no
replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from
/usr/local/lib/ruby/gems/1.9.1/specifications/bundler-1.0.13.gemspec:10.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
–with-opt-dir
–without-opt-dir
–with-opt-include
–without-opt-include=${opt-dir}/include
–with-opt-lib
–without-opt-lib=${opt-dir}/lib
–with-make-prog
–without-make-prog
–srcdir=.
–curdir
–ruby=/usr/local/bin/ruby
internal:lib/rubygems/custom_require:29:in require': no such file to load -- generate/generate_reason (LoadError) from <internal:lib/rubygems/custom_require>:29:inrequire’
from extconf.rb:18:in `’

Gem files will remain installed in
/usr/local/lib/ruby/gems/1.9.1/gems/rubywmq-1.0.0 for inspection.
Results logged to
/usr/local/lib/ruby/gems/1.9.1/gems/rubywmq-1.0.0/ext/gem_make.out

Thank you

Do you have the ruby development libraries installed? In Debian like
distros, this is called something like ruby-dev. Perhaps ruby-devel in
RH like?

Kristofer,

I am not aware of such library.
I search from the root dir find / -name ruby-dev and it came out empty.

The version of ruby that I have installed is:
ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

I can try installing such library if I can find it.

Keep in mind that this is failing on SuSe and Redhhat. Both latest
level!

Thank you

Ruby S. wrote:

/usr/local/bin/ruby extconf.rb
*** extconf.rb failed ***
ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

Kristofer W. [email protected] wrote:

Do, in a terminal, the following:

rpm -qa | grep ruby

That will tell you all RPMs installed that have ‘ruby’ in their name.

In this case, that likely won’t help because he is not using Red Hat’s
ruby package, but some other Ruby in /usr/local (while it could be
from a 3rd-party RPM, it’s probably a source install).

Ruby S., you installed ruby through something like “./configure
&& make && make install”?

On Tue, May 31, 2011 at 4:58 PM, Ruby S. [email protected]
wrote:

gem install rubywmq

internal:lib/rubygems/custom_require:29:in require': no such file to load -- generate/generate_reason (LoadError) from <internal:lib/rubygems/custom_require>:29:in require’
from extconf.rb:18:in `’

The first problem is an incompatibility between this gem’s code and
1.9.2’s default load path (in 1.9.2 “.” is not in the load path so the
require fails). I worry that there will be more serious complications
to come, but we can get past this by running extconf directly:

cd /usr/local/lib/ruby/gems/1.9.1/gems/rubywmq-1.0.0/ext
ruby -I. extconf.rb

At this point it fails for me, becuase I do not have the WebSphere MQ
libraries:

....rvm/gems/ruby-1.9.2-p180/gems/rubywmq-1.0.0/ext/generate/generate_reason.rb:6:in

`initialize’: No such file or directory - /opt/mqm/inc/cmqc.h
(Errno::ENOENT)

But, I assume you do; so, you should get farther down the road.

I’m not sure, but I think the problem is the removal of ‘.’ from the
loadpath in 1.9.
Is there any way to adjust the loadpath with a commandline option to the
gem
command (like the -I switch for ruby)?
Or is the rubywmq gem not 1.9 compatible and one has to adjust the
sourcecode?

2011/6/1 [email protected]

Do, in a terminal, the following:

rpm -qa | grep ruby

That will tell you all RPMs installed that have ‘ruby’ in their name.
Look for one that should be the development libraries for ruby.
According to a quick search on rpm.pbone.net, the library you should
want to see is ‘ruby-devel’. If it isn’t installed, you’ll need to use
yum or yast2 (Does Suse use yast? I only used RHEL/Fedora…) to install
it. The command for that should be something like ‘sudo yum install
ruby-devel’.

First, my thanks to everyone for your help.

Kristofer:

This is inteteresting. The rpm -qa returns a differet version of ruby
than
the ruby -v, as you can see below.
I want to use the latest. So I want to remove version 1.87. However, I
want
to make sure that I don’t break something else on the way!

rpm -qa | grep -i ruby
ruby-devel-1.8.7.299-5.el6_0.1.x86_64
ruby-libs-1.8.7.299-5.el6_0.1.x86_64

[root@oc7871667644 Desktop]# ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
######################## ==========================
#############################

Brabuhr:

I executed the commands you provided and this is the output:

cd /usr/local/lib/ruby/gems/1.9.1/gems/rubywmq-1.0.0/ext
[root@oc7871667644 ext]# ruby -I. extconf.rb
checking for cmqc.h… yes
Generated wmq_reason.c
Generated wmq_const_admin.rb
Generated wmq_const.rb
Generated wmq_structs.c
creating Makefile

Does this mean that I now have a functional Ruby-WMQ? Or do I need any
further command? Normally gem install does it all and I don’t really
know
at what stage I find myself now.

Also, answering your question, I did install ruby via:
“./configure
&& make && make install”
######################## ==========================
#############################

In general, is it safe to remove the old version, 1.8.7 and how should I
do
it? Via the rpm -e?

Again, thank you all for your help. It is really appreciated!

further command? Normally gem install does it all and I don’t really know
at what stage I find myself now.

So far, you just used extconf to create the Makefile for building the C
code.

Next you’ll need to run ‘make’ in that directory; if that works, try
‘make install’.