I'm trying to get gem running with apache server installed in /opt (LAMPP bundle).
There was an error when I tried to install mysql2 gem. After searching I did following:
aptitude install libmysql-ruby libmysqlclient-dev ruby-dev
And then:
gem install mysql2 -- --with-mysql-config=/opt/lampp/bin/mysql_config --with-mysql-dir=/opt/lampp/lib/mysql --with-mysql-lib=/opt/lampp/lib/mysql/ --with-mysql-include=/usr/include/mysql
Here's the response:
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for mysql.h... no
checking for mysql/mysql.h... yes
checking for errmsg.h... no
-----
errmsg.h is missing. please check your installation of mysql and try again.
-----
*** 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/ruby1.9.1
--with-mysql-config
Gem files will remain installed in /var/lib/gems/1.9.1/gems/mysql2-0.3.13 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/mysql2-0.3.13/ext/mysql2/gem_make.out
So, the trouble is errmsg.h library. After installing dev packages ruby found few other missing libraries, e.g. 'mysql.h', but not this one. I have no idea what to do now... I saw many anwers for similar questions here, but none of them was helpful.
Any help will be appreciated.
I finally gave up. Lampp is good for start, but now I need many things that are not bundled and installing them is more and more complicated. I moved everything to virtual machine and it works flawless.
well I know it's quite a long time ago... but I had the same trouble nowadays. you just had do use the include folder of lampp nativly to find all needed dependencies.
so the wording would look like
gem install mysql2 -- --with-mysql-config=/opt/lampp/bin/mysql_config --with-mysql-dir=/opt/lampp/mysql --with-mysql-lib=/opt/lampp/lib/mysql/ --with-mysql-include=/opt/lampp/include/
Related
Ruby version : 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
Rails version : 2.3.5
OS: Cloud Linux 64 bit
I am trying to install mysql gem inorder to get support rails, the command is as follows,
gem install mysql -- --with-mysql-config=/usr/lib64/mysql/mysql_config
am getting the following error,
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-1.8.7-p374/bin/ruby extconf.rb --with-mysql- config=/usr/lib64/mysql/mysql_config
extconf.rb:5: command not found: /usr/lib64/mysql/mysql_config --cflags
*** 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/rvm/rubies/ruby-1.8.7-p374/bin/ruby
--with-mysql-config
Gem files will remain installed in /usr/local/rvm/gems/ruby-1.8.7-p374/gems/mysql-2.9.1 for inspection.
Results logged to /usr/local/rvm/gems/ruby-1.8.7-p374/gems/mysql-2.9.1/ext/mysql_api/gem_make.out
I even tried looking for mkmf.log, but cannot find it.
I am trying to implement a RoR project, which already ran in Cent OS 5.9 64bit. This RoR is designed to be run in the above versions of Ruby & Rails, upgrading will create issues. Please help and direct me.
Seems like you are missing dev parts of libraries.
Do you have libmysqlclient installed?
What is the output of the locate command for the config file?
locate mysql_config
(as an aside its telling me I have code in here and have to format it as such, so if anything looks strange its because it wouldn't let me post it otherwise.)
I've actually reinstalled windows 8 three times in the last two days and actually created a dual boot with Ubuntu with how frustrating this problem has been. (decided learning a whole new operating system was more annoying then trying to fix the windows problem)
So, i'm new to coding in general, but I've been fooling around with ruby and rails and decided to try and get the database stuff working and every time I run into the same sorts of problems, this seems to be some sort of windows 64 bit MySQL ruby version confusion.
I'm using windows 6.1 64 with ruby 2.0.0p353 (2013-11-22) [x64-mingw32] rails 4.0.2 with MySQL 5.6
I've installed the devkit and did the test using ruby -rubygems -e "require 'json'; puts JSON.load('[42]').inspect" and it returned 42 and that whole installation seemed to go fine.
rails installed ruby installed, all -v showing the version I listed.
now when I go to install MySQL gem it gives me this.
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
C:/Ruby200-x64/bin/ruby.exe extconf.rb
checking for main() in -llibmysql... 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.
I read up and tried doing this after installing the MySQL c connector. And it returns as follows.
C:\Users\ryan>gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/mysql-
connector-c-6.1.3-win32/"'
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-mysql-dir="C:/mysql-connector-c-6.1.3-w
in32/"'
This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
C:/Ruby200-x64/bin/ruby.exe extconf.rb --with-mysql-dir="C:/mysql-connector-
c-6.1.3-win32/"
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Cannot find include dir at C:/mysql-connector-c-6.1.3-win32//include
-----
*** 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.
I have devoted days to this problem, and reinstalled more things than I care to admit. Does anyone have any ideas how I could possibly fix this... ?
ok this is what its spitting out now..
C:\Users\ryan>gem install mysql --platform=ruby -- --with-mysql-dir=c:\mysql-con
nector-c-6.1.3-win32
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-mysql-dir=c:\mysql-connector-c-6.1.3-wi
n32'
This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
C:/Ruby200-x64/bin/ruby.exe extconf.rb --with-mysql-dir=c:\mysql-connector-c
-6.1.3-win32
checking for main() in -llibmysql... 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=C:/Ruby200-x64/bin/ruby
--with-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/
--with-libmysqllib
--without-libmysqllib
Gem files will remain installed in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql
-2.9.1 for inspection.
Results logged to C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql-2.9.1/ext/mysql_
api/gem_make.out
gave up and installed windows 7 32 bit on a second harddrive and just use that for rails stuff.
Set that up using an amazing video on youtube I randomly found, but it worked perfectly.
https://www.youtube.com/watch?feature=player_embedded&v=-eFwV8lRu1w
no joke I was close to giving up! It seems like lots of rails problems are oriented around 64 bit windows anyway, but 8.1 can't be helping anything.
It's almost a silly answer to say just give up, and i'm sure its possible to get the most recent version of rails and ruby working on windows 8.1 64 right at this moment, but I think with the effort required it is actually easier for a new person to just install a 32 bit version of, preferably, an earlier version of windows.
I had faced same issue.
You can find solution here.
http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/
Here in the blog a invalid path for mysql-connector-c-noinstall-6.0.2-win32
gem install mysql --platform=ruby -- --with-mysql-dir=C:/mysql-connector-c-noinstall-6.0.2-win32
So for this you have to check your folder structure for mysql-connector then use it.
Thanks
I just need a big help while i was facing this for past 3 months.
I am using windows 8 machine.
I was trying to install ruby in rails.Everything got success.
but while installing mysql gem i can face many errors which i have copied and pasted below
C:\Users\Mounarajan P A>gem install mysql
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
C:/Ruby200-x64/bin/ruby.exe extconf.rb
checking for main() in -llibmysql... 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=C:/Ruby200-x64/bin/ruby
--with-mysql-dir
--without-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/
--with-libmysqllib
--without-libmysqllib
Gem files will remain installed in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql
-2.9.1 for inspection.
Results logged to C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql-2.9.1/ext/mysql_
api/gem_make.out
Actually we should have the native development libraries when installing native extensions. For ubuntu it is libmysql2-dev, the same way find what is the dev lib for windows and install it. That could be solve your problem
Do you mean to use the mysql gem? I thought mysql2 is now the standard/recommended gem to use with mysql databases.
Anyhow, this link might help you to get it installed:
Unable to install mysql2 gem on windows 7
I have looked through multiple questions on stackoverflow and they all gave different solutions to the problem. I git cloned a rails project, ran bundle install, and created a new gemset in rvm using 1.9.3 ruby and figured rails 3.2.13 will also get installed with the bundle install command. In the past I solved this issue by using this guide, http://www.randomactsofsentience.com/2013/05/gem-install-mysql2-missing-mysqlh-on-os.html. I couldn't find mysql folder in user/local, the guide said I need to edit a file and get rid of somelines to resolve the mysql.h missing issue. This file no longer exist? I couldn't find it? maybe I am missing dependencies but I found linux installation ways of these dependencies? maybe I need to install mysql5.5 instead of the latest version but not sure how to specify that? which one of these will solve this for me?
Installing mysql2 (0.3.11)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/judyngai/.rvm/rubies/ruby-1.9.3-p429/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing. please check your installation of mysql and try again.
-----
*** 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
--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=/Users/judyngai/.rvm/rubies/ruby-1.9.3-p429/bin/ruby
--with-mysql-config
--without-mysql-config
Gem files will remain installed in /Users/judyngai/.rvm/gems/ruby-1.9.3-p429#spreeversion /gems/mysql2-0.3.11 for inspection.
Results logged to /Users/judyngai/.rvm/gems/ruby-1.9.3-p429#spreeversion/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
An error occurred while installing mysql2 (0.3.11), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.
You need to set up mysql development headers (thus, .h file extension) first before bundle / gem can build your native mysql extension. Which OS are you on? So I can extend my answer...
E.g. on debian, it would be: apt-get install libmysqlclient-dev (on other systems, it might be named different, like mysql-devel). If you're on OSX, there's that very informative answer on bundle install problem: mysql.h is missing that might help you. And for windows, this might help: Missing mysql.h and trying to find mysql-devel.
I have the JRuby MySQL gem installed on my machine. However, for some reason I had to change to Ruby instead of JRuby and everything seems to be working fine except that the MySQL gem for Ruby isn't installed and now when I try to install it I get following error:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb --with-mysql-dir=/usr/include/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... no
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
checking for main() in -lmygcc... no
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
I googled and found that I might need to install the libmysqlclient12-dev package.
But when I tried doing that, I got following error:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libmysqlclient12-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package libmysqlclient12-dev has no installation candidate
Now I seem to be hitting the wall and not move ahead with this. Any pointers or help will be appreciated.
Cheers
I had the same issue. I did
apt-get install libmysqlclient-dev
on Ubuntu, and it worked.
Which gem command are you using? The ruby one or the jruby one?
Try which gem if you're on *unix.
Have a look at your path to make sure the C-ruby binaries are in front of the JRuby binaries (or remove JRuby from your path if you're not going to use it anymore).
I'm guessing from the package manager that you're running Linux.
libmysqlclient12-dev is an Ubuntu package. If you're running some other distro it's very probably just named something else. I believe that the Fedora package you'd need is mysql-devel. If you do some searching around with the name of your distro and libmysqlclient12-dev you can probably find exactly what it is.
Your distribution may also have pre-built versions of some of the gems. Fedora (which is what I use) doesn't have a mysql gem pre-built, but another distrubution might. In Fedora they're named rubygem-GEMNAME depending on the gem. For example, the sqlite pre-built gem is rubygem-sqlite3-ruby.