Jak zaktualizować wersję Ruby 2.0.0 do najnowszej wersji w Mac OSX Yosemite?

377

Muszę zaktualizować moją wersję ruby ​​z 2.0.0 do najnowszej wersji, nie mogę użyć niektórych klejnotów, ponieważ moja wersja nie jest zaktualizowana. Jakiś czas temu użyłem Homebrew do zainstalowania Ruby. Jak mogę zaktualizować moją wersję Ruby?

ChuchaC
źródło
co się dzieje, gdy wpiszesz which rvmlub which rbenvw wierszu poleceń
MageeWorld,
@ChuchaC Proszę spojrzeć tutaj i tutaj
vhristoskov
1
wygląda na brew install rubyto, że wystarczy. sprawdź tutaj
Venugopal

Odpowiedzi:

709

Otwórz terminal i biegnij

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

Po zakończeniu tej czynności musisz ponownie uruchomić terminal, aby rvmpolecenie działało.

A teraz biegnij rvm list known

To pokazuje listę wersji ruby.

Teraz uruchom, rvm install ruby@latestaby uzyskać najnowszą wersję ruby.

Jeśli wpiszesz ruby -vterminal, powinieneś zobaczyć ruby X.X.X.

Jeśli nadal pokazuje ruby 2.0., uruchom rvm use ruby-X.X.X --default.

Abhinay Reddy Keesara
źródło
3
2.2.0 nie jest najnowszą wersją Ruby.
Jordan Running
1
@Jordan My bad 2.3 to stabilna wersja
Abhinay Reddy Keesara,
71
Działa to w systemie Mac OS, aby zainstalować RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed
7
2.4 jest najnowszą stabilną wersją: rvm install ruby-2.4.0
patrz ARMS 27.01.17
7
przesyłanie curl bezpośrednio do wykonania to koszmar bezpieczeństwa, który czeka na nadejście.
arp
214

Tylko zaparzanie

Aktualizacja:

Od komentarzy (podziękowania dla Maksima Luzika) nie testowałem, ale wydaje się bardziej eleganckim rozwiązaniem:

Po zainstalowaniu Ruby poprzez brew uruchom następujące polecenie, aby zaktualizować łącza do najnowszej instalacji Ruby: brew link --overwrite ruby

Oryginalna odpowiedź:

Późno na imprezę, ale wystarczy napar. Zainstalowanie rvm nie jest konieczne, a dla mnie to po prostu skomplikowane rzeczy.

W brew install rubyrzeczywistości instalujesz najnowszą wersję (obecnie v2.4.0). Jednak Twoja ścieżka najpierw znajduje 2.0.0. Aby tego uniknąć, po prostu zmień priorytet ( źródło ). Zrobiłem to, zmieniając ~/.profilei ustawiając:

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

Po tym stwierdziłem, że gem bundlera nadal używa wersji 2.0.0, po prostu zainstaluj go ponownie: gem install bundler

Sergio Basurco
źródło
2
Właśnie tego szukałem, dzięki. Gdybym był deweloperem ruby, wtedy rvm miałoby sens, ale nie jestem, więc to jest idealne.
Max
4
to działa, trzeba zrobić "source ~ / .bash_profile" po instalacji
mjpablo23
9
lub po zainstalowaniu Ruby poprzez brew, uruchom następujące polecenie, aby zaktualizować linki do najnowszej instalacji Ruby:brew link --overwrite ruby
Maksim Luzik
1
zamiast overwritewersji ruby ​​możesz po prostu napisaćbrew unlink ruby && brew link ruby
Hamsternik
7
Rozwiązanie @MaksimLuzik nie działa dla mnie w systemie MacOS. brew link --overwrite rubyprowadzi doWarning: Refusing to link macOS-provided software: ruby
Rafael Beckel
97

Polecam rbenv * https://github.com/rbenv/rbenv

* Jeśli spełnia twoje kryteria: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

rbenv robi…

  • Zapewnij wsparcie dla określania specyficznych dla aplikacji wersji Ruby .
  • Pozwól zmienić globalną wersję Ruby dla poszczególnych użytkowników.
  • Pozwala zastąpić wersję Ruby zmienną środowiskową.

W przeciwieństwie do RVM, rbenv nie…

  • Musisz załadować do swojej powłoki. Zamiast tego, podejrzane podejście rbenv polega na dodaniu katalogu do twojego $PATH.
  • Zastępuj polecenia powłoki, takie jak cdlub wymagają szybkich hacków. To niebezpieczne i podatne na błędy.
  • Przygotuj plik konfiguracyjny. Nie ma nic do skonfigurowania oprócz tej wersji Ruby, której chcesz użyć.
  • Zainstaluj Ruby. Możesz zbudować i zainstalować Ruby samodzielnie lub użyć Ruby-build do zautomatyzowania procesu.
  • Zarządzaj zestawami klejnotów. Bundler to lepszy sposób zarządzania zależnościami aplikacji. Jeśli masz projekty, które nie korzystają jeszcze z Bundlera, możesz zainstalować wtyczkę rbenv-gemset .
  • Wymagaj zmian w bibliotekach Ruby dla kompatybilności. Prostota rbenv oznacza, że ​​tak długo, jak jest w twoim $PATH, nic więcej nie musisz o tym wiedzieć.

INSTALACJA

Zainstaluj Homebrew http://brew.sh

Następnie:

$ brew update
 $ brew install rbenv
$ brew install rbenv ruby-build

# Dodaj rbenv do bash, aby ładował się za każdym razem, gdy otwierasz terminal
echo 'if which rbenv> / dev / null; następnie eval „$ (rbenv init -)”; fi '>> ~ / .bash_profile
source ~ / .bash_profile

AKTUALIZACJA
Jest jeszcze jeden krok pobrew install rbenvuruchomieniurbenv initi dodaj do niego jeden wiersz.bash_profile. Następnie ponownie otwórz okno terminala […] SGI 30 września o 12:01 - https://stackoverflow.com/users/119770

$ rbenv install --list
Dostępne wersje:
 1.8.5-p113
 1.8.5-p114
 […]
 2.3.1
 2.4.0-dev
 jruby-1.5.6
 […]
$ rbenv install 2.3.1
[…]

Ustaw wersję globalną:

$ rbenv global 2.3.1
$ ruby ​​-v
ruby 2.3.1p112 (26.04.2016, wersja 54768) [x86_64-darwin15]

Ustaw lokalną wersję repo, dodając .ruby-versiondo katalogu głównego repozytorium:

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

W systemie MacOS odwiedź ten link

SoAwesomeMan
źródło
3
@ChuchaC Brak problemu. Ale zanim to zrobisz, jest to plik Readme rbenv: „Uwaga dotycząca zgodności: rbenv jest niezgodny z RVM. Przed zainstalowaniem rbenv należy całkowicie odinstalować RVM i usunąć wszelkie odniesienia do niego z plików inicjujących powłokę”. - github.com/rbenv/rbenv#installation
SoAwesomeMan
17
nie pomogło Wciąż otrzymuję standardową wersję 2.0.0 dla ruby -vafterrbenv global ...
tuxSlayer
8
Jest jeszcze jeden krok po brew install rbenvuruchomieniu rbenv initi dodaj jedną linię do .bash_profile, jak to stwierdza. Po tym ponownie otwórz okno terminala, zrób rbenv install 2.3.1, rbenv global 2.3.1 a rbenv wykona swoją pracę
SGI
6
Prawdopodobnie późno, ale dla przyszłych odniesień do ludzi, którzy napotykają ten sam problem jak @tuxSlayer, rbenv rehashpo rbenv globalpracował dla mnie
Sean
2
Po rbenv init, ruby -vwyświetla prawidłową wersję 2.1.2, ale uruchomienie pakietu napotyka taki błąd paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Wreszcie udaje się, aby działał z serią rbenv rehash. Dzięki @Sean
James
51

Otwarty terminal:

sudo gem update --system 

To działa!

Cristianetoo Geova
źródło
3
Wydaje się, że to rzeczywiście działa i jest bezsprzecznie prostsze niż inne odpowiedzi. Ale podczas instalowania niektórych klejnotów (na przykład słuchaj) skarżą się, że wersja jest niższa niż wymagana.
William Isted,
8
To nie jest klejnot
William GP
Zaparz
2
Ta odpowiedź mnie również wprowadziła w błąd. „Działa” w tym sensie, że po uruchomieniu z konsoli nie są generowane żadne błędy. Jednak nie aktualizuje Ruby. Aktualizuje Rubinowe Klejnoty. Postępuj zgodnie z jedną z pozostałych odpowiedzi, aby zaktualizować Ruby (używając OS X Sierra).
informaton
41

Szybki sposób na aktualizację Ruby do wersji 2.4 +

brew upgrade ruby

lub

sudo gem update --system 
fatihyildizhan
źródło
4
Wydaje się, że robi to mnóstwo rzeczy, ale ulepszanie rubinu nie jest jednym z nich. /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)
Kończy się
1
Jest to poprawny i najlepszy sposób na aktualizację wersji Ruby za pomocą naparu.
user1101733,
Nie działa dla mnie. 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 czy możesz podać szczegółowe informacje na temat swojego systemu operacyjnego, poleceń itp.
fatihyildizhan
1
@fatihyildizhan najwidoczniej ruby ​​/ gems / etc jest w stanie pół-szyfrowanym na Mavericks. Rozwiązałem swoje problemy, przechodząc na Catalinę. Nie pamiętam wszystkich błędów, które popełniłem, ale było ich mnóstwo. Nie pamiętam, czy próbowałem ulepszyć cocoapody lub klejnoty, czy co, ale było to w zasadzie beznadziejne.
Sébastien Loisel
31

Możesz określić najnowszą wersję ruby, patrząc na https://www.ruby-lang.org/en/downloads/

  1. Pobierz najnowszą wersję:

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

  2. Zainstaluj to:

    rvm install 2.2

  3. Użyj go jako domyślnego:

    rvm use 2.2 --default

Lub uruchom najnowszą komendę z ruby:

rvm install ruby --latest
rvm use 2.2 --default
Julien Bouteloup
źródło
Dzięki, to zadziałało dla mnie. Rozwiązanie rbenvnie działało
tuxSlayer
To też działało dla mnie !! Rozwiązanie z rbenvNIE zadziałało
ruoho ruotsi
5

Jeśli masz Mac OS i jest Brewzainstalowany, możesz spróbować wykonać następujące polecenie,

brew upgrade ruby
Zumry Mohamed
źródło
2

W przypadku, gdy ktoś otrzyma ten sam błąd, zrobiłem: „Instalacja wymagań nie powiodła się ze statusem: 1.” oto co robić:

Zainstaluj Homebrew (z jakiegoś powodu może nie działać automatycznie) za pomocą tego polecenia:

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

Następnie ponownie zainstaluj rvm za pomocą

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

Zamknij i ponownie otwórz terminal, a następnie:

rvm install 2.2
rvm use 2.2 --default
Paula Hasstenteufel
źródło
2

brew install rbenv ruby-build

Dodaj rbenv do bash, aby ładował się za każdym razem, gdy otwierasz terminal

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

source ~/.bash_profile

Zainstaluj Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Link do strony źródłowej
Karats Mohanraj
źródło
0

W terminalu: rvm gemset use global

Aramis
źródło
5
Ten fragment kodu może być rozwiązaniem, ale wyjaśnienie naprawdę pomaga poprawić jakość posta. Pamiętaj, że w przyszłości odpowiadasz na pytanie czytelników, a ci ludzie mogą nie znać przyczyn Twojej sugestii kodu.
Adam
-2

Najprostszym sposobem jest zdecydowanie wprowadzenie następującego polecenia w terminalu:

sudo gem update --system

Możesz dodać flagę, --no-documentjeśli nie chcesz pobierać dokumentacji. Oto przykładowe dane wyjściowe po uruchomieniu polecenia:

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
źródło
1
Czy to nie to samo co powyższa odpowiedź ? Jestem ciekawy, dlaczego liczba ocen pozytywnych tutaj a ocen pozytywnych tam? Czy to z powodu duplikatu odpowiedzi, czy też dlatego, że ludzie nie zdawali sobie sprawy z tego wystarczająco szybko, że wcześniejsze rozwiązanie dotyczyło tylko rubygemów, a nie Ruby?
informaton