Github Şubesinden Gem yüklensin mi?


95

Mücevher dosyamda bu var:

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

Test edebilmek için bunu bir mücevher olarak nasıl kurarım?

Yanıtlar:


203

Cevheri yerel olarak inşa etmenize gerek yok. Gem dosyanızda ref, branch veya tag ile bir github kaynağı belirtebilirsiniz.

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"

Sonra koşarsınız bundle installveya kısa form adildir bundle.

Buradan daha fazla bilgi edinin: http://bundler.io/man/gemfile.5.html#GIT

Güncelleme: Orada bir github kaynak tanımlayıcı .

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

Ancak, kullanmaya karşı uyarıyorlar: 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'dan sonra, Gemfile'ın üst kısmına yakın olan bu ifade ile yukarıdaki sorunu aşabilirsiniz:

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

2017'den güncelleme, GitHub kaynak tanımlayıcısını çalışacak şekilde alamadım ama: git => ref iyi çalışıyor
Amias

Belki onun, Windows maskaralık, ancak Windows 10 RubyInstaller 2.3 ile, ben bundan yayınlanmamış olan var bir taş için bu aynı kurulumu var ve ben sorunu bundle installkomutu, RubyGems onun git repo getirilirken diyor ve onun yükledim ancak ne zaman gem list gemnameonu yerel olarak yüklenmiş mücevherlerimde görünmüyor.
FilBot3

nvm, bunun nedeni bundle install, sanki küreselmiş gibi veya tüm rubygemler için yüklemeyi umuyorum. ancak bunu proje başına veya bazen kullanıcı başına yapıyor. github.com/bundler/bundler/issues/3070#issuecomment-46361014
FilBot3

En azından çevremiz için, github:tanımlayıcı transmits data without encryptionkaçınmak istediğim uyarısını veriyor . İle bir git:tanımlayıcıya dönüştürmek httpsyeterli olmayabilir, çünkü benim de belirtmem gereken bir dal var.
Pysis

Github kaynak tanımlayıcısıyla yüklemeyle ilgili olarak: 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.- verdiğiniz bağlantıya göre
Danny Bullis

64
  1. Git deposunu klonlayın.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Yeni dizine geçin.

    cd authlogic
    
  3. Ödeme şubesi

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Mücevheri inşa edin.

    $ rake build gem
    
  5. Gem'i kurun.

    $ gem install pkg/gemname-1.23.gem
    

14
Cevheri inşa etmek için 4. "tırmık inşa" olarak değiştirmem gerekiyordu.
raphael_turtle

6
4 yerine gem build name-of-file.gemspec kullanmak zorunda kaldım gem rake inşa etmek için o rake gem benim için işe yaramadı
marimaf

5
4 ve 5 yerine "tırmıkla yükleme" yapabilirsiniz
drinor

2
Veya doğrudan github'dan : gem 'rails', :github => 'rails', :branch => '5.0-stable'- bağlantı: bundler.io/v1.3/git.html
Danny

1
Benim için gem build <gem-name>.gemspecçalıştı. Ben var vermedi rakeGemfile listelenen. Yani rake build gemfırlatılan tırmık paketin bir parçası değil. gemfile ekle
RajaRaviVarma

6

Çalışması için @ janic_'nin yanıtını değiştirmem gerekiyor. Umarım benim gibi diğer Ruby noob'lara yardımcı olur.

  1. Git deposunu klonlayın.

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. Yeni dizine geçin.

    $ cd authlogic
    
  3. Ödeme şubesi

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. Paketleri yükleyin

    $ bundle install
    
  5. Mücevheri inşa edin.

    $ rake build
    
  6. Gem'i kurun.

    $ gem install pkg/gemname-1.23.gem
    

-1

Bundler kullanıcısı olduğunuzu varsayarsak,

$ bundle install

Gemfile'ınızda listelenen mücevherleri yükleyecektir. (Ve eğer bir Bundler kullanıcısı değilseniz, neden bir Gemfile'ınız var?


Bu yanıta olumsuz oy vermeyi düşünüyorsanız , lütfen önce neden olumsuz oy vermesi gerektiğini düşündüğünüzü açıklayın . Yapıcı geri bildirim olmadan olumsuz oylar, anlayışı kolaylaştırmaya yardımcı olmaz. Teşekkürler.
sampablokuper
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.