Bundler Version Issue “uninitialized contant Gem::SilentUI (NameError)”

The Engine Yard platform defaults to Bundler version 1.0.10, which throws the above error with newer versions of Rubygems. A common fix for this is to specify the Bundler version.

If the version of Bundler you’re using is 1.0.15, add this to your Gemfile

gem 'bundler', '1.0.15' 

and then run

bundle update bundler 

from the command line.

Common mistakes

  • Make sure to specify '1.0.15' and not '~>1.0.15' to ensure against future changes.
  • Run bundle update bundler from your local machine to create a new Gemfile.lock in your application. Otherwise this change won’t show up.

If you have feedback or questions about this page, add a comment below. If you need help, submit a ticket with Engine Yard Support.

Comments

  • Avatar
    GovDelivery Notifications Dashboard

    This does not work at all on my instance. The error is thrown when "bundle install" is run, so I'm not sure how adding something to the Gemfile would ever fix it. It never even gets around to reading the Gemfile.

    I had to manually SSH into my instance and run 'sudo gem install bundler'. Not terribly convenient, but effective.

    1
    Comment actions Permalink
  • Avatar
    Permanently deleted user

    This also does not work for me.  "bundle update bundler" results in an error, "Could not find gem 'bundler'.  Did you mean builder?"

    I was trying to update because there is a "ruby" directive in my Gemfile.  The "1.0.21" Bundler version doesn't understand that directive, so I was trying to upgrade Bundler.  The only way that I could get a successful deployment was by giving up and removing the "ruby" directive from my Gemfile.

    0
    Comment actions Permalink
  • Avatar
    Permanently deleted user

    Hello Ryan and GovDelivery,

    The deploy will install Bundler during the deploy if a Gemfile is detected.

    We have a default version such as Bundler 1.1.5 in the v2.0 Engineyard gem release

    https://github.com/engineyard/engineyard-serverside/blob/2-0-stable/lib/engineyard-serverside/lockfile_parser.rb#L5

    and Bundler 1.3.5 in the v2.3 release

    https://github.com/engineyard/engineyard-serverside/blob/v2.3.7/lib/engineyard-serverside/dependency_manager/bundler.rb#L7

    Some issue are related to the Bundler version you use, you can set a version inside you Gemfile. In the v2.0 Engineyard gem, we parse the Gemfile.lock in

    https://github.com/engineyard/engineyard-serverside/blob/2-0-stable/lib/engineyard-serverside/lockfile_parser.rb#L65-L77

    and in the v2.3 Engineyard gem we use updated code

    https://github.com/engineyard/engineyard-serverside/blob/v2.3.7/lib/engineyard-serverside/dependency_manager/bundler.rb#L212-L222

    so we can detect the version you need.

     

    One thing to note, we track the version of the Engineyard gem you use to deploy and try and use the same version on the dashboard when you click the button.  To use the newest deploy version in the UI, just deploy once with the newest CLI version.  Another issue is using bundler in custom chef that runs before your initial deploy. Here you can just add your preferred bundler version to the environments gem list and it will be installed during the main cookbook run.

    If this is not working, please open a ticket withe the app/environment and we can examine your instances and open a bug report on this.

    Regards,

    Kevin

    0
    Comment actions Permalink

Please sign in to leave a comment.

Powered by Zendesk