ติดตั้งอัญมณีจากสาขา Github?


คำตอบ:


203

คุณไม่จำเป็นต้องสร้างอัญมณีในพื้นที่ ใน gemfile ของคุณคุณสามารถระบุแหล่งที่มา github ด้วย ref, branch หรือ 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"

จากนั้นคุณเรียกใช้หรือแบบสั้นเป็นเพียงbundle installbundle

อ่านเพิ่มเติมได้ที่นี่: http://bundler.io/man/gemfile.5.html#GIT

อัปเดต:มีตัวระบุแหล่งที่มา GitHub

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

อย่างไรก็ตามพวกเขาเตือนไม่ให้ใช้มัน: 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 คุณสามารถแก้ไขปัญหาข้างต้นได้ด้วยคำสั่งนี้ที่อยู่ใกล้ด้านบนสุดของ Gemfile:

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

อัปเดตจากปี 2017 ฉันไม่สามารถรับตัวระบุแหล่งที่มา GitHub ให้ทำงานได้ แต่: git => ref ใช้งานได้ดี
Amias

บางทีแง่ของ Windows แต่มี RubyInstaller 2.3 บน Windows 10 ฉันมีนี้ติดตั้งเหมือนกันสำหรับอัญมณีที่ฉันมีที่ unreleased และผมออกbundle installคำสั่ง RubyGems กล่าวว่าการเรียกของ repo คอมไพล์และติดตั้งของมัน แต่เมื่อฉันทำgem list gemnameมัน ไม่ปรากฏในอัญมณีที่ติดตั้งในเครื่องของฉัน
FilBot3

nvm เป็นเพราะฉันคาดหวังว่าbundle installจะติดตั้งเหมือนกับว่าเป็น global หรือสำหรับ Ruby ทั้งหมด อย่างไรก็ตามมันทำต่อโครงการหรือบางครั้งต่อผู้ใช้ github.com/bundler/bundler/issues/3070#issuecomment-46361014
FilBot3

อย่างน้อยสำหรับสภาพแวดล้อมของเราgithub:ตัวระบุจะให้transmits data without encryptionคำเตือนว่าฉันต้องการหลีกเลี่ยง การแปลงเป็นgit:ตัวระบุhttpsอาจไม่เพียงพอเนื่องจากฉันมีสาขาที่จะระบุด้วย
Pysis

เกี่ยวกับการติดตั้งด้วยตัวระบุแหล่งที่มาของ 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.- ตามลิงค์ที่คุณให้มา
Danny Bullis

64
  1. โคลนที่เก็บ Git

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. เปลี่ยนเป็นไดเร็กทอรีใหม่

    cd authlogic
    
  3. สาขาชำระเงิน

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. สร้างอัญมณี

    $ rake build gem
    
  5. ติดตั้งอัญมณี

    $ gem install pkg/gemname-1.23.gem
    

14
ฉันต้องการเปลี่ยน 4. เป็น "คราดสร้าง" เพื่อสร้างอัญมณี
raphael_turtle

6
แทนที่จะเป็น 4 ฉันต้องใช้ gem build name-of-file.gemspec เพื่อสร้าง gem rake build o rake gem ไม่ได้ผลสำหรับฉัน
marimaf

5
แทนที่จะเป็น 4 และ 5 คุณสามารถทำ "rake install" ได้
drinor

2
หรือตรงจาก github: gem 'rails', :github => 'rails', :branch => '5.0-stable'- link: bundler.io/v1.3/git.html
Danny

1
สำหรับฉันgem build <gem-name>.gemspecทำงาน ฉันไม่ได้rakeระบุไว้ใน Gemfile ดังนั้นrake build gemโยนคราดไม่ได้เป็นส่วนหนึ่งของมัด เพิ่มลงใน gemfile
RajaRaviVarma

6

ฉันต้องแก้ไขคำตอบของ @janic_ เพื่อให้มันใช้งานได้ หวังว่าจะช่วยให้ทับทิมคนอื่น ๆ เช่นตัวเอง

  1. โคลนที่เก็บ Git

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. เปลี่ยนเป็นไดเร็กทอรีใหม่

    $ cd authlogic
    
  3. สาขาชำระเงิน

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. ติดตั้งบันเดิล

    $ bundle install
    
  5. สร้างอัญมณี

    $ rake build
    
  6. ติดตั้งอัญมณี

    $ gem install pkg/gemname-1.23.gem
    

-1

สมมติว่าคุณเป็นผู้ใช้ Bundler

$ bundle install

จะติดตั้งอัญมณีที่ระบุไว้ใน Gemfile ของคุณ (และถ้าคุณไม่ใช่ผู้ใช้ Bundler ทำไมคุณถึงมี Gemfile?


หากคุณกำลังคิดที่จะลงคะแนนคำตอบนี้โปรดอธิบายก่อนว่าเหตุใดคุณจึงคิดว่าคำตอบนี้ควรโหวตไม่ลง การโหวตลงโดยไม่มีข้อเสนอแนะเชิงสร้างสรรค์ไม่เป็นประโยชน์ในการอำนวยความสะดวกในการทำความเข้าใจ ขอบคุณ.
sampablokuper
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.