จะติดตั้งพลอยทับทิมเฉพาะรุ่นได้อย่างไร?


884

การใช้gemเครื่องมือบรรทัดคำสั่งฉันจะติดตั้ง gem รุ่นใดรุ่นหนึ่งได้อย่างไร

คำตอบ:


1158

ใช้-vธง:

$ gem install fog -v 1.8

60
gem uninstall fogถ้าเช่นฉันคุณได้ติดตั้งไว้ก่อนหน้านี้รุ่นที่ใหม่กว่าอัญมณีและของดีของคุณแล้วคุณจะต้องถอนการติดตั้งรุ่นที่ใหม่กว่าด้วยเช่น มันจะถามคุณว่าจะถอนการติดตั้งเวอร์ชันใดถ้าคุณมีมากกว่าหนึ่ง
Dizzley

3
ฉันมี rake 3 รุ่น: gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7).. ฉันได้รับราง 2.3.5 โครงการและอีกอันคือ 3.0 ที่ฉันกำลังทำงานในเวลาเดียวกัน .. ฉันจะใช้ rake รุ่นเฉพาะสำหรับแต่ละโครงการได้อย่างไร (เช่นตามคำสั่ง บรรทัด?)
abbood

@abbood rake _10.1.1_ ...ควรทำงานได้สำหรับใครก็ตามที่ต้องการทราบ :)
Koen

เป็นที่น่าสังเกตว่าสิ่งนี้ดูเหมือนจะไม่ส่งผลกระทบต่อไบนารีที่ปฏิบัติการได้ การถอนการติดตั้งเวอร์ชันก่อนหน้านี้ใช้งานได้กับระบบไบนารี
Ciro Santilli 冠状病毒审查六四事件法轮功

อีกครั้งอยากให้ฉันทำหลาย upvotes บางทีถ้าพวกเขาต้องแยกจากกันอย่างน้อยหนึ่งปี :)
ดอนแบรนสัน

192

ใช้--versionพารามิเตอร์ (ทางลัด-v):

$ gem install rails -v 0.14.1

คุณยังสามารถใช้ตัวเปรียบเทียบรุ่นเช่น>=หรือ~>

$ gem install rails -v '~> 0.14.0'

หรือด้วยอัญมณีเวอร์ชั่นใหม่กว่า:

$ gem install rails:0.14.4 rubyzip:'< 1'

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

สิ่งนี้ใช้ได้กับ ~> แต่ถ้าคุณมีสถานการณ์ประเภท '<0.9,> = 0.7' ล่ะ ฉันพยายามใช้อาร์กิวเมนต์ v สองตัวและดูเหมือนว่าข้อแรกถูกเพิกเฉย การใช้ตัวคั่นจุลภาคจะไม่แยกวิเคราะห์แม้แต่ ฉันสิ้นสุดการลบมากกว่าความต้องการและมันเกิดขึ้นกับการติดตั้งรุ่นที่ยอมรับได้ แต่การมีทางออกที่เป็นทางการน่าจะดี
Joseph Coco

เครื่องมือเปรียบเทียบรุ่นใช้~>เพื่ออะไร
Dragas

หมายความว่าตัวเลขสุดท้ายได้รับอนุญาตให้เติบโต ( stackoverflow.com/questions/5170547/ … )
schmijos

93

สำหรับการติดตั้ง gem install gemname -v versionnumber

สำหรับการถอนการติดตั้ง gem uninstall gemname -v versionnumber


80

สำหรับ Ruby 1.9+ ใช้โคลอน ..

gem install sinatra:1.4.4 prawn:0.13.0

คุณกำลังพยายามติดตั้งอัญมณีประเภทใด (และรุ่นใด)
Kokizzu

โปรดบอกฉันgem sourcesว่าถ้ามันว่างเปล่าให้เพิ่ม repo โดยใช้คำสั่งนี้:gem sources -a https://rubygems.org/
Kokizzu

ฉันgem -vแสดงให้เห็นว่าเมื่อเทียบกับของคุณ1.8.23 2.2.2ดูเหมือนว่าคุณลักษณะนี้ :) ใหม่
kolypto

Ruby 1.8 สิ้นสุดการสนับสนุนแล้วruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
Kokizzu

24

ดังที่คนอื่น ๆ สังเกตไว้โดยทั่วไปให้ใช้-vแฟล็กสำหรับgem installคำสั่ง

หากคุณกำลังพัฒนาอัญมณีในพื้นที่หลังจากตัดอัญมณีจาก gemspec ของคุณ:

$ gem install gemname-version.gem

สมมติว่ารุ่น 0.8 จะเป็นดังนี้:

$ gem install gemname-0.8.gem

3
คำตอบที่ดี ฉันขอแนะนำให้คุณเพิ่มบล็อกรหัสอื่นสำหรับตัวเลือกแฟล็ก "-v" เมื่อดวงตาของฉันอ่านคำตอบพวกเขาก็ไปที่บล็อคโค้ดทันทีไม่ใช่ข้อความที่อยู่รอบ ๆ หากคนอื่นทำเช่นเดียวกันพวกเขาจะพลาดส่วน "-v"
CamHart

8

ลินุกซ์

หากต้องการติดตั้ง ruby ​​รุ่นอื่นให้ตรวจสอบแพ็คเกจล่าสุดโดยใช้aptดังนี้:

$ apt-cache madison ruby
      ruby |    1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
      ruby |        4.5 | http://ftp.uk.debian.org/debian/ squeeze/main amd64 Packages

จากนั้นติดตั้ง:

$ sudo apt-get install ruby=1:1.9.3

หากต้องการตรวจสอบรุ่นปัจจุบันให้เรียกใช้:

$ gem --version # Check for the current user.
$ sudo gem --version # Check globally.

หากรุ่นยังเก่าคุณอาจลองเปลี่ยนรุ่นเป็นรุ่นใหม่โดยใช้ตัวจัดการเวอร์ชัน ruby ​​( rvm) โดย:

rvm 1.9.3

หมายเหตุ: คุณสามารถใส่คำนำหน้าได้sudoหากrvmติดตั้งไว้ทั่วโลก หรือเรียกใช้/usr/local/rvm/scripts/rvmถ้าคำสั่งของคุณไม่ได้อยู่ในโลกของคุณrvm PATHหากกระบวนการติดตั้ง rvm ล้มเหลวดูส่วนการแก้ไขปัญหา


การแก้ไขปัญหา:

  • หากคุณยังมีเวอร์ชั่นเก่าอยู่คุณอาจลองติดตั้ง rvm (ตัวจัดการเวอร์ชัน ruby) ผ่านทาง:

    sudo apt-get install curl # Install curl first
    curl -sSL https://get.rvm.io | bash -s stable --ruby # Install only for the user.
    #or:# curl -sSL https://get.rvm.io | sudo bash -s stable --ruby # Install globally. 
    

    ถ้าติดตั้งแบบโลคัล (สำหรับผู้ใช้ปัจจุบันเท่านั้น) ให้โหลด rvm ผ่าน:

    source /usr/local/rvm/scripts/rvm; rvm 1.9.3

    หากทั่วโลก (สำหรับผู้ใช้ทั้งหมด) ดังนั้น:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • หากคุณยังคงมีปัญหากับทับทิมรุ่นใหม่ให้ลองติดตั้งโดยใช้ rvm ผ่าน:

    source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3 # Locally.
    sudo bash -c "source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3" # Globally.
    
  • หากคุณต้องการติดตั้งอัญมณีทั่วโลกและคุณได้ติดตั้ง rvm แล้วคุณอาจลอง:

    rvmsudo gem install [gemname]

    แทน:

      gem install [gemname] # or:
      sudo gem install [gemname]
    

หมายเหตุ: ไม่ต้องการใช้ sudo เพื่อทำงานกับอัญมณี RVM เมื่อคุณทำ sudo คุณกำลังเรียกใช้คำสั่งเป็น root ผู้ใช้อื่นในเชลล์อื่นและด้วยเหตุนี้การตั้งค่าทั้งหมดที่ RVM ได้ทำเพื่อคุณจะถูกละเว้นในขณะที่คำสั่งทำงานภายใต้ sudo (เช่น GEM_HOME ฯลฯ ... ) ดังนั้นเพื่อย้ำอีกครั้งเมื่อคุณ 'sudo' คุณกำลังใช้งานในฐานะผู้ใช้ระบบรูทซึ่งจะล้างข้อมูลสภาพแวดล้อมของคุณรวมถึงไฟล์ใด ๆ ที่มันสร้างขึ้นจะไม่สามารถแก้ไขได้โดยผู้ใช้ของคุณและจะส่งผลให้เกิดสิ่งแปลก ๆ

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