このエラーが発生しました:
Sudo gem install mysql2
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
/usr/bin/Ruby1.8 extconf.rb
checking for rb_thread_blocking_region()... no
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing. please check your installation of mysql and try again.
-----
*** 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=/usr/bin/Ruby1.8
--with-mysql-config
--without-mysql-config
Gem files will remain installed in /var/lib/gems/1.8/gems/mysql2-0.2.6 for inspection.
Results logged to /var/lib/gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out
私が試してみました:
どうすればこれを修正できますか?
libmysqlclient-dev
gemをインストールする前に、mysql2
をインストールする必要があります。
Sudo apt-get install libmysqlclient-dev
gem install mysql2
これにより、最新のUbuntuバージョンでこの問題が修正されるはずです。
AndreSchweighoferに感謝します
Sudo apt-get install libmysqlclient-dev
gem install mysql2
..
bundle update
bundle install
完了!!!
Mysql開発パッケージをインストールする必要があります
yum install mysql-devel
ここで検索を使用するのは大変です;): Ruby-mysql
ここに別のスレッドがあります;)同じ問題があります: Ruby-mysql2
「Rubymysql2」などを検索すると、さらに多くのことができます。
これらはこの失敗の複数の原因です:
ソリューション
最新の安定版リリースでrvmをインストールします。rvmを介してRubyバージョン間で切り替えることができます
curl -L https://get.rvm.io | bash -s stable
依存関係をインストールします
Sudo apt-get install libmysqlclient-dev
gem install mysql -- --with-mysql-config=/path/to/mysql_config
私が解決した方法は、mkmf.logを調べることでした。私の場合は./gems/Ruby-2.2.3/extensions/x86_64-linux/2.2.0/mysql2-0.4.2/mkmf.logのどこかにありました。
私の場合、-lgmpが見つからないというエラーがあったため、gmpライブラリが見つからなかったため、apt-get(この場合はlibgmp-dev)を介してインストールされました。
Mysqlがバイナリを更新したことが原因である可能性があり(私の場合はMariadb-10.0.31を使用していました)、不足しているライブラリ(libmysqlclient-dev)をインストールすると、解決できないという次のメッセージが表示されました。
$ Sudo apt-get install libmysqlclient-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libmysqlclient-dev : Depends: libmysqlclient18 (= 5.5.58-0ubuntu0.14.04.1)
しかし、最初にlibmariadbclient-dev as:-をインストールすることで、上記の問題を解決しました。
$ Sudo apt-get install libmariadbclient-dev
libmysqlclient-devもインストールされますが、最初にmariadbの依存関係を解決します。
Ubuntu 10.10では、libmysqlclient16-devをインストールする必要がありました。