SNS認証を入れる際にハマった

グーグルのSNS認証ログイン機能をつけようとしたところ、bundle installが出来なくなったので解決方法と原因

やろうとした事

アプリのログイン機能にグーグルのSNS認証をつけるためにgemを追加してbundle install

追加したgem
ターミナルで実行

起きた事

vendor/bundle の中にファイルが5000個出来た。

エラー

なんかmysql2の0.5.2をやり直せって言われてる

言われてる通りやってみると

mysql2で引っかかる!なんかgemがexitってなってるっぽい。

原因

どうやらインストールするはずのgemたちが本来いるべきところにいないのが原因らしい。gemの場所を変えるような変な事したっけ…..

bundle install --path vender/bundle

–path vender/bundle 

これだああああ!

このパスの指定がエラーの原因

試しにrails newやbundle installを実行しても同じ所で引っかかるから直さないと。

解決方法

ターミナルでコマンド実行1

ターミナルのアプリ上で

vim .bundle/config を実行

この中に記述されている vender/bundleを削除

変更を保存して出ます

この作業はbundle installがパスを覚えてしまっているので、それを削除しています。これでbundle installする時に vender/bundleに行かなくなりました。

ターミナルでコマンド実行2

この後にbundle installすると

An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue.
 Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling. 

またこのエラーが出てきたので、次はこれを解決です

同じく、ターミナルのアプリ上で

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include  を実行
 Building native extensions with: '--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include'
 This could take a while...
 Successfully installed mysql2-0.5.2
 Parsing documentation for mysql2-0.5.2
 Done installing documentation for mysql2 after 0 seconds
 1 gem installed 

こんな感じになればオッケー!

これで無事bundle install出来ました。

まとめ

bundle install --path vender/bundle の中身の記述を消す

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include  を実行する

たぶん単純にbundle installにパスをつけるなって事…..

bundle install gemを入れた後は普通のbundle installにしましょう