2013-10-17 2 views
1

rpm 5.6이 설치된 MySQL 5.6이 설치된 CentOS 6.4 x64에 mysql2 gem을 설치하려고합니다.MySQL 5.6이 설치된 CentOS 6.4 x64에서 mysql2 gem 설치가 실패합니다.

이 방법 :

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

      /usr/local/rbenv/versions/1.9.3-p448/bin/ruby extconf.rb 
    checking for rb_thread_blocking_region()... yes 
    checking for rb_wait_for_single_fd()... yes 
    checking for mysql.h... yes 
    checking for errmsg.h... yes 
    checking for mysqld_error.h... yes 
    creating Makefile 

    make 
    compiling mysql2_ext.c 
    compiling result.c 
    compiling client.c 
    client.c: In function Б─≤rb_raise_mysql2_errorБ─≥: 
    client.c:98: warning: ISO C90 forbids mixed declarations and code 
    client.c: In function Б─≤rb_mysql_client_socketБ─≥: 
    client.c:590: warning: ISO C90 forbids mixed declarations and code 
    linking shared-object mysql2/mysql2.so 
    /usr/bin/ld: cannot find -lmysqlclient_r 
    collect2: ld returned 1 exit status 
    make: *** [mysql2.so] Error 1 


    Gem files will remain installed in /usr/local/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11 for inspection. 
    Results logged to /usr/local/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/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. 

편집 :의 ldconfig -p에서

응답 | 그렙 MySQL의

libmysqlclient_r.so.16 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.16 
    libmysqlclient_r.so.15 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.15 
    libmysqlclient_r.so.14 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.14 
    libmysqlclient_r.so.12 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.12 
    libmysqlclient.so.16 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.16 
    libmysqlclient.so.15 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.15 
    libmysqlclient.so.14 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.14 
    libmysqlclient.so.12 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.12 

답변

1

그것이 libmysql_r.so를 찾을 수없는 것 같다. 시스템이 제대로 구성되지 않았기 때문에 시스템이 설치되어 있지 않거나 시스템을 찾을 수 없습니다. 설치 한 MySQL 패키지를 나열 할 수 있습니까? 시스템에서 libmysqlclient_r.so를 찾을 수 있습니까? ldconfig -p|grep mysql의 출력을 제공 할 수 있습니까?

libmysqlclient_r.so 파일이 없으면 MySQL 클라이언트 패키지가 설치되어 있지 않은 것 같습니다. 적절한 패키지가 설치된 경우 libmysqlclient_r.so를 찾을 수는 있지만 ldconfig -p의 출력에 나타나지 않으면 ldconfig -v을 실행하여 ldconfig 캐시를 업데이트 할 수 있습니다. 도서관에서 가져와야합니다. 그런 다음 보석을 다시 설치하십시오.

+0

질문을 편집하고 ldconfig -p |에서 출력을 추가했습니다. grep mysql. –

+0

그러면 라이브러리가 설치됩니다. 'libmysqlclient_r.so'에 대한 링크가 있어야합니다 :'libmysqlclient_r.so (libc6) =>/usr/lib/libmysqlclient_r.so'. 'ldconfig'를 실행하여 심볼릭 링크를 업데이트 한 다음'ldconfig -p | grep mysql'을 다시 실행하여 보석이 찾고 있는지 확인하십시오 :'libmysqlclient_r.so'. –

3

아무것도하기 전에 나는 이것을 시도하는 것이 좋습니다 :

sudo yum install mysql-devel 
+0

이것은 저에게 도움이되었습니다. 새 VM 빌드에서 동일한 문제가 발생하고 mysql-devel 설치 후 '번들 설치'가 정상적으로 작동합니다. – MattS

1

는 또한 같은 문제 야가 rpm -ivh MySQL-shared-5.6.30-1.el6.x86_64.rpm하여 해결 만났다.