หากฉันดาวน์โหลดไฟล์. gem ไปยังโฟลเดอร์ในคอมพิวเตอร์ของฉันฉันจะติดตั้งในภายหลังได้gem install
ไหม
หากฉันดาวน์โหลดไฟล์. gem ไปยังโฟลเดอร์ในคอมพิวเตอร์ของฉันฉันจะติดตั้งในภายหลังได้gem install
ไหม
คำตอบ:
เมื่อคุณทำเช่นgem install
นั้นมันจะค้นหาไดเรกทอรีปัจจุบันก่อนดังนั้นหากไฟล์. gem ของคุณอยู่ที่นั่นมันจะมารับมัน ฉันพบมันในการอ้างอิงอัญมณีซึ่งคุณอาจพบว่ามีประโยชน์เช่นกัน:
gem install จะติดตั้ง gem ที่มีชื่อ มันจะพยายามติดตั้งภายในเครื่อง (เช่นไฟล์. gem ในไดเรกทอรีปัจจุบัน) และหากไม่สำเร็จจะพยายามดาวน์โหลดและติดตั้งอัญมณีรุ่นล่าสุดที่คุณต้องการ
Gemfile
แต่ไม่ใช่.gem
ไฟล์ .gem
ไฟล์นี้คืออะไร? มันควรมีอะไร? - รอ - ฉันเห็น คุณหมายถึงgem-name.gem
ไฟล์ จำไว้ว่าในยูนิกซ์เป็นเรื่องปกติที่จะมีไฟล์ขึ้นต้นด้วย '.' ดังนั้นจึงเป็นการดีกว่าที่จะสะกดออก
นอกจากนี้คุณสามารถใช้ gem install --local path_to_gem/filename.gem
--local
นี้จะข้ามปกติอัญมณีสแกนพื้นที่เก็บข้อมูลที่เกิดขึ้นเมื่อคุณออกนอก
คุณสามารถค้นหามายากลอื่น ๆ gem install --help
ที่มี
คุณยังสามารถใช้ชื่อไฟล์แบบเต็มไปยังไฟล์อัญมณีของคุณ:
gem install /full/path/to/your.gem
ใช้งานได้เช่นกัน - อาจเป็นวิธีที่ง่ายที่สุด
หากคุณสร้างอัญมณีด้วย Bundler:
# do this in the proper directory
bundle gem foobar
คุณสามารถติดตั้งด้วยเรคหลังจากเขียน:
# cd into your gem directory
rake install
โอกาสที่อัญมณีที่คุณดาวน์โหลดจะต้องรู้rake install
เช่นกัน
หากคุณดาวน์โหลดไฟล์โครงการจาก github หรือไซต์โฮสต์ scm อื่น ๆ ให้ใช้ gem build เพื่อสร้างโครงการก่อนเพื่อให้คุณสามารถรับไฟล์ Anything.gem ในไดเรกทอรีปัจจุบัน จากนั้นติดตั้งอัญมณี!
หากคุณต้องการทำงานกับอัญมณีที่ได้รับการดัดแปลงในท้องถิ่นวิธีที่ดีที่สุดคือ
gem 'pry', path: './pry'
ใน Gemfile
... ที่ซึ่ง./pry
จะเป็นที่เก็บโคลนของคุณ เรียกใช้เพียงbundle install
ครั้งเดียวและการเปลี่ยนแปลงใด ๆ ในแหล่งอัญมณีที่คุณทำจะมีผลทันที ด้วยgem install pry/pry.gem
แหล่งที่มาจะยังคงถูกย้ายเข้าไปGEM_PATH
และคุณจะต้องเรียกใช้ทั้งสองbundle gem pry
และgem update
ทดสอบ
ไปที่เส้นทางที่อัญมณีอยู่และโทร gem install -l gemname.gem
นี่คือการติดตั้งแบบแห้งของฉัน:
[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
)*.gems
ไฟล์" ทั้งหมดไปยังคอมพิวเตอร์โดยไม่มีอัญมณีในตำแหน่งแคชอัญมณีของตนเอง (โดยค่าเริ่มต้นจะใช้เส้นทางผู้อุปถัมภ์เดียวกันในขั้นตอนแรก:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
)[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
) และดำเนินการgem install anygemwithdependencieshere
(ตามตัวอย่างcucumber-2.99.0
)เป็น DRY เพราะหลังจากติดตั้ง gem ใด ๆ โดยค่าเริ่มต้น rubygems จะใส่ไฟล์ gem ลงในไดเร็กตอรี่ cache gem และไม่เหมาะสมกับไฟล์ที่ซ้ำกันมันจะง่ายกว่าถ้าคุณต้องการคอมพิวเตอร์ทั้งสองรุ่นเดียวกัน (หรือ bloqued โดยกฎความปลอดภัย
แก้ไข: ในบางรุ่นของ rubygems หรือ rubygems มันไม่ทำงานและไฟแจ้งเตือนหรือข้อผิดพลาดคุณสามารถใส่อัญมณีในสถานที่อื่น แต่ไม่ได้รับ DRY ทางเลือกอื่นคือการใช้คำสั่งเปิดตัวแบบบูรณาการ
gem server
และเพิ่ม url localhost ในแหล่งอัญมณี ข้อมูลใน: https://guides.rubygems.org/run-your-own-gem-server/
คุณสามารถดาวน์โหลดอัญมณีได้จากhttps://rubygems.org/gems/หรือสร้างอัญมณีประจำท้องถิ่นของคุณผ่านชุดและชั้นวาง
เช่น:
ดูแลการติดตั้งการพึ่งพาก่อนติดตั้งพลอยจริง
หมายเหตุ: หากใช้ fluentd td-agent และ ruby บนเครื่องเดียวกัน โปรดตรวจสอบให้แน่ใจว่าใช้คำสั่ง td-agent-gem ของ td-agent td-agent มีรูบีของตัวเอง