「Bundler::GemspecError: Could not read gem at 〜. It may be corrupted.」のエラー発生

bundle時にエラーが発生

Bundler::GemspecError: Could not read gem at /home/vagrant/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/cache/nokogiri-1.6.6.2.gem. It may be corrupted.
An error occurred while installing nokogiri (1.6.6.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.6.2'` succeeds before bundling.

cacheが読めない?
nokogiriのキャッシュが2つあったので、両方消してみました

$ rm -rf /home/vagrant/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/cache/nokogiri-1.6.*

$ bundle

これでうまく行きました

Gemfileにgemspecしか書いてないのは?

gemを改造しようかと思って、gemが上がってたgithubからcloneしてGemfileを見ると

$ vim Gemfile

source 'http://rubygems.org'
gemspec

とだけ書いてありましたが

$ bundle

コマンド打つといろいろインストールされる..

ディレクトリ名.gemspecにいろいろインストールされるものが書かれてました
これが実行されるようです

gemspecで依存関係が表せるようです
bundler – gemライブラリの依存はGemfileではなくgemspecに記述する理由 – Qiita

vagrantでCPUが100%に張り付く2

vagrantでCPUが100%に張り付く | bgbgbgで対策したと思ったけど、
だめだったので再度検討
Rails起動してるのが悪かったのかも

ここを参考に
cpu usage too high · Issue #2 · DanThiffault/rails-lastmile

unicorn使ってないけど試しに

developmentだけ、gemを追加

$ vim Gemfile

  gem "execjs"
  gem "therubyracer"

$ bundle install

これで落ち着きました(もう大丈夫だろうか)

railsのbetter_errorsがvagrant環境で動かない

railsのエラーが見やすくなるgemのbetter_errorsをいれてましたが、エラー画面がふつうで変わってなかった..

charliesome/better_errors
ちゃんと書いてありました
localhostでしか動かないようで、回避策

開発環境の設定を追加
$ vim config/environments/development.rb

  BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']

これで起動時に

$ TRUSTED_IP=(vagrantのIPアドレス) rails s -b 0.0.0.0

で動くようになります
vagrantのIPアドレスはエラー画面で確認しました

rails-bettererrors

この場合は
$ TRUSTED_IP=10.0.2.2 rails s -b 0.0.0.0
でOKです