質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • Ruby

    7909questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7465questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • MySQL

    5990questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Ruby on Rails 4

    2455questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

gem install mysql -v '2.9.1'ができません

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,535

jianghan

score 3

環境

vagrant、CentOS7
mysql  Ver 14.14 Distrib 5.6.29, for Linux (x86_64) using  EditLine wrapper
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
Rails 4.2.6

発生している問題・エラーメッセージ

railsのmysql環境を作っていますが、mysqlをgem installする所で以下のようなエラーになりました。

[vagrant@localhost app]$ gem install mysql -v '2.9.1'
Fetching: mysql-2.9.1.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    ERROR: Failed to build gem native extension.

    current directory: /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mysql-2.9.1/ext/mysql_api
/home/vagrant/.rbenv/versions/2.3.0/bin/ruby -r ./siteconf20160411-16570-1k8dx32.rb extconf.rb
checking for mysql_ssl_set()... *** 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=/home/vagrant/.rbenv/versions/2.3.0/bin/$(RUBY_BASE_NAME)
    --with-mysql-config
    --without-mysql-config
/home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:541:in `try_link0'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:556:in `try_link'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:765:in `try_func'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:1051:in `block in have_func'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:942:in `block in checking_for'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:350:in `block (2 levels) in postpone'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:320:in `open'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:350:in `block in postpone'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:320:in `open'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:346:in `postpone'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:941:in `checking_for'
    from /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/2.3.0/mkmf.rb:1050:in `have_func'
    from extconf.rb:45:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/mysql-2.9.1/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/mysql-2.9.1 for inspection.
Results logged to /home/vagrant/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/mysql-2.9.1/gem_make.out

追記

mysql-develがないことが原因みたいですが、yum install mysql-develもうまくいけないです。以下のエラーが出ました。

[vagrant@localhost ~]$ sudo yum install mysql-devel
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.kddilabs.jp
 * extras: ftp.iij.ad.jp
 * remi-php70: mirror.innosol.asia
 * remi-safe: mirror.innosol.asia
 * updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-devel.x86_64 1:5.5.47-1.el7_2 を インストール
--> 依存性の処理をしています: mariadb-libs(x86-64) = 1:5.5.47-1.el7_2 のパッケージ: 1:mariadb-devel-5.5.47-1.el7_2.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.47-1.el7_2 を インストール
Removing mariadb-libs.x86_64 1:5.5.47-1.el7_2 - u due to obsoletes from installed mysql-community-libs-5.6.29-2.el7.x86_64
--> 新しい変更と依存性の解決を再開しています。
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.47-1.el7_2 を インストール
--> 依存性の処理をしています: mariadb-libs(x86-64) = 1:5.5.47-1.el7_2 のパッケージ: 1:mariadb-devel-5.5.47-1.el7_2.x86_64
--> 依存性解決を終了しました。
エラー: パッケージ: 1:mariadb-devel-5.5.47-1.el7_2.x86_64 (updates)
             要求: mariadb-libs(x86-64) = 1:5.5.47-1.el7_2
            利用可能: 1:mariadb-libs-5.5.44-2.el7.centos.x86_64 (base)
                mariadb-libs(x86-64) = 1:5.5.44-2.el7.centos
            利用可能: 1:mariadb-libs-5.5.47-1.el7_2.i686 (updates)
               ~mariadb-libs(x86-32) = 1:5.5.47-1.el7_2
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest


何か方法があるようでしたら、是非教えていただけないでしょうか? 
宜しくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • issei.

    2016/04/11 14:53

    gccってインストール済みですか? gcc -vで何が出るかで分かります。

    キャンセル

  • jianghan

    2016/04/11 14:58 編集

    ご回答ありがとうございます。 gccはインストール済です。gcc バージョン 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)になっています。

    キャンセル

回答 3

checkベストアンサー

+4

開発用のMySQLライブラリが必要です。yum install mysql-develで入れてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/11 15:34

    ご回答ありがとうございます。

    yum install mysql-develもうまく行かなくて、エラー内容を追記しました。
    そちらについても教えていただけませんか?

    キャンセル

  • 2016/04/11 16:10

    この様子だと、yum install mariadb-develのほうが適当かもしれませんね(MariaDBはMySQLから分岐したデータベースシステムです)

    キャンセル

  • 2016/04/11 16:20

    トラブル回避のため全部アンインストールし、再度インストールすることで直りました。。。
    ありがとうございました!

    キャンセル

+3

失敗した理由はmkmf.logを見ろって書いてあるようですが見てみましたか?
/home/vagrant/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0-static/mysql-2.9.1/mkmf.log

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/11 15:06

    ご回答ありがとうございます。

    今logを見てみましたが、以下のようになってわかりませんでした...
    "gcc -o conftest -I/home/vagrant/.rbenv/versions/2.3.0/include/ruby-2.3.0/x86_64-linux -I/home/vagrant/.rbenv/versions/2.3.0/include/ruby-2.3.0/ruby/backward -I/home/vagrant/.rbenv/versions/2.3.0/include/ruby-2.3.0 -I. -I/home/vagrant/.rbenv/versions/2.3.0/include -I/usr/include/mysql -g -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -L/home/vagrant/.rbenv/versions/2.3.0/lib -Wl,-R/home/vagrant/.rbenv/versions/2.3.0/lib -L. -L/home/vagrant/.rbenv/versions/2.3.0/lib -fstack-protector -rdynamic -Wl,-export-dynamic -L/usr/lib64/mysql -lmysqlclient -lpthread -lm -ldl -Wl,-R/home/vagrant/.rbenv/versions/2.3.0/lib -L/home/vagrant/.rbenv/versions/2.3.0/lib -lruby-static -lpthread -ldl -lcrypt -lm -lc"
    /usr/bin/ld: -lmysqlclient が見つかりません
    collect2: エラー: ld はステータス 1 で終了しました
    checked program was:
    /* begin */
    1: #include "ruby.h"
    2:
    3: int main(int argc, char **argv)
    4: {
    5: return 0;
    6: }
    /* end */

    キャンセル

  • 2016/04/11 15:33

    /usr/bin/ld: -lmysqlclient が見つかりません という箇所から、mysqlのライブラリがインストールできてないor参照できていない、と結論できます。

    キャンセル

  • 2016/04/11 16:21

    mysqlのライブラリが足りないことが原因でした。
    ありがとうございました!

    キャンセル

+1

MySQLのクライアントライブラリの検索に失敗していると思います。
ライブラリがあるディレクトリを指定して入れてみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/11 16:18

    ライブラリが足りないことが原因でした。
    ご回答ありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    MariaDB10のリポジトリデータが壊れてる?

    CentOS7 の MariaDB10 の repodata が 2016-Aug-30 に更新されたようですが、これって現在壊れています? # sudo yum insta

  • 解決済

    MySQLを使って年齢で世代ごとの人数を表示するプログラム

    まだ勉強し始めて三日ほどしか経っていないMySQL初心者です。 現在の日付と生年月日から年齢を求める式を用いて、世代ごとの人数を表示するプログラムを書いています。 case文を

  • 解決済

    UbuntuでRubyのライブラリが導入できない

    前提・実現したいこと→Ubuntu14.04でRubyのライブラリを導入したい Ubuntu14.04で Capybara Anemone Poltergeist Nok

  • 受付中

    vagrant init を実行するとエラーになる

    現象 ドットインストールのローカル環境構築を参考に、 「VirtualBox-5.1.10」「vagrant_1.9.0」をインストールしました。 http://dotins

  • 解決済

    Railsのコントローラーのテストでのエラー

    Railsアプリケーションプログラミングを学習しながら作っていますが、コントローラーのテストを実行使用としたらエラーが出て解決出来ずに困っております。実行したコードは下記になります

  • 解決済

    ユーザ定義変数に配列を代入したい

    前提・実現したいこと タイトルの通りですが、 ユーザー定義変数に配列(ベクトル)を代入したいのですが上手く出来ませんでした。 そもそも、スカラー値しか代入できないのでしょうか?

  • 解決済

    SQLにおける日時検索

    毎日毎時間10分単位で時間と風向・風量を測定しDBに記録をしていく様な、添付した画像のテーブルがあります。 そこで質問ですが、このテーブルから 「30分毎のレコード」や「

  • 解決済

    仮想環境下でのrubyのアップグレード方法について

    仮想環境下のRubyのバージョンを2.2以上にしたく、バージョンをググりながら試しているのですが、うまくいきません。 現在仮想環境下で【質問対応停止中】【作りながら覚える!】 Ru

同じタグがついた質問を見る

  • Ruby

    7909questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7465questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • MySQL

    5990questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Ruby on Rails 4

    2455questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。