Ruby Sürüm 2.0.0'ı Mac OSX Yosemite'deki en son sürüme nasıl güncellerim?


377

Yakut sürümümü 2.0.0'dan en son sürüme güncellemem gerekiyor, sürümüm güncellenmediği için bazı taşlar kullanamıyorum. Bir süre önce Ruby'yi yüklemek için Homebrew kullanmıştım, Ruby versiyonumu nasıl güncelleyebilirim?


yazdığınızda which rvmveya which rbenvkomut satırınızda ne olur
MageeWorld

@ChuchaC Lütfen, buraya ve buraya
vhristoskov

1
brew install rubyyeterli görünüyor . burada kontrol edin
Venugopal

Yanıtlar:


709

Terminalinizi açın ve çalıştırın

curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable

Bu tamamlandığında, size terminali yeniden başlatmanız gerekiyor için rvmçalışmalara komuta.

Şimdi koş rvm list known

Bu, yakut sürümlerinin listesini gösterir.

Şimdi, rvm install ruby@latesten son yakut sürümünü almak için çalıştırın .

Eğer yazarsanız ruby -vterminalde görmeniz gerekir ruby X.X.X.

Hala sana gösteriyorsa ruby 2.0., koş rvm use ruby-X.X.X --default.


3
2.2.0, Ruby'nin en son sürümü değildir.
Jordan

1
@Jordan Benim kötü 2.3 kararlı sürüm
Abhinay Reddy Keesara

71
Bu RVM yüklemek için Mac OS üzerinde çalışır:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed

7
2.4 en son kararlı sürümüdür: rvm install ruby-2.4.0
seeARMS

7
boru kıvırma çıkışı doğrudan yürütmeye doğru gerçekleşen bir güvenlik kabusu.
arp

214

Sadece demleme çözümü

Güncelleme:

Yorumlardan (kudos'tan Maksim Luzik'e), test etmedim ama daha zarif bir çözüm gibi görünüyor:

Demlemek için ruby'yi kurduktan sonra, en son ruby ​​kurulumuna bağlantıları güncellemek için aşağıdaki komutu çalıştırın: brew link --overwrite ruby

Orijinal cevap:

Partiye geç, ama demlemek kullanmak yeterli. Rvm'yi kurmak gerekli değildir ve benim için sadece karmaşık şeyler.

By brew install rubyaslında son (şu anda v2.4.0) yüklüyoruz. Ancak, yolunuz önce 2.0.0'ı bulur. Bundan kaçınmak için önceliği ( kaynak ) değiştirin . Bunu değiştirerek ~/.profileve ayarlayarak yaptım :

export PATH=/usr/local/bin:$PATH

Bundan sonra bundler gem hala 2.0.0 sürümünü kullanıyor bulundu, sadece tekrar yükleyin: gem install bundler


2
Tam olarak aradığım şey, teşekkürler. Eğer bir yakut geliştirici olsaydım rvm mantıklı olurdu, ama değilim, bu yüzden bu mükemmel.
Max

4
Bu çalışır,
kurulumdan

9
veya demleme yoluyla brew link --overwrite ruby
ruby'yi kurduktan

1
overwriteRuby sürümü yerine, sadece yazabilirsinizbrew unlink ruby && brew link ruby
Hamsternik

7
@ MacsimLuzik'in çözümü MacOS'ta benim için çalışmıyor. brew link --overwrite rubykurşunlarıWarning: Refusing to link macOS-provided software: ruby
Rafael Beckel

97

Ben rbenv öneririm * https://github.com/rbenv/rbenv

* Bu sizin ölçütlerinizi karşılıyorsa: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

rbenv yapar…

  • Uygulamaya özgü Ruby sürümlerini belirtmek için destek sağlayın .
  • Global Ruby sürümünü kullanıcı başına değiştirmenize izin verin .
  • Ruby sürümünü bir ortam değişkeniyle geçersiz kılmanıza izin verin .

RVM'nin aksine, rbenv yapmaz…

  • Kabuğunuza yüklenmesi gerekiyor. Bunun yerine, rbenv'in şim yaklaşımı, dizininize bir dizin ekleyerek çalışır $PATH.
  • Bilgi cdistemi saldırıları gibi veya gerekli olan kabuk komutlarını geçersiz kılın . Bu tehlikeli ve hataya açık.
  • Bir yapılandırma dosyasına sahip olun. Hangi Ruby sürümünü kullanmak istediğiniz dışında yapılandırılacak bir şey yoktur.
  • Ruby'yi yükleyin. Ruby'yi kendiniz oluşturabilir ve yükleyebilir veya işlemi otomatikleştirmek için ruby-build kullanabilirsiniz.
  • Gemset'leri yönetin. Bundler uygulama bağımlılıklarını yönetmenin daha iyi bir yoludur. Henüz Bundler kullanmayan projeleriniz varsa, rbenv-gemset eklentisini yükleyebilirsiniz .
  • Uyumluluk için Ruby kitaplıklarında değişiklik iste. Yeter ki senin içinde olduğu gibi rbenv araçlarının sadeliği $PATH, hiçbir şey başka ihtiyaçlar bunu bilmek.

KURULUM

Homebrew'i yükleyin http://brew.sh

Sonra:

$ demlemek güncelleme
 $ demlemek yüklemek rbenv
$ demlemek yüklemek rbenv ruby-build

# Terminali her açtığınızda yüklenecek şekilde bash'a rbenv ekleyin
echo 'rbenv> / dev / null ise; sonra "$ (rbenv init -)" değerini değerlendirin; fi '>> ~ / .bash_profile
kaynak ~ / .bash_profile

GÜNCELLEŞTİR Çalıştır'dan
sonra ek bir adım daha vardırve belirtildiğigibibir satır ekleyin. Bundan sonra terminal pencerenizi tekrar açın […] SGI 30 Eylül, 12:01 - https://stackoverflow.com/users/119770brew install rbenvrbenv init.bash_profile

$ rbenv install --list
Mevcut sürümler:
 1.8.5-p113
 1.8.5-p114
 [...]
 2.3.1
 2.4.0-dev
 jruby-1.5.6
 [...]
$ rbenv kurulum 2.3.1
[...]

Genel sürümü ayarlayın:

$ rbenv global 2.3.1
$ yakut -v
yakut 2.3.1p112 (2016-04-26 revizyon 54768) [x86_64-darwin15]

.ruby-versionRepo'nun kök dizinine ekleyerek deponuzun yerel sürümünü ayarlayın :

$ cd ~ / whatevs / projeler / new_repo
$ echo "2.3.1"> .ruby sürümü

MacOS için bu bağlantıyı ziyaret edin


3
@ChuchaC Sorun yok. Ancak bunu yapmadan önce, bu rbenv benioku dosyasından geliyor: "Uyumluluk notu: rbenv, RVM ile uyumlu değil. Lütfen rbenv'i yüklemeden önce RVM'yi tamamen kaldırdığınızdan ve kabuk başlatma dosyalarınızdan kaynaklandığından emin olun." - github.com/rbenv/rbenv#installation
SoAwesomeMan

17
yardım etmedi. Yine standart 2.0.0 sürümünü alma ruby -vsonrasırbenv global ...
tuxSlayer

8
brew install rbenvÇalıştır 'dan sonra bir adım daha rbenv initeklenir ve belirtildiği gibi .bash_profile' a bir satır ekleyin. Bundan sonra terminal pencerenizi yeniden açın rbenv install 2.3.1, yapın rbenv global 2.3.1 ve rbenv işini yapacak
SGI

6
Muhtemelen geç ama benim için çalıştıktan rbenv rehashsonra @tuxSlayer ile aynı sorunla karşılaşan insanlar için gelecekteki referanslar içinrbenv global
Sean

2
Sonra rbenv init, ruby -vdoğru sürümünü 2.1.2 verir, ancak paket çalışır böyle bazı hatayla karşılaşır paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Sonunda bir çalışma ile çalışmak için yönetmek rbenv rehash. Teşekkürler @Sean
James

51

Açık Terminal:

sudo gem update --system 

İşe yarıyor!


3
Bu gerçekten işe yarıyor gibi gözüküyor ve diğer cevaplara göre ölçülemez derecede daha açık. Ancak bazı taşlar takarken (örneğin dinleyin), sürümün gerekenden daha düşük olduğundan şikayet ediyorlar.
William Isted

8
Bu mücevher yakut değil
William GP


2
Ben de bu cevaptan yanıldım. Konsoldan çalıştırdığınızda hata oluşmaması "çalışır". Ancak, Ruby'yi güncellemez. Ruby Gems'i günceller. Ruby'yi güncellemek için diğer yanıtlardan birini izleyin (OS X Sierra kullanarak).
bilgi

41

Ruby'yi v2.4 + ' ya yükseltmenin hızlı yolu

brew upgrade ruby

veya

sudo gem update --system 

4
Bu bir ton şey yapıyor gibi görünüyor, ama yakutu yükseltmek bunlardan biri değil. /usr/local/Homebrew/Library/Homebrew/brew.rb:12:in '<main>': Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)
Şununla

1
Bu demlemek kullanarak yakut sürümünü yükseltmek için doğru ve en iyi yoldur.
user1101733

Benim için çalışmıyor. ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
Sébastien Loisel

@ SébastienLoisel lütfen işletim sisteminiz, komutunuz vb. Hakkında biraz ayrıntı verebilir misiniz
fatihyildizhan

1
@fatihyildizhan görünüşte yakut / taşlar / vb Mavericks üzerinde semibroken durumda. Catalina'ya geçerek sorunlarımı çözdüm. Sahip olduğum tüm hataları hatırlamıyorum, ama çok sayıda vardı. Kakaapodları veya mücevherleri veya neyi yükseltmeye çalışıp çalışmadığımı hatırlayamıyorum, ama aslında umutsuzdu.
Sébastien Loisel

31

Https://www.ruby-lang.org/tr/downloads/ adresine bakarak ruby'nin en son sürümünü belirleyebilirsiniz.

  1. En son sürümü getir:

    curl -sSL https://get.rvm.io | bash -s stable --ruby

  2. Yükle:

    rvm install 2.2

  3. Varsayılan olarak kullanın:

    rvm use 2.2 --default

Veya yakuttan en son komutu çalıştırın:

rvm install ruby --latest
rvm use 2.2 --default

Teşekkürler, bu benim için çalıştı. Çözümü rbenvçalışmıyor
tuxSlayer

Bu benim için de çalıştı !! rbenv
İle

5

Mac os'unuz varsa ve Brewyüklediyseniz aşağıdaki komutu deneyebilirsiniz,

brew upgrade ruby

2

Herkes aynı hatayı alırsa ben yaptım: "Gereksinimler yükleme durumu ile başarısız oldu: 1." İşte yapmanız gerekenler:

Homebrew'u (bazı nedenlerden dolayı otomatik olarak çalışmayabilir) bu komutla yükleyin:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Ardından kullanarak rvm'yi tekrar yüklemeye devam edin.

curl -sSL https://get.rvm.io | bash -s stable --ruby

Terminalden çıkıp yeniden açın ve ardından:

rvm install 2.2
rvm use 2.2 --default

2

brew install rbenv ruby-build

Terminali her açtığınızda yüklenmesi için bash'e rbenv ekleyin

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile

source ~/.bash_profile

Ruby'yi yükle

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Bağlantı kaynak sayfa

0

Terminalde: rvm gemset use global


5
Bu kod snippet'i çözüm olsa da, bir açıklama da dahil olmak üzere mesajınızın kalitesini artırmaya yardımcı olur. Gelecekte okuyucular için soruyu cevapladığınızı ve bu kişilerin kod önerinizin nedenlerini bilmeyebileceğini unutmayın.
Adam

-2

En basit yol kesinlikle terminalde aşağıdaki komutu girmektir:

sudo gem update --system

--no-documentBelgeleri indirmek istemiyorsanız bayrağı ekleyebilirsiniz . Komutu çalıştırdıktan sonra örnek çıktı:

sudo gem update --system
Password:
Updating rubygems-update
Fetching: rubygems-update-2.6.8.gem (100%)
Successfully installed rubygems-update-2.6.8
Parsing documentation for rubygems-update-2.6.8
Installing ri documentation for rubygems-update-2.6.8
Installing darkfish documentation for rubygems-update-2.6.8
Installing RubyGems 2.6.8
RubyGems 2.6.8 installed
Parsing documentation for rubygems-2.6.8
Installing ri documentation for rubygems-2.6.8

------------------------------------------------------------------------------

RubyGems installed the following executables:
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem

Ruby Interactive (ri) documentation was installed. ri is kind of like man 
pages for ruby libraries. You may access it like this:
  ri Classname
  ri Classname.class_method
  ri Classname#instance_method

1
Bu yukarıdaki cevapla aynı değil mi? Buradaki downvotes sayısının neden upvotes karşısında olduğunu merak ediyorum? Yinelenen cevaptan mı, yoksa insanların yakında farkına varmadığından mı, önceki çözümün Ruby için değil de sadece rubygems için mi olduğu?
bilgi
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.