Como atualizar o Ruby versão 2.0.0 para a versão mais recente no Mac OSX Yosemite?

377

Preciso atualizar minha versão ruby ​​da 2.0.0 para a versão mais recente. Não posso usar algumas gemas porque minha versão não está atualizada. Eu havia usado o Homebrew para instalar o Ruby há algum tempo. Como posso atualizar minha versão do Ruby?

ChuchaC
fonte
o que acontece quando você digita which rvmou which rbenvem sua linha de comando
MageeWorld
@ChuchaC Por favor, dê uma olhada aqui e aqui
vhristoskov
11
parece que brew install rubyé suficiente. verifique aqui
Venugopal

Respostas:

709

Abra seu terminal e execute

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

Quando isso estiver concluído, você precisará reiniciar o seu terminal para que o rvmcomando funcione.

Agora corra rvm list known

Isso mostra a lista de versões do ruby.

Agora, corra rvm install ruby@latestpara obter a versão mais recente do ruby.

Se você digitar ruby -vo terminal, deverá ver ruby X.X.X.

Se ainda lhe mostrar ruby 2.0., corra rvm use ruby-X.X.X --default.

Abhinay Reddy Keesara
fonte
3
2.2.0 não é a versão mais recente do Ruby.
Jordan Running
11
@Jordan My bad 2.3 é a versão estável
Abhinay Reddy Keesara
71
Isso funciona no Mac OS para instalar o RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed
7
2.4 é a versão estável mais recente: rvm install ruby-2.4.0
seeARMS
7
A saída do encanamento de tubulação diretamente para a execução é um pesadelo de segurança esperando para acontecer.
Arp
214

Solução única de fermentação

Atualizar:

Pelos comentários (parabéns a Maksim Luzik), não testei, mas parece uma solução mais elegante:

Após instalar o ruby ​​através do brew, execute o seguinte comando para atualizar os links para a instalação mais recente do ruby: brew link --overwrite ruby

Resposta original:

Tarde para a festa, mas usar cerveja é suficiente. Não é necessário instalar o rvm e, para mim, apenas coisas complicadas.

Na brew install rubyverdade, você está instalando a versão mais recente (atualmente v2.4.0). No entanto, seu caminho encontra o 2.0.0 primeiro. Para evitar isso, basta alterar a precedência ( fonte ). Fiz isso alterando ~/.profilee definindo:

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

Após isso, descobri que o bundler gem ainda estava usando a versão 2.0.0, basta instalá-lo novamente: gem install bundler

Sergio Basurco
fonte
2
Exatamente o que eu estava procurando, obrigado. Se eu fosse um desenvolvedor de rubi, o rvm faria sentido, mas não sou, então isso é perfeito.
Max
4
isso funciona, necessários para fazer "source ~ / .bash_profile" depois de instalar
mjpablo23
9
ou depois de instalar o ruby através bebida, execute seguinte comando para atualizar os links para a instalação mais recente Ruby:brew link --overwrite ruby
Maksim Luzik
11
em vez de overwriteversão rubi, você pode apenas escreverbrew unlink ruby && brew link ruby
Hamsternik
7
A solução da @MaksimLuzik não funciona para mim no MacOS. brew link --overwrite rubyleva aWarning: Refusing to link macOS-provided software: ruby
Rafael Beckel
97

Eu recomendo rbenv * https://github.com/rbenv/rbenv

* Se isso atender aos seus critérios: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

rbenv faz…

  • Fornecer suporte para especificar versões do Ruby específicas do aplicativo .
  • Permite alterar a versão global do Ruby por usuário.
  • Permite substituir a versão do Ruby por uma variável de ambiente.

Ao contrário do RVM, o rbenv não…

  • Precisa ser carregado no seu shell. Em vez disso, a abordagem shim do rbenv funciona adicionando um diretório ao seu $PATH.
  • Substitua comandos do shell como cdou exija hacks imediatos. Isso é perigoso e propenso a erros.
  • Tenha um arquivo de configuração. Não há nada para configurar, exceto a versão do Ruby que você deseja usar.
  • Instale o Ruby. Você pode criar e instalar o Ruby por conta própria ou usar o ruby-build para automatizar o processo.
  • Gerenciar gemsets. O Bundler é a melhor maneira de gerenciar dependências de aplicativos. Se você possui projetos que ainda não estão usando o Bundler, pode instalar o plug- in rbenv-gemset .
  • Exigir alterações nas bibliotecas Ruby para compatibilidade. A simplicidade do rbenv significa que, enquanto estiver no seu $PATH, nada mais precisa saber sobre isso.

INSTALAÇÃO

Instale o Homebrew http://brew.sh

Então:

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

# Adicione rbenv ao bash para que ele seja carregado toda vez que você abrir um terminal
echo 'se qual rbenv> / dev / null; então eval "$ (rbenv init -)"; fi '>> ~ / .bash_profile
source ~ / .bash_profile

ATUALIZAÇÃO
Há uma etapa adicional apósbrew install rbenvExecutarrbenv inite adicione uma linha à.bash_profilemedida que afirma. Depois disso, reabra a janela do terminal […] SGI 30 de setembro às 12:01 - https://stackoverflow.com/users/119770

$ rbenv install --list
Versões disponíveis:
 1.8.5-p113
 1.8.5-p114
 [...]
 2.3.1
 2.4.0-dev
 jruby-1.5.6
 [...]
$ rbenv install 2.3.1
[...]

Defina a versão global:

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

Defina a versão local do seu repositório adicionando .ruby-versionao diretório raiz do seu repositório:

$ cd ~ / whatevs / projects / new_repo
$ echo "2.3.1"> .ruby-versão

Para MacOS, visite este link

SoAwesomeMan
fonte
3
@ChuchaC Sem problemas. Mas, antes disso, é do leia-me rbenv: "Nota de compatibilidade: rbenv é incompatível com o RVM. Desinstale completamente o RVM e remova todas as referências a ele dos arquivos de inicialização do shell antes de instalar o rbenv." - github.com/rbenv/rbenv#installation
SoAwesomeMan:
17
não ajudou. Ainda obter a versão 2.0.0 padrão para ruby -vdepoisrbenv global ...
tuxSlayer
8
Há uma etapa adicional após brew install rbenvExecutar rbenv inite adicione uma linha ao .bash_profile, conforme indicado. Depois disso reabrir a janela do terminal, fazer rbenv install 2.3.1, rbenv global 2.3.1 e rbenv fará o seu trabalho
SGI
6
Provavelmente tarde, mas para futuras referências para as pessoas que encontraram o mesmo problema que @tuxSlayer, rbenv rehashdepois rbenv globaltrabalhou para mim
Sean
2
Depois rbenv init, ruby -vgera a versão correta 2.1.2, mas a execução do pacote encontra algum erro como este paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Finalmente, consiga fazê-lo funcionar rapidamente rbenv rehash. Obrigado @Sean
James
51

Terminal aberto:

sudo gem update --system 

Funciona!

Cristianetoo Geova
fonte
3
De fato, isso parece funcionar e é incomensuravelmente mais direto do que as outras respostas. Mas, ao instalar algumas gemas (ouça, por exemplo), elas reclamam que a versão é menor que o necessário.
William isTed
8
Esta é uma jóia, não um rubi
William GP
Prepare
2
Eu também fui enganado por esta resposta. "Funciona", pois nenhum erro é gerado quando você o executa no console. No entanto, ele não atualiza o Ruby. Atualiza Ruby Gems. Siga uma das outras respostas para atualizar o Ruby (usando o OS X Sierra).
informaton
41

Maneira rápida de atualizar o ruby ​​para a v2.4 +

brew upgrade ruby

ou

sudo gem update --system 
fatihyildizhan
fonte
4
Parece fazer muita coisa, mas atualizar o ruby ​​não é um deles. /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)
Termina
11
Esta é a maneira correta e melhor de atualizar a versão ruby ​​usando o brew.
precisa saber é o seguinte
Não funciona para mim. 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 20/03
@ SébastienLoisel, por favor, dê alguns detalhes sobre o seu sistema operacional, comando etc.
fatihyildizhan
11
@fatihyildizhan, aparentemente, ruby ​​/ gems / etc está em um estado semibro no Mavericks. Resolvi meus problemas atualizando para a Catalina. Não me lembro de todos os erros que tive, mas havia multidões. Não me lembro se estava tentando atualizar cocoapods ou pedras preciosas ou o quê, mas era essencialmente inútil.
Sébastien Loisel
31

Você pode especificar a versão mais recente do ruby ​​acessando https://www.ruby-lang.org/en/downloads/

  1. Busque a versão mais recente:

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

  2. Instale-o:

    rvm install 2.2

  3. Use-o como padrão:

    rvm use 2.2 --default

Ou execute o comando mais recente do ruby:

rvm install ruby --latest
rvm use 2.2 --default
julien bouteloup
fonte
Obrigado, isso funcionou para mim. A solução com rbenvnão estava funcionando
tuxSlayer
Isso funcionou para mim também!! A solução com rbenvnão funcionou
Ruoho Ruotsi
5

Se você possui o mac os e está Brewinstalado, tente o seguinte comando,

brew upgrade ruby
Zumry Mohamed
fonte
2

Caso alguém receba o mesmo erro que eu: "Falha na instalação dos requisitos com status: 1." aqui está o que fazer:

Instale o Homebrew (por algum motivo pode não funcionar automaticamente) com este comando:

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

Em seguida, prossiga para instalar o rvm novamente usando

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

Saia e reabra o Terminal e, em seguida:

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

brew install rbenv ruby-build

Adicione rbenv ao bash para que ele seja carregado toda vez que você abrir um terminal

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

source ~/.bash_profile

Instale o Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Link para a página de origem
Karats Mohanraj
fonte
0

No terminal: rvm gemset use global

Aramis
fonte
5
Embora esse snippet de código possa ser a solução, incluir uma explicação realmente ajuda a melhorar a qualidade da sua postagem. Lembre-se de que você está respondendo à pergunta dos leitores no futuro e essas pessoas podem não saber os motivos da sua sugestão de código.
Adam
-2

A maneira mais simples é definitivamente inserir o seguinte comando no terminal:

sudo gem update --system

Você pode adicionar o sinalizador --no-documentse não desejar fazer o download da documentação. Aqui está um exemplo de saída depois de executar o comando:

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
fonte
11
Não é o mesmo que a resposta acima ? Estou curioso para saber por que o número de votos negativos aqui versus votos negativos lá? É por causa da resposta duplicada ou porque as pessoas não perceberam logo, que a solução anterior também era apenas para rubygems, não Ruby?
informaton