Forum: Ruby on Rails "gem install mysql" fails

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.
sporkit (Guest)
on 2009-04-07 01:58
(Received via mailing list)
To sum this up, gem install mysql crashes when looking for version.h.
This is happening after a fresh install of Ruby, Ruby Gems, and the
Mysql gem.  Shouldn't a fresh install of ruby create version.h and
place it in the correct directory?

john: uname -a
FreeBSD sporkit.com 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sun May 7
04:32:43 UTC 2006

john: ruby -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-freebsd6.1]

john: gem list

*** LOCAL GEMS ***

actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
rails (2.3.2)
rake (0.8.4)
rubygems-update (1.3.1)

--------------
john: gem install mysql
/usr/local/bin/ruby extconf.rb install mysql
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

make
gcc -I. -I/usr/local/include/ruby-1.9.1/i386-freebsd6.1 -I/usr/local/
include/ruby-1.9.1/ruby/backward -I/usr/local/include/ruby-1.9.1 -I. -
DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_MYSQL
_H -I/usr/local/include -fPIC -O2 -g -Wall -Wno-parentheses -omysql.o -
c mysql.c
mysql.c:6:21: version.h: No such file or directory
mysql.c: In function `make_field_obj':
mysql.c:185: warning: unused variable `hash'
mysql.c: In function `escape_string':
mysql.c:267: error: structure has no member named `len'
mysql.c:268: error: structure has no member named `len'
mysql.c:268: error: structure has no member named `ptr'
mysql.c:268: error: structure has no member named `ptr'
mysql.c:268: error: structure has no member named `len'
mysql.c: In function `real_escape_string':

-----------------


version.h exists in the old lib directory
/usr/local/lib/ruby/1.8/i386-freebsd6.1

but not the new one
/usr/local/lib/ruby/1.9.1/i386-freebsd6.1

why is that?
Frederick C. (Guest)
on 2009-04-07 02:01
(Received via mailing list)
On Apr 6, 10:36 pm, sporkit <removed_email_address@domain.invalid> wrote:
> To sum this up, gem install mysql crashes when looking for version.h.
> This is happening after a fresh install of Ruby, Ruby Gems, and the
> Mysql gem.  Shouldn't a fresh install of ruby create version.h and
> place it in the correct directory?
I think version.h disappeared in ruby 1.9. Looks like it's trying to
build a version of the mysql gem that isn't compatible with ruby 1.9
(the other errors indicate that too) - i think ruby 1.9.1 needs  2.8.1
(http://rubyforge.org/frs/?group_id=4550)

Fred
sporkit (Guest)
on 2009-04-07 19:09
(Received via mailing list)
Ok, I've followed the instructions and compiled, installed, and tested
successfully.  However mysql is not showing up with the "gem list"
command.

john: gem list

*** LOCAL GEMS ***

actionmailer (2.3.2)
actionpack (2.3.2)
activerecord (2.3.2)
activeresource (2.3.2)
activesupport (2.3.2)
rails (2.3.2)
rake (0.8.4)
rubygems-update (1.3.1)

-----------

And trying to generate a table is causing problems.

john: script/generate model TestThing name:string
/sporkit_data/site_data/railsProjects/jminchuk/config/boot.rb:86:in
`load_rubygems': undefined method `>=' for nil:NilClass
(NoMethodError)


On Apr 6, 5:00 pm, Frederick C. <removed_email_address@domain.invalid>
Frederick C. (Guest)
on 2009-04-07 19:54
(Received via mailing list)
On Apr 7, 4:07 pm, sporkit <removed_email_address@domain.invalid> wrote:
> Ok, I've followed the instructions and compiled, installed, and tested
> successfully.  However mysql is not showing up with the "gem list"
> command.
>
Did you install rubygems yourself? It was my recollection that ruby
1.9 shipped with rubygems built in. Might you have crushed that by
installing it yourself ?

Fred
sporkit (Guest)
on 2009-04-07 21:15
(Received via mailing list)
I believe I did install gems myself at some point.  Although not after
installing 1.9.

john: find / -name gem
/usr/local/bin/gem
/usr/local/lib/ruby/gems/1.8/gems/rubygems-update-1.3.1/bin/gem
/usr/local/lib/ruby/gems/1.9.1/gems/rubygems-update-1.3.1/bin/gem

running

/usr/local/lib/ruby/gems/1.8/gems/rubygems-update-1.3.1/bin/gem list
/usr/local/lib/ruby/gems/1.9.1/gems/rubygems-update-1.3.1/bin/gem list

produce the same output.  neither mention mysql.  after running make
install on the mysql tar, that should have added it to the gems list
automatically?  Is there another step I'm missing?  Here's me
attempting to the latest version of mysql from the remote repository.


john: /usr/local/lib/ruby/gems/1.9.1/gems/rubygems-update-1.3.1/bin/
gem list -r | grep mysql
activerecord-jdbcmysql-adapter (0.9.1)
dbd-mysql (0.4.2)
do_mysql (0.9.11)
jdbc-mysql (5.0.4)
motto-mysql (0.1.0)
mysql (2.7.3, 2.7)
mysql_replication_adapter (0.4.0)
mysql_retry_lost_connection (0.0.1)

john: /usr/local/lib/ruby/gems/1.9.1/gems/rubygems-update-1.3.1/bin/
gem install mysql -v "2.7.3"
ERROR:  could not find gem mysql locally or in a repository

I'm totally out of ideas.  Is there a way I could clean all this up
and try again fresh?  Thanks for the help thus far Fred.

On Apr 7, 10:53 am, Frederick C. <removed_email_address@domain.invalid>
Frederick C. (Guest)
on 2009-04-07 22:22
(Received via mailing list)
On Apr 7, 6:14 pm, sporkit <removed_email_address@domain.invalid> wrote:
> I believe I did install gems myself at some point.  Although not after
> installing 1.9.

fine, just worried you might have installed a version of gem for 1.8
on top of the version of gem that came with 1.9
>
> produce the same output.  neither mention mysql.  after running make
> install on the mysql tar, that should have added it to the gems list
> automatically?  Is there another step I'm missing?  Here's me
> attempting to the latest version of mysql from the remote repository.

make install on the mysql tar might have installed it not as a gem
(but there might be rake files in there for building it as a gem)

Fred
sporkit (Guest)
on 2009-04-07 23:29
(Received via mailing list)
There is no rake file in the source directory.  I think I'm about
ready to just give up on this problem.  Maybe, upgrade my freebsd
system like i've been needing to for years and start using the ports
collection...

:(((((((

On Apr 7, 1:21 pm, Frederick C. <removed_email_address@domain.invalid>
Greg D. (Guest)
on 2009-04-08 01:44
(Received via mailing list)
On Mon, Apr 6, 2009 at 5:00 PM, Frederick C.
<removed_email_address@domain.invalid> wrote:
> I think version.h disappeared in ruby 1.9. Looks like it's trying to
> build a version of the mysql gem that isn't compatible with ruby 1.9
> (the other errors indicate that too) - i think ruby 1.9.1 needs  2.8.1
> (http://rubyforge.org/frs/?group_id=4550)


That's not building yet either, at least not for me:


> cd /usr/src/mysql-ruby-2.8.1

> make clean; make
gcc -I. -I/usr/local/include/ruby-1.9.1/i686-linux
-I/usr/local/include/ruby-1.9.1/ruby/backward
-I/usr/local/include/ruby-1.9.1 -I. -DHAVE_MYSQL_SSL_SET
-DHAVE_RB_STR_SET_LEN -DHAVE_MYSQL_MYSQL_H -I/usr/local/include
-D_FILE_OFFSET_BITS=64  -fPIC  -O2 -g -Wall -Wno-parentheses  -o
mysql.o -c mysql.c
gcc -shared -o mysql.so mysql.o -L. -L/usr/local/lib
-Wl,-R/usr/local/lib -L/usr/local/lib -Wl,-R/usr/local/lib -L.
-rdynamic -Wl,-export-dynamic    -lmysqlclient  -lpthread -lrt-ldl
-lcrypt -lm   -lc
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
make: *** [mysql.so] Error 1

It doesn't find a packaged MySQL provided by my distro nor one
compiled from source by me.



--
Greg D.
http://destiney.com/
cmyk (Guest)
on 2009-05-01 21:17
(Received via mailing list)
I am having the exact same issue.
Any solutions yet?
Christopher S. (Guest)
on 2009-08-08 13:44
There was just a discussion about this over on the railsforum website
and someone seems to have figured it out. Check it -
http://railsforum.com/viewtopic.php?pid=106007#p106007, or more directly
- http://nmanzi.com/?p=39.
Roger P. (Guest)
on 2009-08-08 20:03
cmyk wrote:
> I am having the exact same issue.
> Any solutions yet?

you need to install mysql client headers first, and then [since it's
ruby 1.9] you'll need a newer version than what the gem provides
either download 2.8.1 or a different gem
http://isitruby19.com/mysql
GL.
-r
This topic is locked and can not be replied to.