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?

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" }

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
    

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
    

-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?


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.