简体   繁体   中英

Error with MySql while doing Bundle Install

When I do Bundle Install, I get following error:

Installing mysql2 (0.3.10) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/manish/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... 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=/Users/manish/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
--with-mysql-config
--without-mysql-config
extconf.rb:33:in ``': No such file or directory - /usr/local/bin/mysql_config --cflags    (Errno::ENOENT)
from extconf.rb:33:in `<main>'


Gem files will remain installed in /Users/manish/.rvm/gems/ruby-1.9.2-p290/gems/mysql2- 0.3.10 for inspection.
Results logged to /Users/manish/.rvm/gems/ruby-1.9.2-p290/gems/mysql2-  0.3.10/ext/mysql2/gem_make.out
An error occured while installing mysql2 (0.3.10), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.10'` succeeds before bundling.

In the Gemfile MySql is something like this:

gem "mysql2", ">=0.3.0"

And when I also try to install MySql using brew followed with sudo it gives following error:

 sudo: unable to execute /usr/local/bin/brew: Permission denied

How can I resolve this?

I found my solution and here it is:

Step 1: Clean Up your previously installed rvm and Xcode

    => rm -rf ~/.rvm    
    => sudo rm -rf /Developer

Step 2: Install Xcode from App Store or the installer might be saved in your Launchpad.

Step 3: Install HomeBrew:

    => mkdir -p /usr/local/Cellar
    => /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

Step 4: Install RVM

    => bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
    => echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" #  Load RVM function' >> ~/.bash_profile

Step 5: Install Ruby 1.9.2

    => rvm install 1.9.2
    => rvm use ruby-1.9.2 --default
    => gem install rails thin bundler
    => rvm install 1.9.2-head
    => brew install git ack wget curl redis memcached libmemcached colordiff imagemagick

Step 6: Install MySql

    => brew install mysql
    => mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
    => mkdir -p ~/Library/LaunchAgents
    => cp /usr/local/Cellar/mysql/5.5.15/com.mysql.mysqld.plist ~/Library/LaunchAgents/
    => launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
    => mysql -u root
    => UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
    => FLUSH PRIVILEGES;

You can download the libraries and pass in their location manually to the gem building process as flags, but that's a bit of a pain.

MySQL was being search for in /usr/local/bin which makes sense for a homebrew install but if sudo brew doesn't work, there's a permissions problem and you're likely to have far more trouble coming.

I'd fix brew honestly b/c that will continue to frustrate you. Normal dance to fix -- repair permissions using Disk Utitlity, run brew doctor to check for problems, implode and reinstall if things get bad.

Good luck

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM