Bagaimana cara memperbarui Ruby Version 2.0.0 ke versi terbaru di Mac OSX Yosemite?

377

Saya perlu memperbarui versi ruby ​​saya dari 2.0.0 ke versi terbaru, saya tidak dapat menggunakan beberapa permata karena versi saya tidak diperbarui. Saya telah menggunakan Homebrew untuk menginstal Ruby beberapa waktu lalu, Bagaimana saya bisa memperbarui versi Ruby saya?

ChuchaC
sumber
apa yang terjadi ketika Anda mengetik which rvmatau which rbenvdi baris perintah
MageeWorld
@ChuchaC Tolong, lihat di sini dan di sini
vhristoskov
1
Sepertinya brew install rubysudah cukup. periksa di sini
Venugopal

Jawaban:

709

Buka terminal Anda dan jalankan

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

Ketika ini selesai, Anda perlu me-restart terminal Anda agar rvmperintah itu berfungsi.

Sekarang, jalankan rvm list known

Ini menunjukkan daftar versi ruby.

Sekarang, jalankan rvm install ruby@latestuntuk mendapatkan versi ruby ​​terbaru.

Jika Anda mengetik ruby -vdi terminal, Anda akan melihat ruby X.X.X.

Jika masih menunjukkan Anda ruby 2.0., jalankan rvm use ruby-X.X.X --default.

Abhinay Reddy Keesara
sumber
3
2.2.0 bukan versi terbaru dari Ruby.
Jordan Running
1
@Jordan Badaku saya 2.3 adalah versi stabil
Abhinay Reddy Keesara
71
Ini berfungsi pada Mac OS untuk menginstal RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed
7
2.4 adalah versi stabil terbaru: rvm install ruby-2.4.0
seeARMS
7
keluaran pipa langsung ke eksekusi adalah mimpi buruk keamanan yang menunggu untuk terjadi.
arp
214

Solusi pembuatan bir saja

Memperbarui:

Dari komentar (pujian untuk Maksim Luzik), saya belum menguji tetapi sepertinya solusi yang lebih elegan:

Setelah menginstal ruby ​​melalui brew, jalankan perintah berikut untuk memperbarui tautan ke instalasi ruby ​​terbaru: brew link --overwrite ruby

Jawaban asli:

Terlambat ke pesta, tetapi menggunakan minuman sudah cukup. Tidak perlu menginstal rvm dan bagi saya itu hanya hal-hal rumit.

Dengan brew install rubyAnda menginstal yang terbaru (saat ini v2.4.0). Namun, jalur Anda menemukan 2.0.0 terlebih dahulu. Untuk menghindari ini, ubah saja prioritasnya ( sumber ). Saya melakukan ini dengan mengubah ~/.profiledan mengatur:

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

Setelah ini saya menemukan bahwa permata bundler masih menggunakan versi 2.0.0, cukup instal lagi: gem install bundler

Sergio Basurco
sumber
2
Persis apa yang saya cari, terima kasih. Jika saya adalah seorang ruby ​​dev maka rvm akan masuk akal, tetapi saya tidak, jadi ini sempurna.
Maks
4
ini berfungsi, perlu melakukan "source ~ / .bash_profile" setelah menginstal
mjpablo23
9
atau setelah menginstal ruby ​​melalui brew, jalankan perintah berikut untuk memperbarui tautan ke instalasi ruby ​​terbaru:brew link --overwrite ruby
Maksim Luzik
1
alih-alih overwriteversi ruby, Anda bisa menulisbrew unlink ruby && brew link ruby
Hamsternik
7
Solusi @MaksimLuzik tidak berfungsi untuk saya di MacOS. brew link --overwrite rubymengarah keWarning: Refusing to link macOS-provided software: ruby
Rafael Beckel
97

Saya merekomendasikan rbenv * https://github.com/rbenv/rbenv

* Jika ini memenuhi kriteria Anda: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

rbenv tidak ...

  • Berikan dukungan untuk menentukan versi Ruby khusus aplikasi .
  • Memungkinkan Anda mengubah versi Ruby global berdasarkan per pengguna.
  • Memungkinkan Anda mengganti versi Ruby dengan variabel lingkungan.

Berbeda dengan RVM, rbenv tidak ...

  • Perlu dimuat ke dalam shell Anda. Sebagai gantinya, pendekatan shim rbenv bekerja dengan menambahkan direktori ke direktori Anda $PATH.
  • Mengganti perintah shell seperti cdatau membutuhkan peretasan cepat. Itu berbahaya dan rawan kesalahan.
  • Memiliki file konfigurasi. Tidak ada yang perlu dikonfigurasi kecuali versi Ruby yang ingin Anda gunakan.
  • Instal Ruby. Anda dapat membangun dan menginstal Ruby sendiri, atau menggunakan ruby-build untuk mengotomatiskan proses.
  • Kelola permata. Bundler adalah cara yang lebih baik untuk mengelola dependensi aplikasi. Jika Anda memiliki proyek yang belum menggunakan Bundler, Anda dapat menginstal plugin rbenv-gemset .
  • Membutuhkan perubahan pada pustaka Ruby untuk kompatibilitas. Kesederhanaan rbenv berarti selama itu ada di Anda $PATH, tidak ada lagi yang perlu diketahui tentang hal itu.

INSTALASI

Instal Homebrew http://brew.sh

Kemudian:

pembaruan
 $ brew $ brew instal rbenv
$ brew instal rbenv ruby-build

# Tambahkan rbenv ke bash sehingga dimuat setiap kali Anda membuka terminal
gema 'jika yang rbenv> / dev / null; lalu eval "$ (rbenv init -)"; fi '>> ~ / .bash_profile
sumber ~ / .bash_profile

PEMBARUAN
Ada satu langkah tambahan setelahbrew install rbenvJalankanrbenv initdan tambahkan satu baris.bash_profileketika dinyatakan. Setelah itu buka kembali jendela terminal Anda [...] SGI 30 Sep pukul 12:01 - https://stackoverflow.com/users/119770

$ rbenv instal --list
Versi yang tersedia:
 1.8.5-p113
 1.8.5-p114
 [...]
 2.3.1
 2.4.0-dev
 jruby-1.5.6
 [...]
$ rbenv instal 2.3.1
[...]

Tetapkan versi global:

$ rbenv global 2.3.1
$ ruby ​​-v
ruby 2.3.1p112 (2016-04-26 revisi 54768) [x86_64-darwin15]

Atur versi lokal repo Anda dengan menambahkan .ruby-versionke dir root repo Anda:

$ cd ~ / whatevs / projects / new_repo
$ echo "2.3.1"> .ruby-versi

Untuk MacOS, kunjungi tautan ini

SoAwesomeMan
sumber
3
@ ChuchaC Tidak ada masalah. Tetapi sebelum Anda melakukannya, ini dari rbenv readme: "Catatan kompatibilitas: rbenv tidak kompatibel dengan RVM. Pastikan untuk mencopot RVM sepenuhnya dan menghapus referensi apa pun dari file inisialisasi shell Anda sebelum menginstal rbenv." - github.com/rbenv/rbenv#installation
SoAwesomeMan
17
tidak membantu. Masih mendapatkan versi standar 2.0.0 untuk ruby -vsetelahrbenv global ...
tuxSlayer
8
Ada satu langkah tambahan setelah brew install rbenvJalankan rbenv initdan tambahkan satu baris ke .bash_profile saat dinyatakan. Setelah itu buka kembali jendela terminal Anda, lakukan rbenv install 2.3.1, rbenv global 2.3.1 dan rbenv akan melakukan tugasnya
SGI
6
Mungkin terlambat tetapi untuk referensi di masa mendatang bagi orang-orang yang mengalami masalah yang sama dengan @tuxSlayer, rbenv rehashsetelah rbenv globalbekerja untuk saya
Sean
2
Setelah rbenv init, ruby -vmenampilkan versi yang benar 2.1.2, tetapi bundle menjalankan menemukan beberapa kesalahan seperti ini paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Akhirnya berhasil membuatnya bekerja dengan menjalankan rbenv rehash. Terima kasih @Sean
James
51

Terminal Terbuka:

sudo gem update --system 

Berhasil!

Cristianetoo Geova
sumber
3
Tampaknya ini memang berhasil, dan merupakan jawaban yang lebih lurus daripada jawaban lainnya. Tetapi ketika memasang beberapa permata (dengarkan misalnya) mereka mengeluh bahwa versi lebih rendah dari yang dibutuhkan.
William Isted
8
Ini permata bukan ruby
William GP
Menyeduh satunya solusi di sini
Sergio Basurco
2
Saya juga disesatkan oleh jawaban ini. Ini "berfungsi" di mana tidak ada kesalahan yang dihasilkan ketika Anda menjalankannya dari konsol. Namun, itu tidak memperbarui Ruby. Ini memperbarui Permata Ruby. Ikuti salah satu jawaban lain untuk memperbarui Ruby (menggunakan OS X Sierra).
informaton
41

Cara cepat untuk meningkatkan ruby ​​ke v2.4 +

brew upgrade ruby

atau

sudo gem update --system 
fatihyildizhan
sumber
4
Ini tampaknya melakukan banyak hal, tetapi memutakhirkan ruby ​​bukan salah satunya. Itu berakhir dengan: /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)
nkoren
1
Ini adalah cara yang benar dan terbaik untuk meningkatkan versi ruby ​​menggunakan minuman.
user1101733
Tidak bekerja untuk saya. 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 dapatkah Anda memberikan detail tentang OS Anda, perintah dll
fatihyildizhan
1
@fatihyildizhan tampaknya ruby ​​/ permata / etc dalam keadaan semi-rata di Mavericks. Saya telah menyelesaikan masalah saya dengan memutakhirkan ke Catalina. Saya tidak ingat semua kesalahan yang saya miliki, tetapi ada banyak orang. Saya tidak ingat apakah saya sedang mencoba untuk meningkatkan cocoapods atau permata atau apa, tapi itu pada dasarnya tidak ada harapan.
Sébastien Loisel
31

Anda dapat menentukan versi ruby ​​terbaru dengan melihatnya https://www.ruby-lang.org/en/downloads/

  1. Ambil versi terbaru:

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

  2. Pasang itu:

    rvm install 2.2

  3. Gunakan sebagai default:

    rvm use 2.2 --default

Atau jalankan perintah terbaru dari ruby:

rvm install ruby --latest
rvm use 2.2 --default
julien bouteloup
sumber
Terima kasih, ini berhasil untuk saya. Solusi dengan rbenvtidak berfungsi
tuxSlayer
Ini juga berhasil bagi saya !! Solusi dengan rbenvTIDAK bekerja
ruoho ruotsi
5

Jika Anda memiliki mac os dan Brewdiinstal, Anda dapat mencoba perintah berikut,

brew upgrade ruby
Zumry Mohamed
sumber
2

Jika ada yang mendapatkan kesalahan yang sama dengan yang saya lakukan: "Persyaratan instalasi gagal dengan status: 1." inilah yang harus dilakukan:

Instal Homebrew (karena alasan tertentu mungkin tidak bekerja secara otomatis) dengan perintah ini:

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

Kemudian lanjutkan untuk menginstal rvm lagi menggunakan

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

Keluar dan buka kembali Terminal dan kemudian:

rvm install 2.2
rvm use 2.2 --default
Paula Hasstenteufel
sumber
2

brew install rbenv ruby-build

Tambahkan rbenv ke bash sehingga ia memuat setiap kali Anda membuka terminal

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

source ~/.bash_profile

Instal Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Tautan ke halaman sumber
Karats Mohanraj
sumber
0

Di terminal: rvm gemset use global

Aramis
sumber
5
Sementara cuplikan kode ini mungkin solusinya, termasuk penjelasan sangat membantu untuk meningkatkan kualitas posting Anda. Ingatlah bahwa Anda menjawab pertanyaan untuk pembaca di masa depan, dan orang-orang itu mungkin tidak tahu alasan untuk saran kode Anda.
Adam
-2

Cara paling sederhana adalah dengan memasukkan perintah berikut di terminal:

sudo gem update --system

Anda dapat menambahkan bendera --no-documentjika Anda tidak ingin mengunduh dokumentasinya. Berikut adalah contoh output setelah menjalankan perintah:

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
Reza Malik
sumber
1
Bukankah ini sama dengan jawaban di atas ? Saya ingin tahu mengapa jumlah downvotes di sini versus upvotes di sana? Apakah karena jawaban duplikat, atau karena orang tidak segera menyadari, bahwa solusi sebelumnya juga hanya untuk rubygems, bukan Ruby?
informaton