One of the many things in Chef ecosystem is Gems. Think of Gems as DLLs. They have versions, dependencies, and while MSFT figured this dependency hell years ago, Gems do not have that luxury.
One of the minuses is that when you install a gem, it pulls down depends, when you uninstall a gem, depends stay behind.
A - clean up unused gems
gem cleanupB - nuke everything and start for scratch.
gem list | cut -d" " -f1 | xargs gem uninstall -aIx
C - read about bundler and track your depends in a gemfile. Each cookbook has its own gemfile. You always update your gemfile and never install gems manually
D - when your gems start complaining about missing dependencies see B
A good read: