programing

번들러를 통해 mysql2 gem을 설치하는 중 오류 발생

yoursource 2023. 1. 15. 13:10
반응형

번들러를 통해 mysql2 gem을 설치하는 중 오류 발생

.mysql2보석은 번들러를 경유하지만 다음 오류와 함께 계속 소멸됩니다.

** executing command
/home/cc_rails/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems/installer.rb:483:in 'rescue in block in build_extensions': 
ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/home/cc_rails/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb --with-mysql-config=/usr/bin/mysql_config
checking for rb_thread_blocking_region()... 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
--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=/home/cc_rails/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
--with-mysql-config
Gem files will remain installed for inspection.

을 통해 된 의 것들은 이 과정을 했습니다.--with-mysql-config이치노이하에 근거합니다.

$ which mysql_config
/usr/bin/mysql_config

Bundler 설정에 다음 항목을 추가했습니다.

$ bundle config build.mysql2 --with-mysql-config='/usr/bin/mysql_config'

하지만, 여전히 운이 없습니다. 위와 같은 추락입니다.

있기 mysql.h is missing확인해보니 주변에 있다고 하는데 번들러가 찾을 수가 없더군요

$ find / -name mysql.h
/usr/include/mysql5/mysql/mysql.h

무슨 생각 있어?

대답은 Wrikken이 올린 글과 비슷했다.미래 독자들을 위해 제가 한 일은 다음과 같습니다.

(이는 RHEL 5.5용입니다.Ubuntu/Debian 등에는 유사하지만 다른 명령어가 적용됩니다.)

sudo yum list installed 되고 있는 모든 「 」, 「 」, 「 」, 「 」).yumRHEL 에서는 Red Hat Network Repository [ I use EPEL ]를 추가하여 실행한다.sudo를 참조해 주세요.

는 ★★★★★★★★★★★★★★★★★★★★★★★★★.mysql ★★★★★★★★★★★★★★★★★」mysql-server이 모든 앱에서 하지만 MySQL은 동작하지 mysql-devel한 것입니다.mysql.h is missing을 사용하다

한마디로 말하면, 그 후mysqldump -u root -ppassword --all-databases > full-dump.sql안전을 위해, 그것은 간단한 것으로 고정되었다.

sudo yum install mysql-devel

Ubuntu의 경우 다음을 설치해야 합니다.libmysqlclient-dev libmysqlclient16

mysql을 brew로 설치한 Mac의 경우 다음 솔루션으로 문제를 해결했습니다.

/usr/local/Cellar/mysql/5.6.12/bin에서 mysql_config 파일을 편집하여 cflag 및 cxxflag의 W-compiler 옵션 -Wno-null-conversion 및 -Wno-unused-private-field를 삭제했습니다.

이를 통해 "gem install mysql2"에서 문제가 해결되었습니다.

참고 자료: http://www.randomactsofsentience.com/2013/05/gem-install-mysql2-missing-mysqlh-on-os.html

위의 문제는 mysql-devel 패키지가 시스템에 올바르게 설치되어 있지 않기 때문에 발생합니다.나는 그것을 고치는 방법에 대해 센토스에서 똑같이 설명할 것이다.를 사용하여 패키지를 설치하려고 하면

    yum install mysql-devel

MySql-Administrative 툴과 MySQL 쿼리 브라우저를 설치하면 설치된 기존 패키지와 충돌이 발생할 수 있습니다.

이 경우 기존 mysql2 패키지를 모두 제거하고 다시 설치해야 합니다.

    rpm -qa -last | grep -i mysql
    yum remove MySQL-server-5.5.27-1.rhel5
    yum remove MySQL-client-5.5.27-1.rhel5
    yum remove mysql-gui-tools-5.0r12-1rhel4
    yum remove mysql-query-browser-5.0r12-1rhel4-a

따라서 위와 같이 rpm -qa로 표시된 모든 mysql 항목을 제거할 수 있습니다.

다음으로 mysql-server 및 mysql-client를 설치할 수 있습니다.

    yum install mysql-server
    yum install mysql-client

이제 mysql-devel 패키지 설치를 수행합니다.

    yum install mysql-devel

패키지의 충돌이 없어져 mysql2 gem을 설치할 수 있게 되었습니다.

    gem install mysql2 -v '0.3.11'

이것으로 mysql2 gem이 정상적으로 설치되고 준비가 되었습니다.

같은 에러가 발생했고 우분투 16도 발생했어요아래 명령어를 작성해야 했습니다.

sudo apt-get install libmysqlclient-dev 

다시 작동하죠

이 경우 동작 불량 mysql_config 스크립트가 문제였습니다.명령줄에서 --cflags 옵션을 사용하여 호출하면 다음 항목을 포함하는 일련의 옵션이 반환됩니다.

- Xclang - target - feature - Xclang - aes - Qunused - 인수

어떤 이유로 have_header('mysql')에 문의합니다.extconf.disc 스크립트의 h')는 이러한 옵션이 포함되어 있으면 실패합니다.

mysql_config 파일을 수동으로 편집하여 다음 행에서 해당 옵션에 대한 참조를 삭제했습니다.

cflags=""I$pkgincludedir -Os -w -pipe -march=sys -Xclang -target -target -sys -Qunused -arguments - O2 -g -DDBUG_OFF "#주의: 끝 공간!

이렇게 다시 썼어요.

cflags=""I$pkgincludedir - Os - w - pipe - march = - - - O2 - g - DDBUG _ OFF " #주의: 끝 공간!

오래된 일이라는 것은 알지만, 그래도 zlib 오류가 발생하면 rvm use 라고 입력해 주세요.

(사용하고 있는 버전에 관계없이)

맹세코 내가 그랬을 수도 있어누가 머리 뽑을 때를 대비해서 글을 올렸는데 이게 도움이 될 것 같아요.운이 안 좋으면.:)

fedora 23에 redmine 번들을 설치하는 중에 이 문제가 발생하였습니다.제가 찾은 해결책은 이 명령어를 발행하는 것입니다.sudo dnf install redhat-rpm-config.

이로 인해 mysql2 설치뿐만 아니라 nokogiri와 redcarpet 설치 문제도 해결되었습니다.

mysql Ver 15.1 Distributed 10.0.34-MariaDB를 실행하고 있는 Ubuntu 16.04.4 LTS에서는 readline 5.2를 사용한debian-linux-gnu(x86_64)에 대해 다음과 같이 동작했습니다.

sudo apt-get install libmariadb-client-lgpl-dev

확인했습니다. 현재 설치의 오류 메시지는 실행 중임을 나타냅니다.

apt-get install libmysqlclient-dev

이것 또한 효과가 있을 수 있습니다.

언급URL : https://stackoverflow.com/questions/3754662/errors-installing-mysql2-gem-via-the-bundler

반응형