3

私は次のようなクリーンなビルドシステムを持っています

Ubuntu 11.04

Rvm 1.13.5

Ruby 1.9.3p194

Rails 3.2.3

宝石1.8.24

MySql 5.5.24-1(/ usr / localにインストール)

mysql2 gem(0.3.11)をインストールしようとしていますが、次の問題が発生します。

 pal@smurf01:~$ sudo gem install mysql2
   [sudo] password for pal: 
   Building native extensions.  This could take a while...
   ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

        /usr/local/rvm/rubies/ruby-1.9.3-p194/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 client.c
   client.c: In function 'rb_raise_mysql2_error':
   client.c:98:3: warning: ISO C90 forbids mixed declarations and code
   client.c: In function 'rb_mysql_client_socket':
   client.c:590:3: warning: ISO C90 forbids mixed declarations and code
   compiling mysql2_ext.c
   compiling result.c
   linking shared-object mysql2/mysql2.so
   /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient_r.so when searching for -lmysqlclient_r
   /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient_r.a when searching for -lmysqlclient_r
   /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/rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11 for inspection.
   Results logged to /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
 pal@smurf01:~$

最初の質問:UbuntuでMySql5.5.1でRailsmysql2を実行している人はいますか?5.1を搭載した別のシステムで実行しています。サポートされているMySqlバージョンでは、gemの説明があいまいです。

2番目の質問:誰かがこの問題に遭遇しましたか?I±は、過去1年ほどの間、mysql2 gemを使用してさまざまなライブラリの問題と戦ってきましたが、これは異なるようです。

どんな援助もありがたく受けます。

ところで:MySql 5.1に戻すことは有効な解決策です!

よろしく

ピーター

4

4 に答える 4

14

またはちょうどapt-get install libmysqlclient-devそしてそれからgem install mysql2

于 2012-05-29T02:08:16.240 に答える
2

したがって、問題はライブラリといくつかのリンクが欠落していることであるように見えます。次の手順を実行すると、問題が解決しました。

新しいものを入手して、NathanRennieWaldockから提供されたlibmysqlclient-devdebパッケージをインストールします。

 wget http://ppa.launchpad.net/nathan-renniewaldock/ppa/ubuntu/pool/main/m/mysql-5.5/libmysqlclient-dev_5.5.24-1~ppa1~natty_amd64.deb./;l
 dpkg -i libmysqlclient-dev_5.5.24-1~ppa1~natty_amd64.deb

次に、mysqlパスをたどることができないように見えるため、mysql2が必要とするいくつかのリンクを作成します

cd /usr/lib/
ln -s /usr/local/mysql-5.5.24-linux2.6-x86_64/lib/libmysqlclient_r.a .
ln -s /usr/local/mysql-5.5.24-linux2.6-x86_64/lib/libmysqlclient_r.so .
ln -s /usr/local/mysql-5.5.24-linux2.6-x86_64/lib/libmysqlclient_r.so.18 .
ln -s /usr/local/mysql-5.5.24-linux2.6-x86_64/lib/libmysqlclient_r.so.18.0.0 .

mysql2gemを喜んでインストールします

sudo gem install mysql2
  Fetching: mysql2-0.3.11.gem (100%)
  Building native extensions.  This could take a while...
  Successfully installed mysql2-0.3.11
  1 gem installed
  Installing ri documentation for mysq2l-0.3.11...
  Installing RDoc documentation for mysql2-0.3.11...
于 2012-05-21T11:54:14.967 に答える
0

Ubuntu 12.04でも、受け入れられた回答に記載されているppaを使用して同じ問題が発生しました。しかし、私のシステムには、名前に_rが含まれるlibmysqlclientファイルがありませんでした。グーグルで調べてみると、パッケージビルダーがファイルから_rサフィックスを削除し始めたため、11.10から12.04の間に発生した可能性があります。

また、パスはかつて述べたものとは少し異なっていたので、これらは私が作成しなければならなかったシンボリックリンクです:

ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.a ./libmysqlclient_r.a
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so ./libmysqlclient_r.so
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 ./libmysqlclient_r.so.18
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0 ./libmysqlclient_r.so.18.0.0
于 2012-08-21T08:17:37.593 に答える
0

私もこの問題を抱えていました...

dpkg -r mysql-develがやろうとしていたときと同じようにapt-get install libmysqlclient-dev、次のようなエラーが発生しました。

libmysqlclient-devを解凍しています(... / libmysqlclient-dev_5.5.24-0ubuntu0.12.04.1_i386.debから)... dpkg:/var/cache/apt/archives/libmysqlclient-dev_5.5.24-0ubuntu0.12.04の処理中にエラーが発生しました。 1_i386.deb(--unpack):パッケージmysql-devel5.5.28-2にもある'/ usr / bin/mysql_config'を上書きしようとしています

これを行った後、gem install mysql2働いた!わーい :)

于 2012-10-04T15:05:13.553 に答える