Instalé rbenv de acuerdo con las instrucciones de github. Estoy ejecutando OSX pero lo he intentado en una VM Ubuntu 12.04 y obtuve los mismos resultados. Lo siguiente es lo que obtengo en mi terminal cuando intento cambiar las versiones de ruby:
rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125
rbenv global
1.9.3-p0
rbenv rehash
ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
which ruby
/usr/bin/ruby
¿Alguien tiene alguna idea de por qué rbenv no está cambiando la versión ruby como cree que sí? Además, no hay ningún archivo .rbenv en el directorio local que pueda causar que la versión de ruby tenga un valor predeterminado de 1.8.7
rbenv local
rbenv: no local version configured for this directory
Respuestas:
Verifique que PATH contenga $ HOME / .rbenv / shims y $ HOME / .rbenv / bin
Compruebe también que tiene lo siguiente en su ~ / .bash_profile si usa bash o ~ / .zshenv si usa zsh
NOTA: Asegúrese de que sea la última configuración en su ~ / .bash_profile. Me encontré con un problema en el que instalé un programa que actualizó mi .bash_profile y restablecí PATH.
Finalmente, asegúrese de que su
$HOME
carpeta no tenga un.ruby-version
archivo que pueda haber creado por accidente si lo hubiera hecho$ rbenv local <ruby-version>
en su$HOME
carpeta. Haciendo$ rbenv global <ruby-version>' modifies the
$ HOME / .rbenv / versionfile, and the existence of a
.ruby-versionfile in the
$ HOMEfolder would override the version set by
$ HOME / .rbenv / version`.De los documentos:
fuente
exec $SHELL -l
(L inferior)export RBENV_ROOT="$HOME/.rbenv" if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Trabajando bastante bien :) También revise los PATH init después de la declaración rbenv.Lo arreglé agregando lo siguiente a mi ~ / .bash_profile:
Esto es lo que se documenta en https://github.com/sstephenson/rbenv .
Por lo que puedo decir, no hay un directorio ~ / .rbenv / bin, que fue mencionado en la publicación por @rodowi.
fuente
export PATH="$HOME/.rbenv/bin:$PATH
funcionar (ya que me estaba fallando)?~/.rbenv/bin/
si instaló a través de homebrew o linuxbrew. Y no debería tener que configurar el camino de calzas usted mismo, comorbenv init
hace esto (y más) para usted .Esta puede ser una vieja pregunta, pero Google me llevó aquí y, por el bien de la posteridad, pensé en compartirla.
Mi problema persistió después de muchas de las soluciones recomendadas anteriormente. Al igual que el OP, instalé rbenv y luego una versión ruby, pero mi computadora portátil se ajustó al sistema. Lo que había pasado por alto fue que cuando corrí:
IOW, todavía estaba predeterminado en el sistema. Un rápido
lo cambió a la nueva versión.
fuente
El primer paso es averiguar qué rubí se llama:
which ruby
Tu sistema dice:
/usr/bin/ruby
Este NO es el shim utilizado por rbenv, que (en MacOS) debería verse así:
/Users/<username>/.rbenv/shims/ruby
La cuña es en realidad un script que actúa como un redireccionamiento a la versión de ruby que configura.
rbenv global 1.9.3 rbenv local --unset rbenv shell --unset
Recomiendo que para la resolución de problemas, desactive la versión "local" específica del proyecto y la versión "shell" específica del shell y simplemente pruebe usando la configuración de versión "global" que se determina en un archivo de texto plano en ~ / .rbenv / verion solo será el número de versión "1.9.3" en su caso. Puede hacer "ls -laG" en la raíz de la carpeta de su proyecto (no en la carpeta de inicio) para asegurarse de que ya no haya un archivo ".ruby-version".
Puede usar "versiones de rbenv" para identificar qué versión está configurada para usar rbenv (y la ubicación y el nombre del archivo que está configurando eso).
rbenv versions
NINGUNO DE ESO IMPORTA: hasta que establezca el camino correctamente.
Use esto para asegurarse de que su * MacOS le obedecerá:
eval "$(rbenv init -)"
Seguido por:
which ruby
Para asegurarse de que se vea así: /Users//.rbenv/shims/ruby
Luego agregue la línea a su perfil para que se ejecute cada vez que abra una nueva ventana de terminal:
~/.bash_profile eval "$(rbenv init -)"
Hay otras formas de modificar la ruta, no dude en sustituir cualquiera de ellas en lugar de ejecutar rbenv init.
NOTA: reinstale Rails con:
gem install rails
Si estaba intentando ejecutar Ruby on Rails, primero debe tener todo esto funcionando, luego vuelva a instalar la gema de rails. Una instalación previa de Rails usará una ruta codificada al rubí incorrecto y varias otras cosas estarán en el lugar equivocado, así que solo instale la gema nuevamente.
PD: si su MacOS no le obedece (* mencionado anteriormente), entonces puede que tenga que encontrar otra forma de modificar su ruta, pero es poco probable que sea un problema porque "las Mac simplemente funcionan";)
fuente
Acabo de encontrar este mismo problema. Lo que hice fue desinstalar rbenv (a través de homebrew) y reinstalarlo. También agregué
en ~ / .bash_profile cuando reinstalé rbenv. Funciona perfectamente ahora.
fuente
En mi caso, cambiar el
~/.zshenv
no funcionó. Tuve que hacer los cambios adentro~/.zshrc
.Acabo de agregar:
en la parte superior
~/.zshrc
, reinició el shell y cerró la sesión.Comprueba si funcionó:
fuente
Ejecute este comando
Agregue rbenv a bash para que se cargue cada vez que abra una terminal
esto resolverá su problema Referencia
fuente
Si está usando bash , vaya a
y agregue la siguiente línea (si aún no está allí)
Si está utilizando Zsh, vaya a
y agregue la misma línea de código, al final del archivo .zshrc.
Luego, simplemente reinicie su terminal y debería estar bien ahora.
fuente
rbenv help shell
"Establece una versión de Ruby específica para el shell configurando la variable de entorno 'RBENV_VERSION' en su shell. Esta versión anula las versiones específicas de aplicación local y la versión global. Debe ser una cadena que coincida con una versión de Ruby conocida por rbenv. El sistema de cadena de versión especial 'utilizará su sistema predeterminado Ruby. Ejecute las versiones de rbenv' para obtener una lista de las versiones disponibles de Ruby ".
Siempre que rbenv se haya instalado correctamente, ruby -v corresponderá a
rbenv shell 1.9.3-p125
fuente
En cuanto a mí la forma más fácil de usar
rbenv
, junto conzsh
es la adiciónrbenv
a la sección de plugins en.zshrc
config. En mi caso se parece a:Después de eso no hay problemas al instalar, cambiar, usar versiones de ruby con ayuda de
rbenv
.Recuerde reiniciar su sesión de terminal después de realizar cambios.
fuente
Tuve el mismo problema, pero causado por Homebrew:
De alguna manera, también instalé Ruby a través de Homebrew, y la ruta Homebrew estaba por delante de la ruta rbenv en mi
$PATH
. Correr lobrew uninstall ruby
arregló para mí.fuente
correr:
Después de ejecutar eso, cuando configuré mi versión rbenv local:
entonces mi
ruby -v
y misrbenv local
versiones coincidieron.Nota: También es posible que desee salir del directorio en el que se encuentra y luego volver a entrar en él, me di cuenta de que era necesario para que las cosas funcionen.
fuente
Llegué al mismo problema. Se corrigió esto ejecutando el comando "rbenv global" con "sudo". Creo que fue algo problema de permiso.
Actualización: finalmente encontré la solución. Había una misma "versión" de archivo en mi Mac, que está en "/usr/local/Cellar/rbenv/0.3.0/". Creo que fue creado por error ocasionalmente. deberías eliminarlo.
fuente
Cuando tuve estos síntomas, el problema resultó ser que la instalación había fallado a la mitad de la nueva versión de Ruby a la que estaba tratando de cambiar, sin que me diera cuenta. La solución fue eliminarlo y reinstalarlo.
(Esto significaba que aunque ruby 1.9.3 apareció en la lista de versiones disponibles de rbenv, no tenía un ejecutable en la ruta donde rbenv asumió que lo haría. Dado que rbenv intenta cambiar su versión de ruby simplemente anteponiendo una ubicación a su ruta, si realmente no hay nada en la ubicación que le corresponde, su sistema operativo continuará buscando su ruta predeterminada y encontrará la versión de su sistema, en mi caso, como la pregunta 1.8.7.)
fuente
para usuarios de conchas de pescado
fuente
Esto me sucedió justo después de reinstalar
rbenv
. Aparentemente tenía un.ruby-version
archivo en mi directorio de inicio, especificando una versión que ya no existía. Una vez que eliminé el archivo, todo funcionó.fuente
Asegúrese de que la última línea de su
.bash_profile
es:fuente
La respuesta aceptada sugiere agregar lo siguiente:
Esto no funcionará en Mac OSX, que hace referencia el OP. De hecho, si instala rbenv a través de
brew install rbenv
, que es realmente el único método de instalación en Mac OSX, yacurl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
que FALLARÁ en OSX, entonces el ejecutable de rbenv se instalará en:Sin embargo, incluso en OSX, la raíz rbenv permanecerá en el directorio $ HOME:
¿Qué significa esto? Significa que cuando instales rubíes, se instalarán en el directorio de inicio dado en .rbenv:
Ahora la instalación de la cerveza hizo un trabajo que tendrías que realizar manualmente en Linux. Por ejemplo, en Linux, tendría que instalar ruby-build manualmente como complemento:
Esto ya está hecho con la instalación de homebrew. Hay un paso importante que debe hacerse en la instalación de homebrew, como en la instalación de Linux. Debe agregar las cuñas rbenv a su camino. Para hacer eso, cuando se inicia su shell, debe evaluar el siguiente comando (que a su vez agregará las cuñas rbenv al comienzo de su $ PATH):
Ahora cuando corras
echo $PATH
, verás las cuñas rbenv:Ahora verifique su versión de ruby y reflejará el rbenv ruby instalado:
fuente
Curiosamente, la versión rbenv no configuró el archivo .rbenv. Consulte con: ls -ltra -> para ver que se escribió un rbenv
fuente
¿Podrías intentar usar chruby ? chruby no se basa en cuñas, sino que sólo modifica
PATH
,GEM_HOME
,GEM_PATH
.fuente
Olvidé eliminar rvm antes de instalar rbenv. Eliminé rvm y reinstalé rbenv, pero el sistema todavía no estaba usando la versión de Ruby que rbenv designaba como global. Intenté cerrar la Terminal, pero solo funcionó una vez que reinicié toda la máquina.
fuente