Installer Gem à partir de Github Branch?


94

Dans mon gemfile j'ai ceci:

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

Comment puis-je l'installer en tant que bijou pour pouvoir le tester?

Réponses:


200

Vous n'avez pas besoin de construire la gemme localement. Dans votre gemfile, vous pouvez spécifier une source github avec une référence, une branche ou une balise.

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"

Ensuite, vous exécutez bundle installou la forme courte est juste bundle.

En savoir plus à ce sujet ici: http://bundler.io/man/gemfile.5.html#GIT

Mise à jour: il y a un identifiant de source github .

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

Cependant, ils mettent en garde contre son utilisation: 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.

Après Bundler 2.0, vous pouvez contourner le problème ci-dessus avec cette instruction en haut du Gemfile:

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

mise à jour de 2017, je n'ai pas pu faire fonctionner l'identifiant source GitHub mais le: git => ref fonctionne bien
Amias

Peut - être que ses manigances Windows, mais avec RubyInstaller 2.3 sur Windows 10, j'ai cette même configuration pour un bijou je qui est Unreleased, et je lance la bundle installcommande, RubyGems dit son aller chercher le git, et son installation, mais quand je fais gem list gemnamece n'apparaît pas dans mes gemmes installées localement.
FilBot3

nvm, c'est parce que je m'attends bundle installà l'installer comme s'il était global, ou pour tous les rubygems. cependant, il le fait par projet, ou parfois par utilisateur. github.com/bundler/bundler/issues/3070#issuecomment-46361014
FilBot3

Au moins pour notre environnement, l' github:identifiant donne l' transmits data without encryptionavertissement que je cherche à éviter. La conversion en git:identifiant avec httpspeut ne pas suffire, car j'ai également une branche à spécifier.
Pysis

Concernant l'installation avec l'identifiant de source 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.- par le lien que vous avez donné
Danny Bullis

64
  1. Clonez le référentiel Git.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Accédez au nouveau répertoire.

    cd authlogic
    
  3. Succursale de paiement

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Construisez la gemme.

    $ rake build gem
    
  5. Installez la gemme.

    $ gem install pkg/gemname-1.23.gem
    

14
J'avais besoin de changer 4. en "rake build" pour construire la gemme.
raphael_turtle

6
Au lieu de 4. J'ai dû utiliser gem build name-of-file.gemspec pour construire le gem rake build o rake gem ne fonctionnait pas pour moi
marimaf

5
Au lieu de 4 et 5, vous pouvez faire "rake install"
drinor

2
Ou directement depuis github: gem 'rails', :github => 'rails', :branch => '5.0-stable'- lien: bundler.io/v1.3/git.html
Danny

1
Pour moi a gem build <gem-name>.gemspectravaillé. Je n'ai pas rakelisté dans le Gemfile. Donc, rake build gemjeté le râteau ne fait pas partie du paquet. ajoutez-le à gemfile
RajaRaviVarma

6

Je dois modifier la réponse de @ janic_ pour que cela fonctionne. J'espère que cela aidera d'autres noobs rubis comme moi.

  1. Clonez le référentiel Git.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Accédez au nouveau répertoire.

    $ cd authlogic
    
  3. Succursale de paiement

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Installer des bundles

    $ bundle install
    
  5. Construisez la gemme.

    $ rake build
    
  6. Installez la gemme.

    $ gem install pkg/gemname-1.23.gem
    

-1

En supposant que vous êtes un utilisateur de Bundler,

$ bundle install

installera les gemmes répertoriées dans votre Gemfile. (Et si vous n'êtes pas un utilisateur de Bundler, pourquoi avez-vous un Gemfile?


Si vous envisagez de voter contre cette réponse, veuillez d'abord expliquer pourquoi vous pensez qu'elle devrait être votée à la baisse. Les votes négatifs sans rétroaction constructive ne sont pas utiles pour faciliter la compréhension. Merci.
sampablokuper
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.