You don't need to build the gem locally. In your gemfile you can specify a github source with a ref, branch or tag.
gem 'rails', git: 'git://github.com/rails/rails.git', ref: '4aded'
gem 'rails', git: 'git://github.com/rails/rails.git', branch: '2-3-stable'
gem 'rails', git: 'git://github.com/rails/rails.git', tag: 'v2.3.5'
Then you run bundle install
or the short form is just bundle
.
Read more about it here: http://bundler.io/man/gemfile.5.html#GIT
Update: There's a github source identifier.
gem 'country_select', github: 'stefanpenner/country_select'
However, they warn against using it: NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system.
After Bundler 2.0, you can get around the above issue with this statement near the top of the Gemfile:
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
Clone the Git repository. $ git clone git://github.com/odorcicd/authlogic.git Change to the new directory. cd authlogic Checkout branch $ git checkout -b rails3 remotes/origin/rails3 Build the gem. $ rake build gem Install the gem. $ gem install pkg/gemname-1.23.gem
gem 'rails', :github => 'rails', :branch => '5.0-stable'
- link: bundler.io/v1.3/git.html
gem build <gem-name>.gemspec
worked. I didn't have rake
listed in the Gemfile. So rake build gem
threw rake is not part of the bundle. add it to gemfile
I have to modify @janic_'s answer to make it work. Hope it will help other ruby noobs like myself.
Clone the Git repository. $ git clone git://github.com/odorcicd/authlogic.git Change to the new directory. $ cd authlogic Checkout branch $ git checkout -b rails3 remotes/origin/rails3 Install bundles $ bundle install Build the gem. $ rake build Install the gem. $ gem install pkg/gemname-1.23.gem
To update @Archonic answer, you need to replace the git protocol per the https protocol
fatal: remote error:
The unauthenticated git protocol on port 9418 is no longer supported.
Therefore, you need to write:
gem 'rails', git: 'https://github.com/rails/rails.git', ref: '4aded'
gem 'rails', git: 'https://github.com/rails/rails.git', branch: '2-3-stable'
gem 'rails', git: 'https://github.com/rails/rails.git', tag: 'v2.3.5'
Success story sharing
bundle install
command, RubyGems says its fetching the git repo, and its installed, but when I dogem list gemname
it doesn't show up in my locally installed gems.bundle install
to install as though it were global, or for all rubygems. however, its doing it per project, or sometimes per user. github.com/bundler/bundler/issues/3070#issuecomment-46361014github:
identifier gives thetransmits data without encryption
warning that I'm looking to avoid. Converting to agit:
identifier withhttps
might not be enough, as I also have a branch to specify.NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system.
- per the link you gave