번들러를 통해 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
되고 있는 모든 「 」, 「 」, 「 」, 「 」).yum
RHEL 에서는 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
'programing' 카테고리의 다른 글
CASE 또는 IF ELESSIF를 사용하는 MySQL select 문을 선택하십시오.결과를 얻는 방법을 잘 모르겠습니다. (0) | 2023.01.15 |
---|---|
JavaScript에서 문자열의 동일성을 확인하는 올바른 방법은 무엇입니까? (0) | 2023.01.15 |
enum.values()는 반환되는 enum의 순서입니다. (0) | 2023.01.15 |
워크로드가 IO에 묶여 있을 때 mariadb에서 대량의 데이터를 빠르게 가져오는 방법 (0) | 2023.01.15 |
주소 0에 접속할 수 있을까요? (0) | 2023.01.15 |