2011-10-06 11 views
17

Bilgisayarımda iki projem var: - Rubygems 1.6'ya ihtiyaç duyan eski bir Rails 2.3 uygulaması ve rubygems 1.8 altında çalışmayacaksınız; - rubygems 1.8 ihtiyacı ve rubygems 1.6 altında çalışmayacak yeni bir uygulama.rvm ile birden çok rubygems sürümü kullanın?

Her proje kendi rvm gemset vardır, ama onlara rubygem'ler kendisi farklı versiyonlarını vermek anlamaya olamaz:

  • mücevher --system [sürüm] taş version verme sonuçları güncellemek her ikisinde de aynı cevap;
  • rvm gemset [sürüm] aynı sonuca sahiptir.

Rubygems 1.6.2'yi bir projede ve 1.8.11'de nasıl çalıştırabilirim?

dizin A'da
  • , A gemset seçmek komutları ve rubygem'ler 1.6.2 dizinde
  • B ile .rvmrc vardır:

    burada yapmak istediğim şey, netleştirmek için , en son
  • 'u seçen komutlar içeren bir .rvmrc komutuna sahip olmalısınız. İki terminal oturumu aynı anda açılır, biri A dizininde ve diğeri B
  • Tip dizin A'da "mücevher version" ve dizin B'de "1.6.2"
  • Tür "taş --version" görmek ve "1.8.11" bakınız

cevap

17

doğru yolu yaratılan farklı adlandırılmış (-n) etmektir istediğiniz yakut yükler Aşağıdaki gibi

rvm --install use 1.9.2-nrg186 && rvm rubygems 1.8.6 && gem --list 
rvm --install use 1.9.2-nrg1810 && rvm rubygems 1.8.10 && gem --list 

Bunun nedeni istediğiniz rubygem sürümüne göre kurulup onlara isim sadece 1 versio sahip olmasıdır rubylerin n herhangi bir zaman aktif. Bu ayrıca, her bir yakutun, çalıştığı bilinen veya beklenen bir spesifik rubygems versiyonuna bağımlılık tanımlamasıdır (başka biriyle çalışıp çalışmadığı farketmez). Birden fazla yakut ihtiyacını ele almanın ve olası problemleri ortadan kaldırmanın beklenen yolu budur. Bunu detaylarıyla ilgili ayrıntılar için bkz. https://gist.github.com/1273035.

9

RVM yeni bir özellik için vardır Bu, rubygems'in bu versiyonunu seçmek için "rvm rubygems 1.6.2" yi kullanmaktadır.

rvm rubygems 1.6.2 

https://rvm.io/rubies/rubygems/ (bkz: Sayfanın alt kısmına doğru "RubyGems CLI API")

http://groups.google.com/group/rubyversionmanager/browse_thread/thread/e39fc7827d2d22e8

+0

Bu, sorunun cevabını değil, çeşitli taşların farklı sürümlerini değil, 'gem' yürütülebilir dosyasının farklı bir sürümünü nasıl kullanacağınız sorusunu yanıtlamaz. –

+0

bunu da fark ettim ve cevabımı değiştirdim – Tilo

+1

İyi görünüyor. Bunu test ettiniz ve bunu hiçbir sorun olmadan '.rvmrc' dosyasına yerleştirebilirsiniz. –