mysql2 のインストール中にエラーが発生しました:gem ネイティブ拡張機能のビルドに失敗しました
-
25-09-2019 - |
質問
インストールしようとすると問題が発生します mysql2
Rails の宝石。実行してインストールしようとすると bundle install
または gem install mysql2
次のエラーが表示されます。
mysql2 のインストール中にエラーが発生しました:エラー:gem ネイティブ拡張機能のビルドに失敗しました。
これを修正して正常にインストールするにはどうすればよいですか mysql2
?
解決
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 を起動し、[設定] -> [ダウンロード] に移動し、コマンド ライン ツールをインストールします。
あなたはこの問題を得ています。前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