从Github分支安装Gem?


93

在我的gemfile中,我有这个:

gem "authlogic", :git => "git://github.com/odorcicd/authlogic.git", :branch => "rails3"

如何将其安装为gem,以便进行测试?

Answers:


200

您无需在本地构建gem。在您的gemfile中,您可以使用ref,branch或tag指定github源。

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"

然后您运行,bundle install或者简称为bundle

在此处阅读有关此内容的更多信息:http : //bundler.io/man/gemfile.5.html#GIT

更新:一个github源标识符

gem 'country_select', github: 'stefanpenner/country_select'

但是,他们警告不要使用它: 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.

在Bundler 2.0之后,您可以在Gemfile顶部附近使用以下语句解决上述问题:

git_source(:github) { |repo| "https://github.com/#{repo}.git" }

从2017年开始更新,我无法获得GitHub源标识符,但:git => ref可以正常工作
Amias

也许是Windows的恶作剧,但是对于Windows 10上的RubyInstaller 2.3,我对未发布的gem具有相同的设置,然后发出bundle install命令,RubyGems表示其获取git repo并安装了它,但是当我这样做gem list gemname时没有显示在我本地安装的gems中。
FilBot3

nvm,这是因为我希望bundle install安装它就像是全局的一样,或者对于所有rubygems。但是,它是按项目执行的,有时是按用户执行的。github.com/bundler/bundler/issues/3070#issuecomment-46361014
FilBot3

至少对于我们的环境,github:标识符给出了transmits data without encryption我要避免的警告。转换为git:标识符https可能不够用,因为我还有一个要指定的分支。
Pysis

关于使用github源码标识符进行安装: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.-根据您提供
Danny Bullis

64
  1. 克隆Git存储库。

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. 转到新目录。

    cd authlogic
    
  3. 结帐分支

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. 建立宝石。

    $ rake build gem
    
  5. 安装宝石。

    $ gem install pkg/gemname-1.23.gem
    

14
我需要将4.更改为“ rake build”以构建gem。
raphael_turtle

6
而不是4。我不得不使用gem build name-of.file.gemspec来构建rake gem对rake gem对我不起作用
marimaf

5
代替4和5,您可以执行“ rake install”
drinor

2
还是直接从github:gem 'rails', :github => 'rails', :branch => '5.0-stable'-链接:bundler.io/v1.3/git.html
Danny

@Danny将会是github: 'rails/rails'
Cameron Martin

5

我必须修改@janic_的答案才能使其正常工作。希望它将对像我这样的其他红宝石新手有所帮助。

  1. 克隆Git存储库。

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. 转到新目录。

    $ cd authlogic
    
  3. 结帐分支

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. 安装捆绑

    $ bundle install
    
  5. 建立宝石。

    $ rake build
    
  6. 安装宝石。

    $ gem install pkg/gemname-1.23.gem
    

-1

假设您是Bundler用户,

$ bundle install

将安装Gemfile中列出的宝石。(而且,如果您不是Bundler用户,为什么还要拥有Gemfile?


如果您想对这个答案不满意,请先解释一下为什么您应该对这个答案不满意。没有建设性反馈的否决票无助于增进理解。谢谢。
sampablokuper
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.