¿Cómo puedo cambiar a ruby ​​1.9.3 instalado usando Homebrew?


82

He instalado ruby ​​1.9.3 usando hombrew

brew instalar ruby

Pero todavía se usa 1.8.7 por defecto. ¿Cómo puedo cambiar osx para usar 1.9.3 como ruby ​​predeterminado?

Respuestas:


90

Te sugiero que eches un vistazo a rvm . A continuación, puede configurarlo como predeterminado conrvm use 1.9.3 --default

Pero si está satisfecho con su instalación casera.

Luego, simplemente cambie la precedencia de los directorios en el PATH

Aquí está mi / etc / caminos

# homebrews should always take precedence
/usr/local/bin

# the default stack
/usr/bin
/bin
/usr/sbin
/sbin

Esto es importante generalmente para homebrew, de lo contrario, se usará la versión del sistema de git, ruby, pg_admin, ... en lugar de la versión brew.

si dice which -a rubyque verá todos los rubíes instalados y la precedencia en elPATH

p.ej.

$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby


ACTUALIZACIÓN: ahora no creo que debas cambiar /etc/paths

En su lugar, debe verificar cuál de .profile, .bashrco .bash_loginse está cargando en su shell, y simplemente agregarlo /usr/local/bina su ruta.

Para mí, solo tengo un .profile. Puede crear ese archivo si ninguno de esos archivos ya existe en su directorio de inicio.

# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH

1
Finalmente, elijo rbenv, que también usé rvm anteriormente.
Alexey Zakharov

frio. Sin embargo, le sugiero que realice los cambios en su / etc / rutas. Solía ​​tener errores extraños (por ejemplo, lo haría brew upgrade git, pero la versión no cambió. Resulta que nunca usé la versión de preparación)
Matthew Rudy

29
Gracias por proporcionar una respuesta real en lugar de simplemente decir "use rvm". No todos pueden usar RVM y odio cuando la respuesta principal simplemente le dice a OP que haga algo que no preguntaron cómo hacer.
albañil


Tuve problemas para compilar ruby ​​usando rvm, así que terminé usando rbenv, ya que funcionó sin problemas.
Pellet

73

RESPUESTA CORTA:

después de instalar ruby ​​a través de homebrew, simplemente haz esto:

brew link --overwrite ruby

y reinicia o vuelve a abrir tu Terminal  


RESPUESTA LARGA

Así que hice una instalación normal de ruby ​​usando homebrew

brew install ruby

que se instaló bien, PERO todavía estaba usando el ruby ​​predeterminado del sistema. que verifiqué haciendo:

which ruby 
#/usr/bin/ruby

Entonces, según la sugerencia de Matthew Rudy, verifiqué el orden de mis rutas / etc / y todo fue bien.

Entonces decidí hacer:

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby

así que nada se rompió como tal. Intenté reinstalar ruby ​​nuevamente usando el método homebrew, y luego lo encontré.

Homebrew mencionado:

Warning: ruby-2.3.1 already installed, it's just not linked

así que tenía que hacer:

brew link --overwrite ruby

13
No olvide reiniciar su instancia de iTerm; de lo contrario, ruby --versionle mostrará una versión desactualizada.
dialex

1
¿Realmente necesitas reiniciar? o simplemente hash -r?
dwanderson

1
FYI, Homebrew ahora se niega a hacerlo. Para mí con Fish, sugirió: echo 'set -g fish_user_paths "/ usr / local / opt / ruby ​​/ bin" $ fish_user_paths' >> ~ / .config / fish / config.fish
Atem18

46

Si desea utilizar homebrew para instalar 1.9.3, puede seguir estos pasos:

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

Una vez que haya instalado rbenv y ruby-build, puede ejecutar el siguiente comando para instalar Ruby 1.9.3.

$ rbenv install 1.9.3-p125

Ahora, si desea utilizar 1.9.3 de forma predeterminada, puede ejecutar el siguiente comando:

$ rbenv global 1.9.3-p125

El enlace de la fuente está muerto ahora
Chris Brown

4
No funciona en OS X 10.11+. El sistema sigue usando la versión anterior, y no la que instalé / configuré por defecto con rbenv install 1.9.3-p125 / rbenv global 1.9.3-p125
Andrei Konstantinov

"rbenv global 1.9.3-p125": esta línea me salvó la noche. ¡Gracias!
Andrii Kovalchuk

No parece funcionar para mí. Tuve que poner la ruta al ejecutivo ruby ​​en mi $ PATH antes de que funcionara.
mr-sk

6

Tuve una situación similar. Instalé ruby ​​usando Homebrew. which -a rubyme dio el siguiente resultado:

#usr/local/bin/ruby
#/usr/bin/ruby

Lo que significa que debería haberse utilizado la versión recién instalada, pero ruby --versionaún así devolvió la versión anterior del sistema.

Salí de la terminal (Cmd + Q) y, después de reiniciar, ruby --versiondevolví la versión correcta. Así que asegúrese de reiniciar el terminal después de la instalación antes de intentar cualquier otra solución (potencialmente innecesaria).


4

BREVE: tenga en cuenta por qué desea cambiarlo.

Si estás en OS X e intentas usar Ruby para algo como Jekyll, entonces no uses homebrew porque eso es lo que Apple está usando para Ruby y puede que no sea bueno usarlo si no estás seguro de lo que estás usando. haciendo. En su lugar, utilice rbenv o RVM.

MENOS BREVE: estaba intentando cambiar de la versión predeterminada a una versión actualizada (de 2.0) para usar Jekyll porque requería Ruby versión 2.2.5 y superior. Lo actualicé y se instaló la versión 2.5, pero cuando marqué "ruby -v", todavía era 2.0. Una vez que finalmente logré cambiar la versión predeterminada, no pude instalar el paquete que necesitaba porque no tenía permiso de escritura. Por ejemplo, si te encuentras con algo como esto, probablemente tengas el mismo problema

$ gem install jekyll bundler
ERROR:  While executing gem ... (Gem::FilePermissionError)    
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

0

En OSX puede cambiar la ruta usando:

sudo nano / etc / rutas

Y luego agregue una ruta o cambie el orden.


-2

Solo como un enfoque alternativo para cualquier otra persona que busque una respuesta a esto, puede establecer un alias en su .bash_profile, por ejemplo

ruby="/usr/local/bin/ruby"

así es como solucioné el problema


sí, el problema con eso (y probablemente la razón de los votos negativos) es que esto solo funciona si desea invocar manualmente ruby ​​y no hacer que el sistema use una versión específica
David Seek
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.