個人のいくつかのリポジトリで bundle install できないことがあり、困っ
ていました。

$ bundle install
Fetching gem metadata from https://rubygems.org/............
Fetching version metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 11.3.0
Using concurrent-ruby 1.0.2
Using i18n 0.7.0
Using thread_safe 0.3.5
Using net-ssh 3.2.0
Installing minitest 5.10.1
Your Gemfile.lock is corrupt. The following gem is missing from the DEPENDENCIES section: 'ffi'

結論から言うと $ bundle install --without development で回避できま
した(当該リポジトリでは development group は使っていなかった)。

今回は Gemfile に gem ‘ffi’ を追加して回避できました。bundler は最
新の v1.13.6 です。

情報にまとまりがなくて調べていくのが大変でした。1.10.6 に戻すと回
避できる
という情報もあったけど、さすがに古すぎだし…。

まだ根本解決はしていないようです。
Bundle install –deployment fails with Gemfile.lock is corrupt · Issue #5044 · bundler/bundler

追記(2016-12-10):
全然違っていたので、直しました。

今回のケースでは Gemfile に gem ‘pushover’ が書かれており、この行
をコメントアウトすると再現しないことがわかりました。

さらに調べると pushover の依存でインストールされる sys-proctable
を Gemfile に追加するだけで再現することがわかりました。

sys-proctable は require ‘ffi’ しています。 試しに Gemfile に gem
‘ffi’ を追加したら回避できたというわけです。

あとで分かるように Gemfile にはこのように書きました。

gem 'ffi' # workaround https://masutaka.net/chalow/2016-12-10-1.html

もう少し調べてみると、sys-proctable を最新の 1.1.3 から 0.9.9 に落
としたら、再現しなくなることがわかりました。

1.1.0 から OSX は C Extention から ffi への依存に変更されたようで
す。ffi は Ruby から C の関数を呼べる Gem のようです。

https://github.com/djberg96/sys-proctable/compare/sys-proctable-0.9.9...sys-proctable-1.1.0

Rakefile で spec.add_dependency(‘ffi’) を追加しているので、大丈夫
なはずが、bundler の不具合で依存がうまくいかないのかもしれません。