Ruby 1.9.2-p0'ımı rvm kullanarak en son yama seviyesine nasıl yükseltirim?


116

Şu anki ruby ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]sürümüm , ancak rvm kullanarak onu en son yama seviyesine güncellemek istiyorum. Bunu nasıl yapabilirim?

Yanıtlar:


163

Öncelikle, RVM kurulumunuzu çalıştırarak güncelleyin rvm get stable.

Yeni RVM sürümünü çalıştırdığınızdan emin olmak için, daha sonra çalıştırmanız rvm reload(veya sadece yeni bir terminal açmanız) gerekir.

Bu tamamlandığında, RVM'den çalıştırarak kurulabilecek Ruby sürümlerini listelemesini isteyebilirsiniz rvm list known.

Çıktıda şimdi şunu görmelisiniz:

# MRI Rubies
...
[ruby-]1.9.2[-p320]
...

Yama seviyesinin etrafındaki köşeli parantezler, bunun şu anda RVM'nin Ruby 1.9.2 için varsayılan yama seviyesi olduğunu göstermektedir.

Son olarak, yeni Ruby versiyonunu kurmak için sadece çalıştırın rvm install 1.9.2- ve derlenmesini bekleyin!


29
Alıyorsanız olanlar için rvm güncelleme kaldırılmıştır: HATA. - rvm get latest/ rvm get headşimdi rvm'yi yükseltmenin doğru yolları.
jibiel

98

Ruby yorumlayıcısını yükseltin ve mevcut mücevher setlerini koruyun:

$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y

1.9.2'nin en son kararlı sürümüyle değiştirmek için. Bu dağınıklığı önler.

Yorumlara teşekkürler (@Mauro, @James, @ACB)

$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby

3
Ayrıca, rvm list knownyükseltme yapabileceğiniz mevcut Ruby versiyonlarını görmek için yapabilirsiniz.
James Chevalier

@Mauro Nidola tarafından önerilen düzenleme "$ rvm yükseltmesi 1.9.2 1.9.2-p0, $ rvm yükseltmesi 1.9.2-p0 1.9.2" olarak değiştirilmelidir
iDev

@ACB yorumunu göremiyorum, değişeceğim, temsilciniz bana iki kez kontrol etmem gerekmediğini söylüyor. Ayrıca James yorumuyla da güncelleniyorum
oma

@oma, farklı bir teknolojiden geliyorum. Yani bunu iki kez kontrol etmeniz gerekebilir. Bu, geçersiz bir düzenleme olarak reddedilen biri tarafından önerilen bir düzenlemeydi. Bu stackoverflow.com/review/suggested-edits/1365082'yi kontrol edin . İdeal olarak bir yorum olarak göndermesi gerekirdi, onun yerine ben yazdım.
iDev

34

İlk güncelleme RVM:

rvm get stable

Ardından Ruby sürümünüzü güncelleyin:

rvm upgrade 2.0.0

Tüm sorular için evet'i seçin:

Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y

Mücevherlerinizi en son sürümlere güncellemek isterseniz şunları yapabilirsiniz:

rvm all do gem update

DÜZENLEME: Bunu bugün ruby ​​2.0.0'ın en son sürümü için yaptım (ruby-2.0.0-p195'ten ruby-2.0.0-p353'e güncelledim). Bundan sonra, mücevherleri güncellemeye çalıştığımda segmentasyon hatası alıyordum. Bunun nedeni mücevherlerin Ruby-2.0.0-p195 için kurulmuş olması ve bazılarının p353 ile uyumsuz olmasıdır.

Şimdi gidip uyumsuz mücevherleri bulmaya çalışabilirsiniz, ancak en kolay çözüm tüm yüklü mücevherleri kaldırıp yeniden yüklemekti. Sadece gems/ruby-2.0.0-p353içinde bulunan dizini kaldırdım /usr/local/rvm. Senin için başka bir yer olabilir.

Sonra koştum gem install bundlerve her ray uygulaması için yaptım bundle install.


16

bunun gibi:

rvm update; rvm reload
rvm install ruby-1.9.2-p136 
rvm --default ruby-1.9.2-p136

3
Bu cevabı beğendim. Ruby'nin sürümünü yükseltmenin, rvm kullanma amacını bozduğunu hissediyorum. P0 ile birlikte ayrı bir sürüm kurmak ve ardından daha yeni (veya hangisi) sürümü varsayılan olarak bildirmek şık görünüyor.
Tass

2
Belirli bir Ruby sürümünde güvenlik açıkları keşfedildiğinde olduğu gibi, bazen güvenlik nedenleriyle en son yamaya yükseltmek gerekir.
Asad R.

2

Wiki sayfasındaki sayfayı takip ederek herhangi bir yama seviyesini kurabilirsiniz .

Ayrıca, her bir yakut bağımsızdır, bu nedenle gerçekten 'taşları yükseltip saklamıyorsunuz', ancak yeni bir yama sürümü yükleyip ardından taşları bu yeni yakut ortamına yüklüyorsunuz.

Bu mücevherlerin devreye girmesi olabilir, ancak onları kullanmıyorum.

Biraz zaman geçmişse diye rvm'nizi de güncellemeyi unutmayın.


2

npad'in cevabı kesinlikle temelleri ortaya koyuyor, bu yüzden bu adımları tekrar etmeyeceğim, ancak burada kullanmayı öneren birkaç cevap var rvm upgrade . Rvm'nin size seçenek sunduğunu biliyorum, ancak bu biraz tehlikeli.

IMO, daha güvenli ve daha "rvm yolu", ilk rvm installolarak yeni Ruby versiyonunu kullanmak, ardından da rvm gemset copymücevher setlerinizi yeni Ruby versiyonuna kopyalamak için komutu kullanmaktır , örn rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset. Ardından, projenizi yeni kopyalanmış mücevher setini kullanmaya kolayca geçirebilirsiniz (.rvmrc proje dizininizdeki dosyayı ) ve kodunuzun başarısız olup olmadığını görebilirsiniz. Eğer öyleyse, eski yakut versiyonuna geri dönmek sadece mücevher setini değiştirmekle ilgilidir.

Ancak mücevher setleri kullanmasanız bile (bu soruya rayları etiketlediğinizden beri kullandığınızı varsayıyorum), kullanımı rvm upgradebeklenmedik arızalara yol açabilir. Ve kodunuz bozulursa, şimdi eski sürümü yeniden yüklemeniz gerekir. Sadece biraz daha zaman ayırın ve temiz bir şekilde yapın.


1

Sanırım bu rvm install 1.9.2-head

Mevcut yakutları görebilirsiniz rvm list known


headen son yama seviyesini alacak mı? En son sürüm için olduğunu düşündüm, yani dengesiz ve deneysel bir şey olabilirdi.
Lan

Ahaa, doğru. En son ve yama seviyesini karıştırdım.
Heikki

1

Bu blog yazısı yardımcı olmalıdır: http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development

şartları:

rvm get head
rvm reload

wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched

Bu teorik olarak soruya cevap olsa da, tercih edildiğini burada cevabın temel parçalarını kapsadığı ve başvuru için bağlantı sağlar.
Bill the Lizard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.