web-dev-qa-db-ja.com

Windows7にMySQL2gemをインストールできません

インストール中に次のエラーメッセージが表示されます。詳細を投稿する必要がある場合はお知らせください。

次の場所からの指示に従いました: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

Ruby 1.9.2p136(2010-12-25)[i386-mingw32]を使用しています。

これが私が得るものです:

E:\work_desk\trunk>gem install mysql2 -v 0.2.4
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

C:/Ruby192/bin/Ruby.exe extconf.rb
checking for rb_thread_blocking_region()... yes
checking for main() in -llibmysql... no
*** 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=C:/Ruby192/bin/Ruby
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/lib
        --with-libmysqllib
        --without-libmysqllib


Gem files will remain installed in C:/Ruby192/lib/Ruby/gems/1.9.1/gems/mysql2-0.
2.4 for inspection.
Results logged to C:/Ruby192/lib/Ruby/gems/1.9.1/gems/mysql2-0.2.4/ext/mysql2/ge
m_make.out
16
Lohith MV

インストールしようとしているmysql2gemの特定のバージョン(0.2.4)には、Windowsのバイナリがないだけでなく、Windowsで問題があります。

バージョンを示さずにmysql2gemをインストールしてください。

gem install mysql2

これは最新バージョン(これを投稿した時点では0.2.6)をインストールし、コンパイル手順をスキップするWindows用のバイナリも提供します。

それでもコンパイルを強制したい場合(MySQLのバージョンがバイナリgemの生成に使用されたものと異なるため、RubyInstallerのDevKitをインストールする必要がありますRubyInstaller Webサイトから:

http://rubyinstaller.org/downloads

そして、私たちのウィキから DevKitのインストール手順 に従ってください(ダウンロードページからリンクされています)

Gemのインストールプロセス中にヘッダーとライブラリの両方へのパスを指定し、次の手順でMySQLのインストール場所を調整する必要があります。

subst X: "C:\Program Files (x86)\MySQL\MySQL Server 5.1" 
gem install mysql2 --platform=Ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt 
subst X: /D

上記のコマンドは、substを使用して、スペースのあるパスの問題を回避します。これは、常に回避する必要があります

お役に立てれば。

31
Luis Lavena

それを機能させる方法を探し回った後、私はついにコマンドプロンプトで次のようにインストールしました:

gem install mysql2 -v 0.2.6

次の結果が得られます。

Fetching: mysql2-0.2.6-x86-mingw32.gem (100%)
Successfully installed mysql2-0.2.6-x86-minw32
1 gem installed
Installing ri documentation for mysql2-0.2.6-x86-mingw32...
Enclosing class/module 'mMysql2' for class Client not known
Installing RDoc documentation for mysql2-0.2.6-x86-mingw32...
Enclosing class/module 'mMysql2' for class Client not known

それを試してみてください。動作するはずです。

18
Sawant

それでもWindows7にmysql2gemをインストールできない場合、または従う手順が明確でない場合は、この投稿を読んでください。ステップバイステップのインストールに役立ちます--- http://rorguide.blogspot。 com/2011/03/installing-mysql2-gem-on-Ruby-192-and.html

また、mysql_api.soエラー(C:/Ruby192/lib/Ruby/gems/1.9.1/gems/mysql-2.8.1-x86-mingw32/lib/1.9/mysql_api.so)の場合は、「libmySQL.dll」ファイルをC:\Program Files\MySQL\MySQL Server 5.1\binからC:\Ruby192\binにコピーします。

インストールのパスは異なる場合があります。詳細については、この投稿を参照してください http://rorguide.blogspot.com/2011/03/getting-error-specified-module-could.html

うまくいけば、これはあなたの問題を整理するのに役立つでしょう。

3
Ritesh Kumar

RailsInstallerから始めます。

これは、mysqlサーバーをローカルで実行していて(ローカル開発)、Rubyが32ビットでコンパイルされていることを前提としています。(チェックRuby -v。 x64 || i386。)

Mysql-community-web-installerをダウンロードします。右上2ビットを選択。ほとんどの場合、サーバーが必要です。ワークベンチも便利です。

Gemコマンドにはスペースを含まないパスが必要なので、substを使用します。

subst X: "C:\Program Files (x86)\MySQL\MySQL Server 5.6"
gem install mysql2 -v=0.3.13 --platform=Ruby -- --with-mysql-dir=X:

PATHにlibmysql.dllが必要です。最も簡単な方法は、Rubyのbinディレクトリにコピーすることです。

copy "C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\libmysql.dll" "C:\RailsInstaller\Ruby2.0.0\bin"

ノート

PowerShellからこれを行わないでください! (DevKitはPowerShellでパス情報を変更するのに問題があります。)

RailsInstallerのRubyなどはすべて32ビットでコンパイルされており、32ビットライブラリにリンクする必要があるため、すべてのライブラリが32ビットであることを確認してください。

サーバーをローカルに配置したくない場合は、Cコネクタをインストールし、そのディレクトリとlibmysql.dllを使用してこれらの手順を実行します。混在させないでください。dllがgemをコンパイルしたバージョンと一致していることを確認してください。

2
Duke

これから:

checking for main() in -llibmysql... no

mySQLドライバとアプリをインストールしていないようです。もしそうなら、彼らは彼らのデフォルトの場所にインストールすることを許可されましたか?サーバーが別のマシンで実行されている場合は、少なくともクライアントソフトウェアが必要になります。

0
the Tin Man

@Mrk Fldigの解決策を試しましたが、うまくいきませんでした...問題を解決したのは次のとおりです。

  1. 最新のMySQLをダウンロード インストーラー Windows 732ビット用
  2. 次のコマンドでgemをインストールしました:gem install mysql2 --platform=Ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

注意すべき落とし穴の1つは、円記号(\)を通常のスラッシュ(/)に変更したことです。バックスラッシュを使用して同じ手順を試しましたが、機能しませんでした。

インストーラーには、MySQL用のCコネクターがMySQL Connector C 6.1 6.1.2ディレクトリーにすでに含まれています。したがって、--with-mysql-dirまたは--with-mysql-libパラメータなしで--with-mysql-includeパラメータのみを渡すと、gemはlibincludeの同じディレクトリを参照します。ディレクトリ

0
  1. 32ビットmysqlコネクタ/ cをインストールします ここ
  2. connector/cをインストールしたディレクトリから%installed Ruby directory%/ bin /にlibmysql.dllをコピーします。

次に、gemを再度再インストールします。

0
Yakob Ubaidi