ฉันต้องการติดตั้งอัญมณีจากแหล่ง GitHub ล่าสุด
ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องการติดตั้งอัญมณีจากแหล่ง GitHub ล่าสุด
ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
ในกรณีที่คุณใช้งาน Bundler คุณต้องเพิ่มสิ่งนี้ใน Gemfile ของคุณ:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
และในกรณีที่มีไฟล์ก็ควรจะสามารถที่จะดึงข้อมูลและติดตั้งอัญมณีเมื่อทำงาน.gemspec
bundle install
UPD ตามที่ระบุไว้ในความคิดเห็นเพื่อให้ Bundler ทำงานได้อย่างถูกต้องคุณต้องเพิ่มสิ่งต่อไปนี้ในconfig.ru
:
require "bundler"
Bundler.setup(:default)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.html
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- :tag => ''
ส่วน
ดีขึ้นอยู่กับโครงการที่มีปัญหา บางโครงการมีไฟล์ * .gemspec ในไดเรกทอรีราก ในกรณีนั้นมันจะเป็น
gem build GEMNAME.gemspec
gem install gemname-version.gem
โครงการอื่น ๆ มีงานเรคเรียกว่า "อัญมณี" หรือ "สร้าง" หรืออะไรทำนองนั้นในกรณีนี้คุณต้องเรียกใช้ "เรค" แต่ขึ้นอยู่กับโครงการ
ในทั้งสองกรณีคุณต้องดาวน์โหลดแหล่งที่มา
gemname-version.gem
ไฟล์ถูกสร้างขึ้นเมื่ออัญเชิญgem build
gem install gemname-version.gem
คำสั่งติดตั้งอัญมณีคอมไพล์ในประเทศ? ฉันไม่สามารถหาที่ใดก็ได้ในเครื่องท้องถิ่นที่ติดตั้ง gem engine ด้วยวิธีนี้ Bundler ซ่อนอยู่ที่ไหน?
gem install gemname-version.gem
บรรทัดควรเป็นgem install --local gemname-version.gem
gem which gemname
ควรบอกคุณหรือไม่ว่าอัญมณีชนิดใดที่ไม่เหมาะกับคุณ?
ลองใช้gem specific_install ซึ่งจะช่วยให้คุณติดตั้ง gem ได้จากที่เก็บ github (เช่น 'edge') หรือจาก URL ที่กำหนดเอง มีประโยชน์อย่างมากสำหรับการฟอร์กอัญมณีและแฮ็คมันบนเครื่องหลายเครื่องและเช่นนั้น
gem install specific_install
gem specific_install -l <url to a github gem>
เช่น
gem specific_install https://github.com/githubsvnclone/rdoc.git
specific_install
อัญมณีได้ไหม?
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
ฟังดูเท่มาก แต่ฉันจะไม่มองมันอีกต่อไป แค่ต้องการโพสต์ว่ามันไม่ได้ผลสำหรับฉันในกรณีที่คนอื่นกำลังจะให้มันหมุนวนตามคำแนะนำ SO
Bundlerช่วยให้คุณใช้อัญมณีโดยตรงจากที่เก็บ git ใน Gemfile ของคุณ:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'
# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'
สำหรับข้อมูลเพิ่มเติมโปรดดูhttps://bundler.io/v2.0/guides/git.html
bundle
git-gem- dependencies ดังกล่าวจะไม่ถูกติดตั้งแบบโกลบอล แต่จะอยู่ในโฮมไดเร็กตอรี่ของผู้ใช้ปัจจุบันแทน ผู้โดยสารจะทำงานทับทิมในขณะที่ผู้ใช้เว็บเซิร์ฟเวอร์ของคุณ (เช่นwww-data
) ซึ่งไม่สามารถเข้าถึงไดเรกทอรีนี้ดังนั้น "git-gem" นี้จะไม่ถูกโหลด ... is not yet checked out. Run bundle install first
คุณจะได้รับข้อผิดพลาด
OBSOLETE (ดูความคิดเห็น)
หากโครงการมาจาก github และมีอยู่ในรายการบนhttp://gems.github.com/list.htmlคุณสามารถเพิ่ม repo github ไปยังแหล่ง gems เพื่อติดตั้ง:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
หากคุณได้รับอัญมณีจากที่เก็บ GitHub สาธารณะคุณสามารถใช้ชวเลข
gem 'nokogiri', github: 'tenderlove/nokogiri'
นอกจากนี้คุณสามารถทำ gem install username-projectname -s http://gems.github.com
ใน Gemfile ของคุณเพิ่มต่อไปนี้:
gem 'example', :git => 'git://github.com/example.git'
คุณยังสามารถเพิ่มตัวเลือกการอ้างอิงสาขาและแท็ก
ตัวอย่างเช่นหากคุณต้องการดาวน์โหลดจากสาขาใดสาขาหนึ่ง:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
จากนั้นเรียกใช้:
bundle install
หากคุณติดตั้งโดยใช้ Bundler ตามที่แนะนำโดย gryzzly และอัญมณีสร้างไบนารีแล้วตรวจสอบให้แน่ใจว่าคุณใช้มันbundle exec mygembinary
เพราะอัญมณีจะถูกเก็บไว้ในไดเรกทอรี Bundler ซึ่งไม่สามารถมองเห็นได้บนเส้นทางอัญมณีปกติ
บนเครื่อง Linux git
สดคุณยังจำเป็นต้องติดตั้ง Bundle ใช้มันอยู่เบื้องหลัง
require "bundler" Bundler.setup(:default)
ดูเอกสารของ Bundlerสำหรับรายละเอียดเพิ่มเติม