Changing the solver in Berksfile


I’d like to use the ruby resolver in Berkshelf. It’s recommend against (1) (2) due to the Chef Server using the gecode resolver.

If we were to use cookbook_versions() on Chef Environments to pin exact version constraints (ie use berks apply), is the resolver implementation irrelevant? From the point of view of the Chef Server, it already has the exact version to send to chef clients.

My reason for asking this is we frequently get The dependency constraints could not be solved in the time allotted errors with Berkfile. With gecode, Chef deploys takes at least 5 minutes to resolve. With ruby resolver, it takes less than a minute.


If you pin all your cookbooks to exact versions via environments, then the implementation details of the solver become irrelevant, yes.

1 Like