sourcecode

Ruby gem mysql2 설치 실패

copyscript 2022. 9. 5. 23:11
반응형

Ruby gem mysql2 설치 실패

mysql2 gem 설치 시 명백한 오류 없이 실패합니다.mysql2를 설치하기 위해 어떻게 대처해야 하는지 아는 사람 있나요?

$ sudo gem install mysql2
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... no
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... no
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
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/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
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out

Ubuntu:

sudo apt-get install libmysqlclient-dev  #(mysql development headers)
sudo gem install mysql2 -- --with-mysql-dir=/etc/mysql/

바로 그거야!

결과:

Building native extensions. This could take a while...
Successfully installed mysql2-0.2.6
1 gem installed
Installing ri documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Result not known
Enclosing class/module 'mMysql2' for class Client not known
Installing RDoc documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Result not known
Enclosing class/module 'mMysql2' for class Client not known

mysql2를 올바르게 컴파일하려면 MySQL 개발 헤더가 필요합니다.대부분의 기능은 C로 작성되어 MySQL에 대해 링크되기 때문에 이것이 필요합니다.

해결책은 다음과 같이 명시적으로 gem instra를 mysql 설치 폴더로 지정하는 것입니다.

gem install mysql2 -- --with-mysql-dir=/usr/local/mysql
# or where ever you installed your mysql server to

또는 mysql 서버를 알려진 위치에 설치한 후(를 들어 홈브루를 사용하여) 보석을 설치합니다.

# install the mysql server locally
brew install mysql
# install the gem
gem install mysql2

어느 어프로치에서도, 필요한 GCC 컴파일러를 사용하려면 , XCode 가 설치되어 있어야 합니다.

컴퓨터에 64비트 MySQL이 설치되어 있어야 하며 xcode 설치 시 제공되는 빌드 도구도 필요합니다.

Brew와 MySQL을 설치한 상태에서 다음을 사용하여 mysql2 gem을 설치했습니다.

gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.5.10/bin/mysql_config

Bundler를 사용하는 경우 다음 명령을 사용하여 Bundler에 이 사실을 알릴 수 있습니다.

bundle config build.mysql2 --with-mysql-config=/usr/local//Cellar/mysql/5.5.10/bin/mysql_config

여기에 기재된 바와 같이 http://gembundler.com/man/bundle-config.1.html

Mac OSX Moutain Lion에서는 다음 명령어를 사용할 수 있었습니다.

gem install mysql2 -- --srcdir=/usr/local/mysql/include

Ubuntu 15.04:

sudo apt-get install libmysqlclient-dev
sudo gem install mysql2

Ubuntu-16.04:

sudo apt-get install ruby-mysql2
sudo gem install mysql2

출력:

Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.19
Parsing documentation for mysql2-0.3.19
Installing ri documentation for mysql2-0.3.19
Done installing documentation for mysql2 after 0 seconds
1 gem installed

이 스레드는 MySQL 웹사이트 http://forums.mysql.com/read.php?116,178217,178217,에서 확인할 수 있습니다.특히 Scott Derrick의 답변은 http://forums.mysql.com/read.php?116,178217,189357#msg-189357 입니다.

좀 더 구체적으로 말하면

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

도움이 됐으면 좋겠다.

Centos 6.x(7은 SCL(소프트웨어 컬렉션) rh-mysql을 사용하는 경우):

scl enable rh-mysql56 bash
gem install mysql2 -v '0.4.5' -- --with-mysql-include=/opt/rh/rh-mysql56/root/usr/include --with-mysql-lib=/opt/rh/rh-mysql56/root/usr/lib64

2일간 인터넷과 스택 오버플로우를 조사했는데, 이 링크발견하고 나서 mysql2 티켓 작업을 시작하고 나서야 실제로 문제를 해결했습니다.

설정(티켓에 기재되어 있는 바와 같이)을 사용하면 -Wno-null-conversion -Wno-unused-private-field의 컴파일러 스위치가 고장나 오류가 발생합니다.이거는 다음과 같습니다.

mysql.h is missing. please check your installation of mysql and try again

brew나 macports를 사용하여 디렉토리가 어디에 있는지 구체적으로 설명함으로써 이 문제를 해결했습니다(단, mac의 루비는 rvm과 함께 설치되었으며, os x와 함께 제공되는 기본 디렉토리는 사용하지 않습니다).

에 추가gem install mysql2

  • --srcdir="..." - 포함 - 포함 - 포함 - 포함.
  • --with-mysql-dir="..." - mysql " " "
  • --with-mysql-config="..." "

gem install mysql2 --srcdir=/usr/local/mysql/include/ --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config

'라고 치면rvm use ruby-2.1.0@rails4.0 --create의 「 」, 「 」를 참조해 주세요.bundle install그건 효과가 있다.

언급URL : https://stackoverflow.com/questions/4115126/ruby-gem-mysql2-install-failing

반응형