Forum: Ruby install mysql-ruby on RHEL

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.
Richard Navarrete (Guest)
on 2006-02-04 17:58
(Received via mailing list)
Howdy,

I've successfully installed ruby-rails-mysql on my powerbook, on our
Windows server, but am missing something on our Linux box.

Ruby is installed (1.8.4), so is rails (0.8.11).  And I got the
"Congratulations, you put Ruby on Rails!" screen.  I have MySQL
already installed (it's been there for a long time), version 4.0.25).

Now, I need to install the driver for MySQL/Ruby (mysql-ruby-2.7).
Here's how the progression goes:

<code>

[richard@www mysql-ruby-2.7]$ ruby ./extconf.rb --with-mysql-dir=/usr
checking for mysql_query() in -lmysqlclient... yes
checking for mysql_ssl_set()... yes
checking for mysql.h... no
checking for mysql/mysql.h... yes
creating Makefile

[richard@www mysql-ruby-2.7]$ make
gcc -fPIC -g -O2  -I. -I/usr/local/lib/ruby/1.8/i686-linux -I/usr/
local/lib/ruby/1.8/i686-linux -I. -DHAVE_MYSQL_SSL_SET -
DHAVE_MYSQL_MYSQL_H -I/usr/include  -c mysql.c
gcc -shared  -L'/usr/lib' -Wl,-R'/usr/lib' -L'/usr/local/lib' -Wl,-R'/
usr/local/lib' -o mysql.so mysql.o  -lmysqlclient  -ldl -lcrypt -lm
-lc

[richard@www mysql-ruby-2.7]$ ruby ./test.rb localhost root
<myrootpass> test
./test.rb:143: undefined method `client_version' for Mysql:Class
(NoMethodError)

</code>

BTW, I created an empty database called `test`.

Anyone had a similar experience?  Any ideas?

Cheers,
Richard
Oliver A. (Guest)
on 2006-02-04 18:28
(Received via mailing list)
Hi,

I just packaged mysql-ruby for Fedora Core and in my SPEC file I use

ruby extconf.rb --with-mysql-config

This does the trick for me on Fedora Core 4. And I guess it would also
do the trick on a RHEL server. At least it does so for me using RHEL 3.

Kind regards,
Oliver
Richard Navarrete (Guest)
on 2006-02-04 19:08
(Received via mailing list)
Thanks, Oliver.

I don't have a mysql_config, not sure why.  But, I noticed it wasn't
finding the header file (mysql.h), so I ran this:

[richard@www mysql-ruby-2.7]$ make clean
[richard@www mysql-ruby-2.7]$ ruby ./extconf.rb --with-mysql-dir=/usr
--with-mysql-include=/usr/include/mysql
checking for mysql_query() in -lmysqlclient... yes
checking for mysql_ssl_set()... yes
checking for mysql.h... yes
creating Makefile

This time if found it.

[richard@www mysql-ruby-2.7]$ make
gcc -fPIC -g -O2  -I. -I/usr/local/lib/ruby/1.8/i686-linux -I/usr/
local/lib/ruby/1.8/i686-linux -I. -DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_H
-I/usr/include/mysql -I/usr/include  -c mysql.c
gcc -shared  -L'/usr/lib' -Wl,-R'/usr/lib' -L'/usr/local/lib' -Wl,-R'/
usr/local/lib' -o mysql.so mysql.o  -lmysqlclient  -ldl -lcrypt -lm
-lc
[richard@www mysql-ruby-2.7]$ ruby ./test.rb localhost root ertgnhbr
./test.rb:143: undefined method `client_version' for Mysql:Class
(NoMethodError)

Same error.

Could my compiler be the problem?

gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-53)

Thanks,
Richard
Derek C. (Guest)
on 2006-02-04 19:20
(Received via mailing list)
I don't know what is wrong in your case. However, in my case, I
wanted a newer version of MySQL than came with RHEL (RHEL4 has MySQL
v4 - I wanted v5), so I installed a new MySQL from sources into /usr/
local).

Then I did 'gem install mysql -- --with-mysql-dir=/usr/local', and
everything built fine.
Oliver A. (Guest)
on 2006-02-04 19:36
(Received via mailing list)
Hi,

I just checked on my RHEL boxes, and even your method to compile the
module works fine there. What version of MySQL are you using and from
which source did you take it? Official MySQL rpm files from mysql.com?
Self-compiled?

The first strange thing in my eyes is, that mysql_config is not there.
Every rpm I know of installs it in /usr/bin as part of the basic MySQL
package. ANd the second strange thing is the error while running your
test code.

> [richard@www mysql-ruby-2.7]$ ruby ./test.rb localhost root ertgnhbr
> ./test.rb:143: undefined method `client_version' for Mysql:Class
> (NoMethodError)

I don't think that the compiler is the source of your problems. Can you
supply the MySQL version and from where you have taken it? Or where it
is installed?

Regards,
Oliver
Richard Navarrete (Guest)
on 2006-02-04 22:14
(Received via mailing list)
Hey Oliver,

I'm using 4.0.25 and I think it's self compiled or came installed
already.  Unfortunately, I can't remember if I installed it by hand,
but for sure it wasn't using RPMs, because I don't see such tracings
in /usr/src/redhat...

I'm still checking to see how MySQL got there.  heh

So, I assume by your comment that all mysql installations should have
a mysql_config?

Here are a few mysql files/folders I found on my system:

/usr/bin/safe_mysqld
/usr/bin/mysql  ...mysqldump, etc
/usr/include/mysql/libmysqlclient.so
/usr/include/mysql/libmysqlclient.so.10
/usr/include/mysql
/usr/lib/libmysqlclient.so
/usr/lib/libmysqlclient.so.10
/usr/lib/libmysqlclient.so.12
/usr/lib/libmysqlclient_r.so
/usr/lib/libmysqlclient_r.so.10
/usr/lib/libmysqlclient_r.so.12
/usr/lib/mysql
/usr/lib/libmysqlclient.so.10.0.0
/usr/lib/libmysqlclient.so.12.0.0
/usr/lib/libmysqlclient_r.so.10.0.0
/usr/lib/libmysqlclient_r.so.12.0.0

/usr/sbin/mysqld
/usr/share/mysql

I'll see if I can find out how it was installed...

Thanks,
Richard
Logan C. (Guest)
on 2006-02-05 05:30
(Received via mailing list)
On Feb 4, 2006, at 2:04 PM, Richard Navarrete wrote:

> have a mysql_config?
> /usr/lib/libmysqlclient.so.12
> /usr/share/mysql
>> I just checked on my RHEL boxes, and even your method to compile the
>> test code.
>>
>> Regards,
>> Oliver
>>
>> --
>> Oliver A. --- removed_email_address@domain.invalid --- http://roughbook.de/
>>
>
>

Speaking totally out of my rear end here, but it looks like A) its
installed from an rpm (judging by the directories its installed to)
and B) you need to install the -devel version of the rpm. Of course I
could be completely wrong since its been a long time since A) I've
used Linux and B) I almost always use Debian.
Richard Navarrete (Guest)
on 2006-02-05 07:10
(Received via mailing list)
Good call, Logan.

[richard@www richard]$ rpm -qa | grep -i mysql
MySQL-shared-compat-4.0.25-0
mysql-devel-3.23.58-16.RHEL3.1
php-mysql-4.3.2-26.ent
MySQL-server-4.0.25-0
MySQL-client-4.0.25-0

I guess I'll grab the mysql-devel-4.0.25 (if there is such and try to
install it).  Although I'm not sure why mysql_config isn't there.

I'll let you know how it goes.

Thanks!
R
Meiao (Guest)
on 2006-02-06 05:24
(Received via mailing list)
That's right, in Debian you need mysqlclient-dev (or whatever was the
name of the package) to compile ruby-mysql.
Logan C. (Guest)
on 2006-02-06 23:10
(Received via mailing list)
On Feb 5, 2006, at 12:07 AM, Richard Navarrete wrote:

> Although I'm not sure why mysql_config isn't there.

Well, mysql_config should only be there after installing the devel
version, since if it does what I think it does, is show the include
dir and lib dir for mysql. There wouldn't be any include dirs without
the devel package, so even it was installed, it wouldn't help. At
least I think that's what is going on.
Richard Navarrete (Guest)
on 2006-02-07 02:05
(Received via mailing list)
Success!  I spent most of the weekend and today coming back from a
long road.

I went ahead and upgraded from mysql 4.0 to 4.1... I was missing
mysql-devel for starters (as we discussed in this thread).

I ran into lots of issues all of which are unrelated to this forum,
but in the end... having mysql-devel (4.1.16 in my case) and possibly
getting rid of bad glibc libraries, made the installation of mysql-
ruby a breeze.

I used --with-mysql-config... which I had now and it found everything
it needed.

Thank you all for your help!
Richard
This topic is locked and can not be replied to.