Rails (and MySQL) on Linux - gem install mysql

Hi,
I could use some suggestions on how to get Rails running properly on a
Linux vserver running SuSE Linux Enterprise Server 10.

The application is not working as expected, on certain requests the
server dies. In the log file I see MySQL connection problems. I don't
have the MySQL gem installed so this is probably to be expected.

Assuming I really need this MySQL gem, the question is now how this
can be installed?

gem install mysql is not working:
user@epf:~> sudo gem install mysql
root's password:
Bulk updating Gem source index for: http://gems.rubyforge.org
Select which gem to install for your platform (x86_64-linux)
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. Skip this gem
6. Cancel installation

3

Building native extensions. This could take a while...
ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError)
    ERROR: Failed to build gem native extension.

ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
*** 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/bin/ruby
        --with-mysql-config
        --without-mysql-config
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-mlib
        --without-mlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-zlib
        --without-zlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-socketlib
        --without-socketlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-nsllib
        --without-nsllib
        --with-mysqlclientlib
        --without-mysqlclientlib

In the readme of the gem some suggestions are offered for installing
this. These also don't work, for instance:
ruby extconf.rb
ruby extconf.rb --with-mysql-dir=/usr/bin
ruby extconf.rb --without-mysqlclientlib

env LD_RUN_PATH=/usr/lib64/
ruby extconf.rb

Thanks and Regards,
Onno

Hi,

Do you have the MySQL development library installed?

Off the top of my head,

sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql

should work assuming /usr/local/mysql has an include folder with the headers and a lib folder with the libraries.

Fred

I'm not sure, because when I do this:
rpm -ivh mysql-devel-5.0.26-14.x86_64.rpm
it reports and error:
error: Failed dependencies:
        mysql-shared = 5.0.26 is needed by mysql-
devel-5.0.26-14.x86_64

I searched for 'libmysqlclient.so' on rpm.pbone.net and foundtwo rpm's
SuSE 10.X ftp.suse.com/pub/update/10.2/rpm/x86_64/mysql-
devel-5.0.26-14.x86_64.rpm
SuSE 10.X ftp.suse.com/pub/update/10.1/rpm/x86_64/mysql-
devel-5.0.26-12.13.x86_64.rpm

So I tried the one with the highest version number.

But I think I have it installed because when I do a global find on
'libmysqlclient' there are some hits:
epf:/home/user/migration/soft # find / -name 'libmysqlclient*'
/usr/lib64/mysql/libmysqlclient_r.so.15.0.0
/usr/lib64/mysql/libmysqlclient_r.so.15
/usr/lib64/mysql/libmysqlclient.so.15
/usr/lib64/mysql/libmysqlclient.so.15.0.0
/usr/lib64/libmysqlclient_r.so.15.0.0
/usr/lib64/libmysqlclient_r.so.15
/usr/lib64/libmysqlclient.so.15
/usr/lib64/libmysqlclient.so.15.0.0

Thanks and Regards,
Onno

I'm not sure where my mysql dir is, the mysql exe is in /usr/bin and
it fails when I provide that directory:
epf:/home/user/migration/soft # sudo gem install mysql -- --with-mysql-
dir=/usr/bin
Select which gem to install for your platform (x86_64-linux)
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. Skip this gem
6. Cancel installation

3

Building native extensions. This could take a while...
ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError)
    ERROR: Failed to build gem native extension.

ruby extconf.rb install mysql -- --with-mysql-dir=/usr/bin
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
*** 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/bin/ruby
        --with-mysql-config
        --without-mysql-config
        --with-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-mlib
        --without-mlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-zlib
        --without-zlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-socketlib
        --without-socketlib
        --with-mysqlclientlib
        --without-mysqlclientlib
        --with-nsllib
        --without-nsllib
        --with-mysqlclientlib
        --without-mysqlclientlib

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/
mysql-2.7 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
epf:/home/user/migration/soft #

Instructions to fix this are here:

http://articles.slicehost.com/2008/7/8/ubuntu-hardy-installing-mysql-with-rails-and-php-options

On unix systems you can typically do "which mysql_config" and you'll
find that the libraries are "$(which mysql_config)/../lib".

Then you can use Fred's tip and:

gem install mysql -- --with-mysql-config=$(which mysql_config)

Rick

Hi,
I am also getting same error. I tried all options but still error is
there.
Can anyone point me to correct answer?
I don't why the rails have this much of trouble.

Thanks,
Tushar