ใน gemfile ของฉันฉันมีสิ่งนี้:
gem "authlogic", :git => "git://github.com/odorcicd/authlogic.git", :branch => "rails3"
ฉันจะติดตั้งเป็นอัญมณีเพื่อทดสอบได้อย่างไร
ใน gemfile ของฉันฉันมีสิ่งนี้:
gem "authlogic", :git => "git://github.com/odorcicd/authlogic.git", :branch => "rails3"
ฉันจะติดตั้งเป็นอัญมณีเพื่อทดสอบได้อย่างไร
คำตอบ:
คุณไม่จำเป็นต้องสร้างอัญมณีในพื้นที่ ใน 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 install
bundle
อ่านเพิ่มเติมได้ที่นี่: 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" }
bundle install
คำสั่ง RubyGems กล่าวว่าการเรียกของ repo คอมไพล์และติดตั้งของมัน แต่เมื่อฉันทำgem list gemname
มัน ไม่ปรากฏในอัญมณีที่ติดตั้งในเครื่องของฉัน
bundle install
จะติดตั้งเหมือนกับว่าเป็น global หรือสำหรับ Ruby ทั้งหมด อย่างไรก็ตามมันทำต่อโครงการหรือบางครั้งต่อผู้ใช้ github.com/bundler/bundler/issues/3070#issuecomment-46361014
github:
ตัวระบุจะให้transmits data without encryption
คำเตือนว่าฉันต้องการหลีกเลี่ยง การแปลงเป็นgit:
ตัวระบุhttps
อาจไม่เพียงพอเนื่องจากฉันมีสาขาที่จะระบุด้วย
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.
- ตามลิงค์ที่คุณให้มา
โคลนที่เก็บ Git
$ git clone git://github.com/odorcicd/authlogic.git
เปลี่ยนเป็นไดเร็กทอรีใหม่
cd authlogic
สาขาชำระเงิน
$ git checkout -b rails3 remotes/origin/rails3
สร้างอัญมณี
$ rake build gem
ติดตั้งอัญมณี
$ gem install pkg/gemname-1.23.gem
gem 'rails', :github => 'rails', :branch => '5.0-stable'
- link: bundler.io/v1.3/git.html
gem build <gem-name>.gemspec
ทำงาน ฉันไม่ได้rake
ระบุไว้ใน Gemfile ดังนั้นrake build gem
โยนคราดไม่ได้เป็นส่วนหนึ่งของมัด เพิ่มลงใน gemfile
ฉันต้องแก้ไขคำตอบของ @janic_ เพื่อให้มันใช้งานได้ หวังว่าจะช่วยให้ทับทิมคนอื่น ๆ เช่นตัวเอง
โคลนที่เก็บ Git
$ git clone git://github.com/odorcicd/authlogic.git
เปลี่ยนเป็นไดเร็กทอรีใหม่
$ cd authlogic
สาขาชำระเงิน
$ git checkout -b rails3 remotes/origin/rails3
ติดตั้งบันเดิล
$ bundle install
สร้างอัญมณี
$ rake build
ติดตั้งอัญมณี
$ gem install pkg/gemname-1.23.gem
สมมติว่าคุณเป็นผู้ใช้ Bundler
$ bundle install
จะติดตั้งอัญมณีที่ระบุไว้ใน Gemfile ของคุณ (และถ้าคุณไม่ใช่ผู้ใช้ Bundler ทำไมคุณถึงมี Gemfile?