Sometimes I have to use a fork of a gem for a bug fix and I have to bundle my gems locally for deployment on a server that isn’t connected to the public internet. This presents a problem because bundler doesn’t locally save gems with git
sources but it will save gems with github
sources.
Here are the steps to get it to save locally. First add your gem like this in your Gemfile:
# Gemfile
gem 'chosen-rails', github: "westonganger/chosen-rails", branch: :master
Next run bundle install --path vendor/cache
Now change your Gemfile to use the git
source so that when you try to bundle install on the server without internet access it wont try to connect.
# Gemfile
gem 'chosen-rails', git: "https://github.com/westonganger/chosen-rails.git", branch: :master
Next run bundle install --path vendor/cache
again to update your Gemfile.lock with the changes
Now it will be saved in /vendor/cache and be loaded locally when you bundle install --local
on your server.
Related External Links: