Instalar o Gem do Github Branch?

93

No meu gemfile eu tenho este:

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

Como faço para instalar isso como uma gema para poder testá-lo?

Lance Pollard
fonte

Respostas:

200

Você não precisa construir a gema localmente. Em seu gemfile, você pode especificar uma fonte github com um ref, branch ou 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"

Aí você corre bundle installou o formulário curto é justo bundle.

Leia mais sobre isso aqui: http://bundler.io/man/gemfile.5.html#GIT

Atualização:um identificador de origem do github .

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

No entanto, eles alertam contra o uso: 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.

Após o Bundler 2.0, você pode contornar o problema acima com esta declaração perto do topo do Gemfile:

git_source(:github) { |repo| "https://github.com/#{repo}.git" }
Arquônico
fonte
atualização de 2017, não consegui fazer o identificador de origem GitHub funcionar, mas o: git => ref funciona bem
Amias
Talvez sejam travessuras do Windows, mas com o RubyInstaller 2.3 no Windows 10, tenho a mesma configuração para uma gema que não foi lançada e emito o bundle installcomando RubyGems diz que está buscando o repositório git e está instalado, mas quando eu faço gem list gemnameisso não aparece em minhas joias instaladas localmente.
FilBot3
nvm, é porque estou esperando bundle installinstalar como se fosse global ou para todos os rubygems. no entanto, é feito por projeto ou às vezes por usuário. github.com/bundler/bundler/issues/3070#issuecomment-46361014
FilBot3
Pelo menos para nosso ambiente, o github:identificador dá o transmits data without encryptionaviso que estou tentando evitar. Converter para um git:identificador com httpspode não ser suficiente, pois também tenho um branch para especificar.
Pysis
Em relação à instalação com o identificador de origem do 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.- de acordo com o link que você forneceu
Danny Bullis
64
  1. Clone o repositório Git.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Mude para o novo diretório.

    cd authlogic
    
  3. Filial de checkout

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Construa a joia.

    $ rake build gem
    
  5. Instale a gema.

    $ gem install pkg/gemname-1.23.gem
    
janic_
fonte
14
Eu precisei mudar 4. para "rake build" para construir a gema.
raphael_turtle
6
Em vez de 4. Eu tive que usar gem build name-of-file.gemspec para construir o gem rake build ou rake gem não funcionou para mim
marimaf
5
Em vez de 4 e 5, você pode fazer "rake install"
drinor
2
Ou direto do github: gem 'rails', :github => 'rails', :branch => '5.0-stable'- link: bundler.io/v1.3/git.html
Danny
@Danny isso seriagithub: 'rails/rails'
Cameron Martin
5

Tenho que modificar a resposta de @janic_ para que funcione. Espero que ajude outros novatos de rubi como eu.

  1. Clone o repositório Git.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Mude para o novo diretório.

    $ cd authlogic
    
  3. Filial de checkout

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Instalar pacotes

    $ bundle install
    
  5. Construa a joia.

    $ rake build
    
  6. Instale a gema.

    $ gem install pkg/gemname-1.23.gem
    
Hai Feng Kao
fonte
-1

Supondo que você seja um usuário Bundler,

$ bundle install

irá instalar as gemas listadas no seu Gemfile. (E se você não é um usuário do Bundler, por que tem um Gemfile?

sampablokuper
fonte
Se você está pensando em votar contra esta resposta, primeiro explique por que você acha que ela deveria ser votada contra. Votos negativos sem feedback construtivo não são úteis para facilitar a compreensão. Obrigado.
sampablokuper