Gem von Github Branch installieren?

92

In meiner Gemfile habe ich Folgendes:

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

Wie installiere ich das als Juwel, damit ich es testen kann?

Lance Pollard
quelle

Antworten:

199

Sie müssen das Juwel nicht lokal bauen. In Ihrer Gemfile können Sie eine Github-Quelle mit einer Referenz, einem Zweig oder einem Tag angeben.

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"

Dann rennst du bundle installoder die Kurzform ist einfach bundle.

Lesen Sie hier mehr darüber: http://bundler.io/man/gemfile.5.html#GIT

Update: Es gibt eine Github-Quellkennung .

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

Sie warnen jedoch davor, es zu verwenden: 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.

Nach Bundler 2.0 können Sie das obige Problem mit dieser Anweisung am oberen Rand der Gemfile umgehen:

git_source(:github) { |repo| "https://github.com/#{repo}.git" }
Archonisch
quelle
Update von 2017, ich konnte die GitHub-Quell-ID nicht zum Laufen bringen, aber die: git => ref funktioniert gut
Amias
Vielleicht ist es Windows - Spielereien, aber mit RubyInstaller 2,3 auf 10 Fenster, ich habe das gleiche Setup für ein Juwel Ich habe das unveröffentlicht ist, und ich geben Sie den bundle installBefehl, sagt RubyGems seine git Repo holen und seine installiert, aber wenn ich gem list gemnamees wird in meinen lokal installierten Edelsteinen nicht angezeigt.
FilBot3
nvm, es ist, weil ich erwarte, bundle installzu installieren, als ob es global wäre, oder für alle rubygems. Dies geschieht jedoch pro Projekt oder manchmal pro Benutzer. github.com/bundler/bundler/issues/3070#issuecomment-46361014
FilBot3
Zumindest für unsere Umgebung gibt die github:Kennung die transmits data without encryptionWarnung aus, die ich vermeiden möchte. Das Konvertieren in einen git:Bezeichner mit reicht httpsmöglicherweise nicht aus, da ich auch einen Zweig angeben muss.
Pysis
In Bezug auf die Installation mit Github-Quell-ID: 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.- gemäß dem von Ihnen angegebenen Link
Danny Bullis
64
  1. Klonen Sie das Git-Repository.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Wechseln Sie in das neue Verzeichnis.

    cd authlogic
    
  3. Kasse Zweig

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Baue den Edelstein.

    $ rake build gem
    
  5. Installiere den Edelstein.

    $ gem install pkg/gemname-1.23.gem
    
janic_
quelle
14
Ich musste 4. auf "Rake Build" ändern, um den Edelstein zu bauen.
Raphael_Turtle
6
Anstelle von 4. Ich musste Gem Build Name-of-File.gemspec verwenden, um den Gem Rake Build zu erstellen. O Rake
Gem
5
Anstelle von 4 und 5 können Sie "Rake Install" machen
Drinor
2
Oder direkt von Github: gem 'rails', :github => 'rails', :branch => '5.0-stable'- Link: bundler.io/v1.3/git.html
Danny
@Danny das wäregithub: 'rails/rails'
Cameron Martin
5

Ich muss die Antwort von @ janic_ ändern, damit es funktioniert. Hoffe, es wird anderen Ruby Noobs wie mir helfen.

  1. Klonen Sie das Git-Repository.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Wechseln Sie in das neue Verzeichnis.

    $ cd authlogic
    
  3. Kasse Zweig

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Bundles installieren

    $ bundle install
    
  5. Baue den Edelstein.

    $ rake build
    
  6. Installiere den Edelstein.

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

Angenommen, Sie sind ein Bundler-Benutzer.

$ bundle install

installiert die in Ihrer Gemfile aufgelisteten Edelsteine. (Und wenn Sie kein Bundler-Benutzer sind, warum haben Sie eine Gem-Datei?

sampablokuper
quelle
Wenn Sie diese Antwort ablehnen möchten, erklären Sie bitte zunächst, warum Sie der Meinung sind, dass sie abgelehnt werden sollte. Abstimmungen ohne konstruktives Feedback sind nicht hilfreich, um das Verständnis zu erleichtern. Vielen Dank.
Sampablokuper