mysql2 のインストール中にエラーが発生しました:gem ネイティブ拡張機能のビルドに失敗しました

StackOverflow https://stackoverflow.com/questions/3608287

質問

インストールしようとすると問題が発生します mysql2 Rails の宝石。実行してインストールしようとすると bundle install または gem install mysql2 次のエラーが表示されます。

mysql2 のインストール中にエラーが発生しました:エラー:gem ネイティブ拡張機能のビルドに失敗しました。

これを修正して正常にインストールするにはどうすればよいですか mysql2?

役に立ちましたか?

解決

:Ubuntuの/ Debianと適性を使用して、他のディストリビューションでは、

sudo apt-get install libmysql-ruby libmysqlclient-dev

パッケージlibmysql-rubyは段階的に廃止し、ruby-mysqlに置き換えられました。 私は解決策を見つけたここのです。

libmysql-rubyが見つからないため、

上記のコマンドが作業をしない場合は、次は十分なはずます:

sudo apt-get install libmysqlclient-dev

Red Hatのオン/ CentOSのや他のディストリビューションyumを使用します:

sudo yum install mysql-devel

自作を搭載したMac OS X上で

brew install mysql

他のヒント

私はMacとのオープンソースプログラムをインストールするために使用自作の上です。私は自作をインストールするために、MAC開発ツールをインストールする必要がありましたが、それは簡単だったそのあとます:

brew install mysql
MySQLをインストールするには、

。私は以来、mysqlの宝石の問題はありませんでした。

ここに解決策があります ウィンドウズユーザー, 、 それが役に立てば幸い!

Windows 上の Rails 3 で MySQL を使用する

  • レールインストーラーをインストールする -> www.railsinstaller.org (私はc: ailsにインストールしました)

  • MySQLをインストールする (MySQL 5.5を使用しました) -> dev.mysql.com/downloads/installer/

--- mySQL インストールの場合 ---

まだお持ちでない場合 これら 2 つのファイル インストールされている場合、MySQL を動作させるために必要になる場合があります

vcredist_x86.exe -> http://www.microsoft.com/download/en/details.aspx?id=5555dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx?id=17718

デフォルトのインストール開発者マシンを使用します

-MySQLサーバー構成-
ポート:3306
Windows サービス名:MySQL55
mysql ルートパス:root (これは後で変更できます)
(ユーザー名:根)
-MySQLサーバー構成-

--- mySQL インストールの場合 ---


--- mysql2 Gem をインストールします ---

重要: Git Bash コマンドラインでこれを行う(これはrailsinstallerでインストールされました) -> start/Git Bash

gem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.5\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.5\含む"'

これで gem が正しくインストールされたはずです

最後に、libmysql.dll ファイルをコピーします。
C:\Program Files\MySQL\MySQL Server 5.5\lib

C: ails uby1.9.2\bin

--- mysql2 Gem をインストールします ---


これで、MySQL で Rails アプリを使用できるようになります。MySQL で Rails 3 アプリを作成する方法がわからない場合は、以下をお読みください。


--- Rails 3 アプリを MySQL で動作させる ---

コマンドプロンプトを開きます(Git Bashではありません) -> start/cmd
フォルダー (c:\Sites) に移動します。
新しい Rails アプリを作成する

rails new world

ファイル c:\Sites\world\public\index.html を削除します。
ファイル c:\Sites\world\config outes.rb を編集します。
この行を追加します -> root :to => 'cities#index'

コマンド プロンプトを開く (ビューとコントローラーを生成)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer



ファイル c:\Sites\world\app\models\city.rb を次のように編集します。

class City < ActiveRecord::Base
 set_table_name "city"
end

ファイル c:\Sites\world\config\database.yml を次のように編集します。

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

gemfile に追加

gem 'mysql2'

開ける コマンド・プロンプト Git Bash ではなく Windows cmd (アプリを実行してください!)
アプリフォルダー (c:\Sites\world) に移動します。

rails s

ここでブラウザを開きます -> http://ローカルホスト:3000

--- Rails 3 アプリを MySQL で動作させる ---

私はいくつかのコンピュータは、32および64ビットプロセッサは、彼らはUbuntu Linuxの上で実行する必要があり、マーベリック(10.10)リリース。

私は同じ問題を抱えていた、と私のために、 sudo apt-get install libmysql-ruby libmysqlclient-dev の 仕事をしてくれた!!!

MacOS ユーザーのための別の方法

「brew」を使用して mysql をインストールした場合:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

x.x.x = インストールする mysql2 gem のバージョン
y.y.y = インストールした mysql のバージョン ls /usr/local/Cellar/mysql それを見つけるために。

は、使用して試してみました。

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

?宝石のインストールを完了するために必要なMySQLのライブラリにthebaseディレクトリの場所だけでなく、パスを指定するには、

ソース: のMySQL宝石はERRORをインストールします。ビルド宝石ネイティブ拡張するに失敗しました。 RubyのバインディングのMySQLのインストールを必要と MySQLのフォーラム::ルビー::ヘルプ

あなたがしようyumを使用している場合:

sudo yum install mysql-devel

このWindowsで一度私の問題を解決します:

subst X: "C:\Program files\MySQL\MySQL Server 5.5" 
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt 
subst X: /D

それでも問題が解決しない場合は…。

インストールしてみる

   sudo apt-get install ruby1.9.1-dev

私は、これは明らかに非互換性の問題であり、次のように解決策があるのWindows 7でこの問題を持っています:

古いInstantRailsインストーラからlibmySQL.dllファイルをダウンロードしてください。これは InstantRails GitHubのレポから入手可能です。 のます。

次に、あなたのRuby / binフォルダにそのファイルをコピーします。

さて、あなたは行ってもいいです;)

のために MacOS モハベ:

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include

私も、このエラーを得ました。開発パッケージをインストールすることで解決しました。私はアーチを使用していますし、それがあった。

sudo pacman -S base-devel

インストールされます:

m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config

が、私はそれが実際にメイクとgccが必要だと思います。エラー出力(他の中で、私のマシン上で)言っます:

"あなたが最初に開発ツールをインストールする必要があります。"

それは明らか決断だったので、それが役立っています。

あなたは、いくつかの依存関係をインストールする必要があります。

sudo apt-get install libmysql-ruby libmysqlclient-dev

私のために働いたパッケージだったにDebianストレッチのデフォルト-libmysqlclientの-devの

sudo apt-get update && apt-get install -y default-libmysqlclient-dev

私は自分のMac上でこのエラーに実行していると私は離れて行くために、このエラーを取得するために64ビットをMySQLへのMySQLの32bit版からアップグレードするために必要なことが判明しました。私はルビー1.9.2とrails3.0.0とMacBook ProのインテルにOSX 10.6を実行していた。

私も宝石をコンパイルするのに必要とされる「メイク」のようなUnixユーティリティを取得するために、Xcodeのインストールに必要なます。

これが行われた後、私は宝石は、MySQLや宝石がエラーなしでmysql2をインストールインストールを実行することができました。

私の場合、これは助けます:

$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"

するとます:

gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib

結果:

Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed

このポストする(警告:日本語の内側)を参照してください。

Windowsユーザーの場合: あなたはyoureのXAMPPを使用している場合、あなたはこのようにすることができ、例えば、LIBを設定し、あなたのmysqlのパスが含まれます:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

ソリューションは Mac OS X でのみ動作します

MySQL を homebrew でインストールしている場合、私にとってうまくいったのは、MySQL をアンインストールし、MySQL Web サイト (https://www.mysql.com/).

インストール後、コマンドを再入力するだけです。 gem install mysql2 または必要に応じて、 sudo gem install mysql2, 、許可が拒否された問題が発生している場合。

私の宝石は、Mac OS X 10.6.6による上に構築されました 1)パッケージがインストールされている開発ツールの確保 2)ソースから)私の場合、現在のMySQLパッケージ(5.5.8をダウンロード 3)cmake.orgからcmakeのツールをインストールします 4)MySQLの配布ファイルからインストール-SOURCEのセクション2.11の指示に従って 5)sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include 宝石が正常に構築されたが、RDOCとRIが文句を言うことをドキュメントの2個のエラーがあります。 しかし、今、私は「mysql2」を必要としようとしたとき、私は

を取得
LoadError: no such file to load -- mysql2/mysql2

私はなるだろうエラーは、我々は(install_name_toolで検索)別のポストでそのアウトを考え出しのでlibmysqlclient.16.dylibが見つからなかったということでした期待していた。

私の$ PATHが(のが私のソースと構築されたファイルがどこにあること)、それには/ usr / local / mysqlのを持って、私は少し困惑してそう。誰がどんな考えを持っている場合、私は睡眠の数時間後に戻って確認します。

- まだエラーを取得した場合、

、その後にレール3上mysql2宝石のインストールの手順に従ってください

ます。http:// rorguide。 blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.htmlする

利用者のほとんどがmysql2宝石をインストールすることができました。

はmysql-devの問題が修正取得した後、あなたが悪いmysql2のインストール、削除する必要があるかもしれません。インストールバンドル$の後にメッセージを注意深く確認してください。あなたは、

する必要があるかもしれません
rm -rf vendor/cache/
rm -rf ./Zentest

最後の$がインストールバンドルように、これは悪いmysql2のインストールをクリアします良いものを作成することができます。

そして、本当に私の作品ルビービンにコピーmysqllib.dllの正しいバージョンをダウンロードしてください。このリンクをたどっ間違ったMySQLクライアントライブラリのコンパイルplases mysql2宝石

「最初に開発ツールをインストールする必要があります」を入手しました。 MySQL2 GEMをインストールしようとするときのエラー Mac OS X Mountain Lion にアップグレードした後. 。どうやらこのアップグレードを行うとコマンドラインコンパイラが削除されるようです。

修正するには:

  • 非常に古いバージョンの Xcode をアンインストールしました (/Developer/Library でアンインストール スクリプトを実行しました)。次に、/Developer ディレクトリを削除しました。
  • AppStoreにアクセスしてXcodeをダウンロードしました。
  • Xcode を起動し、[設定] -> [ダウンロード] に移動し、コマンド ライン ツールをインストールします。
MySQLをインストールしていないので、

あなたはこの問題を得ています。前mysql2宝石をインストールします。 MySQLをインストールします。 mysql2宝石がインストールされることをした後。

私はただの Macユーザーのために特別にこの答えを追加したい。

私は私のXcodeを更新するまで、

私のサーバーは完全に罰金実行していました。私のレールのサーバを起動中にエラーが次のように示されました。

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

、エラーメッセージの最後にmysql2宝石をインストールするための提案がありました。私はそれをインストールしようとしたときに、この問題に言及した上記のように、私はエラーを得ました。

次のように私が得たエラーがあります
ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.
この記事で示唆したように、私は「MySQLをインストールBREW」しようと、それは、MySQLのバージョンはとてもので、すでにインストールされていることを言って辞め。しかし、言って、その前に警告があった。

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license
それから私は、最後にこのsudo xcodebuild -licenseとタイプ「同意する」を試してみました。あなたはライセンスに同意するには、rootユーザーである必要はあります。

は、この後、私は再びインストールしようとしたバンドルして、すべてが通常通り正常に動作しています。 [これでもXcodeのupdationのために、私も自分の塔で問題を抱えていた。

libmysql-rubyは段階的に廃止し、交換されています。新しいコマンド:

 sudo apt-get install ruby-mysql libmysqlclient-dev

申し訳ありませんが、このために spacemonkeyの答えの上のコメントでなければなりませんが、私にそれを行うのに十分な評判を持っていません。

私はあなたがmariadbの代わりに、CentOSの7上のMySQLを使用している場合、あなただけのエラーを修正するMariaDB-共有パッケージをインストールする必要があることを追加したいと思う。

yum install MariaDB-shared -y
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top