なんかrails環境を作ると毎回mysqlに苦しめられる気がします。
環境
- ubuntu 16.04.1
- elementary OS 0.4.1 Loki
問題
自分のgithubにある既存のリポジトリをcloneしてからbundle install
すると
An error occurred while installing mysql2 (0.4.10), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.4.10'` succeeds before bundling.
が出てきたので、ああ、mysqlが入ってなかったんだなとおもったけど、この現象は以前(前の会社の時?)にもあったので
$ gem install mysql2 -v '0.4.10' Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. current directory: /home/user/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/mysql2-0.4.10/ext/mysql2 /home/user/.rbenv/versions/2.5.0/bin/ruby -r ./siteconf20180528-25364-imjoq2.rb extconf.rb checking for rb_absint_size()... yes checking for rb_absint_singlebit_p()... yes checking for ruby/thread.h... yes checking for rb_thread_call_without_gvl() in ruby/thread.h... yes checking for rb_thread_blocking_region()... no checking for rb_wait_for_single_fd()... yes checking for rb_hash_dup()... yes checking for rb_intern3()... yes checking for rb_big_cmp()... yes checking for mysql_query() in -lmysqlclient... no ----- mysql client is missing. You may need to 'apt-get install libmysqlclient-dev' or 'yum install mysql-devel', 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=/home/user/.rbenv/versions/2.5.0/bin/$(RUBY_BASE_NAME) --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-mysql-config --without-mysql-config --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-mysqlclientlib --without-mysqlclientlib To see why this extension failed to compile, please check the mkmf.log which can be found here: /home/user/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/mysql2-0.4.10/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /home/user/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/mysql2-0.4.10 for inspection. Results logged to /home/user/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/mysql2-0.4.10/gem_make.out
やっぱ一筋縄では行かない。
えらーめっせ見たら
必要なパッケージが入ってないっぽい。
$ sudo apt install libmysqlclient-dev パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: libmysqlclient-dev アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 1,159 kB のアーカイブを取得する必要があります。 この操作後に追加で 7,021 kB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmysqlclient-dev amd64 5.7.22-0ubuntu0.16.04.1 [1,159 kB] 1,159 kB を 2秒 で取得しました (445 kB/s) 以前に未選択のパッケージ libmysqlclient-dev を選択しています。 (データベースを読み込んでいます ... 現在 286554 個のファイルとディレクトリがインストールされています。) .../libmysqlclient-dev_5.7.22-0ubuntu0.16.04.1_amd64.deb を展開する準備をしています ... libmysqlclient-dev (5.7.22-0ubuntu0.16.04.1) を展開しています... man-db (2.7.5-1) のトリガを処理しています ... libmysqlclient-dev (5.7.22-0ubuntu0.16.04.1) を設定しています ... $ gem install mysql2 -v '0.4.10' Building native extensions. This could take a while... Successfully installed mysql2-0.4.10 Parsing documentation for mysql2-0.4.10 Installing ri documentation for mysql2-0.4.10 Done installing documentation for mysql2 after 0 seconds 1 gem installed
行けた〜。
終わり
Welcome to WebsocketRails v0.7.0!
ということでうまく行きましたとさ。