OKADA LABO

HOMEBREWアップデートしたらrmagickでエラー!!!が解決

組んでる内容が最近よく詰まる。
しかも原因が理不尽。
HOMEBREWのアップデートが原因という酷い目に。

railsで画像アップデート用に
carrierwave使う際に
リサイズで

gem 'rmagick'

使ってたんだけど、

まじか、rmagickは
HOMEBREW1.0の新しいimagemagick7に対応してないっつー。
(2017年1月現在)

だから新たにrmagickインストールしてもエラー泣

おかげで組んでたアプリでrails sが立ち上がらない事態に。

 

解決策を調べると

imagemagick6ならrmagickは対応してるので
imagemagick7から6にしてインストールし直すとよいとのこと。

まずは

rmagickをアンインストールしてやる

$ bundle exec gem uninstall rmagick

 

$ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
$ git checkout 6f014f2b7f1f9e618fd5c0ae9c93befea671f8be
(ImageMagick 6の最後のリビジョン)
$ cd -
$ export HOMEBREW_NO_AUTO_UPDATE=1
$ brew install imagemagick
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig bundle install
$ unset HOMEBREW_NO_AUTO_UPDATE

imagemagickを6に入れ替えたので
改めてgem 'rmagick'
$ bundle install で
うまくいくかと思ったら
またメッセージ

To install this version, first `brew unlink imagemagick`

つまりまずはリンクを外せということで

$ brew unlink imagemagick

あらためて

$ brew install rmagick

やっと安定した。
という流れを新しいディレクトリでテスト確認し

さて問題の進行中ディレクトリーでためすと
imagemagick6とrmagickがうまく入ったのでrails sするとまたエラー泣

今度は

`full_gem_path': uninitialized constant Bundler::Plugin::API::Source (NameError)

で動かない

これはbundlerを入れ替えることで解決するらしいので

$ bundler -v

でバージョンを確認して
そのバージョンのbundlerを削除してbundle installしなおした

$ gem uninstall bundler -v1.14.3
$ bundle install

するとこんどは、dbを読み込まねー。
homebrewの新しいやつは権限が変わったそうです。
なので

$ sudo chown -R _mysql /usr/local/var/mysql #場所はバージョンによって違う

で権限を変えた。

こんなんで5時間

ついてねー

参考
http://qiita.com/k12u/items/fda29954a4b6d1d4983e

http://qiita.com/ShuntaShirai/items/c582c0acebe2dbf03fc3

http://qiita.com/shogo807/items/f90269818040b2b2781f

https://github.com/fastlane/fastlane/issues/6203

https://tech.camph.net/brew-update%E3%81%97%E3%81%9F%E3%82%89mysql2error-cant-read-dir-of-%E3%80%9C%E3%81%A7%E6%80%92%E3%82%89%E3%82%8C%E3%81%9F%E8%A9%B1/