簡體   English   中英

在使用MySQL 5.6的CentOS 6.4 x64上mysql2 gem安裝失敗

[英]mysql2 gem installation failes on CentOS 6.4 x64 with MySQL 5.6

嘗試在安裝了rpm的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的響應| grep 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

在做任何事情之前,我建議嘗試一下:

sudo yum install mysql-devel

似乎找不到libmysql_r.so。 由於未正確配置,因此未安裝或系統找不到它。 您可以列出已安裝的MySQL軟件包嗎? 您可以在系統上找到libmysqlclient_r.so嗎? 您能給我們ldconfig -p|grep mysql的輸出嗎?

如果沒有libmysqlclient_r.so文件,則可能沒有安裝MySQL客戶端軟件包。 如果安裝了正確的軟件包,則可以找到libmysqlclient_r.so,但它不會出現在ldconfig -p的輸出中,您可以通過運行ldconfig -v來更新ldconfig緩存。 它應該拿起圖書館。 然后嘗試再次安裝gem。

我也遇到了同樣的問題,我通過rpm -ivh MySQL-shared-5.6.30-1.el6.x86_64.rpm解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM