with ruby rbenv

with - rbenv reinstall ruby



rbenv no cambia la versión ruby (19)

¿Podrías intentar usar chruby ? chruby no se basa en shims, en su lugar solo modifica PATH , GEM_HOME , GEM_PATH .

Instalé rbenv de acuerdo con las instrucciones de github. Estoy ejecutando OSX, pero lo he intentado en una máquina virtual 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 de ruby ​​como cree que es? Además, no hay ningún archivo .rbenv en el directorio local que pueda causar que la versión de ruby ​​se establezca por defecto en 1.8.7

rbenv local rbenv: no local version configured for this directory


Acabo de encontrar este mismo problema. Lo que hice fue desinstalar rbenv (a través de homebrew) y reinstalarlo. También agregué

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

en ~ / .bash_profile cuando reinstalé rbenv. Funciona perfectamente ahora.


Arreglé esto agregando lo siguiente a mi ~ / .bash_profile:

#PATH for rbenv export PATH="$HOME/.rbenv/shims:$PATH"

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.


Asegúrese de que la última línea de su .bash_profile de .bash_profile es:

export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"


Compruebe que PATH contenga $ HOME / .rbenv / shims y $ HOME / .rbenv / bin

$ env | grep PATH

También verifique que tenga lo siguiente en su perfil ~ / .bash si está usando bash o ~ / .zshenv si está usando zsh

export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"

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 reinicié PATH.


Cuando tuve estos síntomas, el problema resultó ser que la instalación había fallado a mitad de camino para la nueva versión de Ruby a la que estaba tratando de cambiar, sin darme cuenta. La solución fue eliminarlo y reinstalarlo.

(Esto significaba que aunque ruby ​​1.9.3 aparecía en la lista de rbenv de las versiones disponibles, 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 ​​solo al anteponer una ubicación a su ruta, si no hay nada realmente en la ubicación que precede, su sistema operativo felizmente continuará buscando su ruta predeterminada y encontrará la versión de su sistema, en mi caso como la pregunta 1.8.7.)


Curiosamente, la versión rbenv no configuró el archivo .rbenv Verifique con: ls -ltra -> para ver que se haya escrito un rbenv


Ejecuta este comando

Agregue rbenv a bash para que se cargue cada vez que abra un terminal

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

Esto solucionará tu problema Reference


El primer paso es descubrir a qué rubí se llama:
which ruby

Su sistema dice:
/usr/bin/ruby

Este NO es el shim usado por rbenv, que (en MacOS) debería verse como:
/Users/<username>/.rbenv/shims/ruby

El shim es en realidad un script que actúa como un redireccionamiento a la versión de ruby ​​que configuraste.

rbenv global 1.9.3 rbenv local --unset rbenv shell --unset
Recomiendo que para la resolución de problemas, desestabilice la versión "local" específica del proyecto y la versión "shell" específica del shell y realice una prueba utilizando la configuración de la versión "global" que se determina en un archivo de texto simple en ~ / .rbenv / verion que 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" allí.

Puede usar "versiones rbenv" para identificar qué versión rbenv está configurada para usar (y la ubicación y el nombre del archivo que lo está configurando).

rbenv versions

NINGUNO DE ESTO IMPORTA: hasta que establezca la ruta correctamente.

Use esto para asegurarse de que su * MacOS le obedecerá:
eval "$(rbenv init -)"

Seguido por:
which ruby

Para asegurarse de que se vea como: /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, siéntase libre de sustituir cualquiera de ellas en lugar de ejecutar el inicio de rbenv.

NOTA: reinstale los rieles con:
gem install rails

Si intentabas ejecutar Ruby on Rails, primero debes tener todo esto funcionando, luego instalar la gema Rails nuevamente. Una instalación previa de Rails usará un camino codificado al rubí equivocado y varias otras cosas estarán en el lugar equivocado, así que simplemente instale la gema nuevamente.

PD: Si tu MacOS no te obedece (* mencionado anteriormente), es posible que tengas que encontrar otra forma de modificar tu ruta, pero es poco probable que sea un problema porque "las Mac simplemente funcionan";)


En cuanto a mí, la forma más fácil de usar rbenv junto con zsh es agregar rbenv a la sección de complementos en la configuración .zshrc . En mi caso se parece a:

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=(git bower rails ruby rbenv gulp npm node nvm sublime)

Después de eso no hay problemas al instalar, cambiar, usar versiones ruby ​​con la ayuda de rbenv .

Piense en reiniciar su sesión de terminal después de los cambios realizados.


En mi caso, cambiar el ~/.zshenv no funcionó. Tuve que hacer los cambios dentro de ~/.zshrc .

Acabo de añadir:

# Include rbenv for ZSH export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"

en la parte superior de ~/.zshrc , reinició el shell y se desconectó.

Compruebe si funcionó:

➜ ~ rbenv install 2.4.0 ➜ ~ rbenv global 2.4.0 ➜ ~ rbenv global 2.4.0 ➜ ~ ruby -v ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]


Esta puede ser una vieja pregunta, pero Google me condujo hasta aquí y, por lo que respecta a la posteridad, pensé que lo compartiría.

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 tenía el sistema por defecto. Lo que había pasado por alto era que cuando corría:

[~/.rbenv] $ rbenv versions * system (set by /Users/alphadogg/.rbenv/version) 2.0.0-p247

IOW, todavía estaba por defecto al sistema. Un rápido

[~/.rbenv] $ rbenv local 2.0.0-p247

Lo cambié a la nueva versión.


Esto me sucedió justo después de que reinstalé rbenv . Aparentemente tenía un archivo .ruby-version en mi directorio de inicio, especificando una versión que ya no existía. Una vez que borré el archivo, todo funcionó.


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 fue designada como global por rbenv. Intenté cerrar Terminal, pero solo funcionó una vez que reinicié toda la máquina.


Tuve el mismo problema, pero causado por Homebrew:

[~]$ rbenv version 2.3.0 (set by /Users/user/.rbenv/version) [~]$ ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16] [~]$ which ruby /usr/local/bin/ruby

De alguna manera también había instalado a Ruby a través de Homebrew, y el camino de Homebrew estaba delante del camino de rbenv en mi $PATH . Ejecutar brew uninstall ruby me lo arregló.


Vine 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 un mismo archivo "versión" en mi mac, que está debajo de "/usr/local/Cellar/rbenv/0.3.0/". Creo que fue creado por error de vez en cuando. usted debe eliminarlo.


correr:

rbenv init

Después de que ejecuté eso, cuando configuré mi versión local de rbenv:

rbenv local 2.4.0

entonces mi ruby -v y mi rbenv local versiones rbenv local coincidieron.

Nota: es posible que también desee salir del directorio en el que se encuentra y luego volver a acceder a él. Me he dado cuenta de que era necesario para que las cosas funcionen.


para el usuario de cáscara de pescado

set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/


rbenv help shell

"Establece una versión de Ruby específica del shell al configurar la variable de entorno ''RBENV_VERSION'' en su shell. Esta versión anula las versiones específicas de localapplication y la versión global. Debe ser una cadena que coincida con una versión de Ruby conocida por rbenv. ''usará su sistema predeterminado Ruby. Ejecute versiones rbenv'' para obtener una lista de las versiones disponibles de Ruby ".

Siempre que se haya instalado correctamente rbenv, ruby ​​-v corresponderá a

rbenv shell 1.9.3-p125