rails rubygems rvm bundler

rubygems - bundle install rails



RVM Bundle Install Missing Gem Error aunque la gema está instalada (19)

Agregar lo siguiente (tomado de .bash_profile) a .bashrc me lo arregló:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Recibo el siguiente error aunque actualmente tengo instalada la gema Bundler (aparece cuando ejecuto $ gem list).

ERROR: Gem bundler is not installed, run `gem install bundler` first.

Estoy usando RVM y mi $ PATH es el siguiente:

/Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd/bin: /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@global/bin: /Users/cjstingl/.rvm/rubies/ruby-1.9.2-p290/bin: /Users/cjstingl/.rvm/bin: /Users/cjstingl/.bin: /usr/local/sbin: /usr/local/Cellar/php/5.3.6/bin: /usr/local/share/python: /usr/bin: /bin: /usr/sbin: /sbin: /usr/local/bin: /usr/X11/bin

También esta es mi env gema

RubyGems Environment: - RUBYGEMS VERSION: 1.8.15 - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.2.0] - INSTALLATION DIRECTORY: /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd - RUBY EXECUTABLE: /Users/cjstingl/.rvm/rubies/ruby-1.9.2-p290/bin/ruby - EXECUTABLE DIRECTORY: /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-darwin-11 - GEM PATHS: - /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@rails3tutorial2ndEd - /Users/cjstingl/.rvm/gems/ruby-1.9.2-p290@global - GEM CONFIGURATION: - :update_sources => true - :verbose => false - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - "gem" => "-n/usr/local/bin --no-ri --no-rdoc --no-user-install" - REMOTE SOURCES: - http://rubygems.org/

Además: el uso del comando bundle -v devuelve el mismo error

Intenté implosionar RVM y volver a instalar, lo que parece no funcionar. Estoy perplejo y cualquier ayuda sería apreciada.


Después de tener RVM instalado en varias máquinas con la misma configuración y tener problemas con RVM en uno pero sin tener estos problemas en otro, decidí buscar algo mejor, menos propenso a errores.

Encontré y rbenv a rbenv , que es mucho más simplista que RVM.

Y como dice el README de rbenv:

Rbenv hace ...

  • Le permite cambiar la versión global de Ruby por usuario.
  • Proporcione soporte para las versiones de Ruby por proyecto .
  • Le permite anular la versión de Ruby con una variable de entorno.

En contraste con rvm, rbenv no ...

  • Necesita ser cargado en su caparazón. En cambio, el enfoque shim de rbenv funciona al agregar un directorio a $ PATH.
  • Anular comandos de shell como cd. Eso es peligroso y propenso a errores.
  • Tener un archivo de configuración No hay nada que configurar, excepto qué versión de Ruby quieres usar.
  • Instala a Ruby. Puede construir e instalar Ruby usted mismo, o usar ruby-build para automatizar el proceso.
  • Administrar gemas. Bundler es una forma mejor de administrar dependencias de aplicaciones. Si tiene proyectos que todavía no usan Bundler, puede instalar el rbenv-gemset .
  • Requerir cambios a las bibliotecas de Ruby por compatibilidad. La simplicidad de rbenv significa que siempre y cuando esté en su $ PATH, nada más necesita saber al respecto.
  • Le avisa con advertencias cuando se cambia a un proyecto. En lugar de ejecutar código arbitrario, rbenv lee solo el nombre de la versión de cada proyecto. No hay nada de "confianza".

Entonces, si me preguntas, descarga RVM y cambia a rbenv.


Esto funciona para mí cuando especifico la versión de Ruby que quiero usar:

$ rvm use 1.9.2-p290 Using /Users/myname/.rvm/gems/ruby-1.9.2-p290


Esto también me sucedió después de cambiar a un nuevo gemset vacío y ejecutar gem install bundler . La causa es que el shell está "recordando" el último ejecutable del bundle usaste. Para arreglar eso (al menos en bash -descendientes):

hash -r


Instalé ruby ​​1.9.3 por rvm. Después de que git octopress se haya completado, simplemente edite $ path_of_git / .rvmrc como este "rvm use 1.9.3". Y LUEGO ejecuta el comando de "cd ...; cd $ path_of_git". Después de eso, le preguntará si el clima confía en .rvmrc o no. Escriba ''y'' para que el archivo .rvmrc funcione.


Me encontré con el mismo problema (donde seguí instalando el bundler y rvm no lo reconoceré) en una de mis laptops. Supuse que podría haber instalado RVM mal mientras aún era un novato de Rails. Intenté la solución anterior pero no funcionó para mí. Después de jugar con eso, me di por vencido y eliminé RVM y lo reinstalé. Pensé que era debido a algún extraño problema de configuración profundamente anidado en algún lugar o. Estos son los pasos que tomé:

Eliminar RVM:

rvm implode

Instalar RVM nuevamente:

curl -L https://get.rvm.io | bash -s stable --rails rvm reload

Como estoy trabajando en un viejo proyecto de rails para trabajar, tuve que instalar ree-1.8.7-2012.02

rvm install ree-1.8.7-2012.02

Por supuesto, la Ley de Murphy todavía se aplica. Me encontré con otro problema donde mi computadora portátil no pudo encontrar un compilador de C no roto , aunque Xcode está instalado junto con gcc. Mis últimos pasos fueron a https://github.com/kennethreitz/osx-gcc-installer e instalar su paquete y reinstalar ree.

Espero que esta solución de último recurso ayude a alguien. ¡Buena suerte!


Me encontré con el mismo problema el día de hoy. El enfoque que utilicé para resolver el problema fue este:

1) Ejecutar

cap shell

en la misma máquina, normalmente ejecutaría la implementación de límite. Entonces ejecuta

env | sort

Esto ejecuta el comando en el servidor remoto. Copie y pegue el resultado en un archivo de texto local, por ejemplo, capenv.txt

2) SSH en el mismo servidor remoto, y haga el mismo comando, a saber, env | ordenar. Guarde esto localmente como un archivo de texto, por ejemplo, sshenv.txt

3) Difunda los dos archivos y vea lo que está en sshenv.txt que no está en capenv.txt: es muy probable que este sea su problema.

< ++CAP ++ < _=/bin/sh --- > ++ SSH ++ > __array_start=0 14a15 > PS1=/[/e]2;tracker@charlotte/a/e[0;31m LIVE:/u@/h /w> /e[0m 18d18 < rvm_env_string=ruby-1.9.3-p194 21d20 < rvm_ruby_string=ruby-1.9.3-p194 27c26,28 < USER=tracker / No newline at end of file --- > USER=tracker > USES_BASHRC=bashrc > _=/usr/bin/env

4) Inmediatamente noté que el intérprete de shell no estaba listo para golpear. Esto se puede arreglar agregando

set :shell, ''/usr/bin/bash''

a su archivo deploy.rb. Esto resolvió mi problema


Me encontré con este problema después de actualizar mi nivel de parche Ruby. Ejecuté which gem y descubrí que estaba usando una versión global de rubygems, en este caso la ruta era ~/.rvm/bin/gem . Así que ejecuté rvm rubygems current , que lo instalé en ~/.rvm/rubies/ruby-1.8.7-p370/bin/gem . Ran bundle gem install bundler y bundle nuevo. Problema resuelto.


No sé si es la causa de tu problema. Pero tuve un problema similar. La razón fue que mi entorno RVM no era correcto.

Tenía 2 usuarios, uno que funcionaba y otro que no. El usuario que trabaja usó la siguiente secuencia de comandos. (salida de: qué paquete)

/home/rvm/.rvm/gems/ruby-1.9.3-p0/bin/bundle

El usuario de instalación de rvm incorrecto utilizado:

/home/user/.rvm/bin/bundle

La razón de esto es la orden $ PATH incorrecta. La ruta .rvm / gems / ruby ​​-... / bin se debe colocar antes de la ruta ./rvm/bin.

En mi situación, la causa fue que establecí la variable $ PATH en un rvm de otro usuario. Solucioné el problema agregando un enlace simbólico al RVM del usuario y cambiando mi ruta de:

/home/rvm/.rvm/bin

a

/home/user/.rvm/bin

Cuando el código anterior no funciona para usted, puede ajustar manualmente la ruta simplemente DESPUÉS de cargar rvm.


Para mi configuración, agregando al usuario que apache se ejecuta como para el grupo rvm trabajado

usermod -a -G rvm www-data


Pruebe esto: https://rvm.io/integration/gnome-terminal/

dice sobre los perfiles que se ejecutan al inicio, estoy ejecutando Ubuntu 12.10 y funciona. Lo único que tiene que hacer es establecer "Ejecutar comando como un shell de inicio de sesión" en las preferencias de perfil del terminal (título de la pestaña y comando).

Espero que ahorre algo de tiempo a alguien.


Sabes qué, este es obviamente el problema de tu variable PATH.

Debe asegurarse de que which bundle sea /usr/local/rvm/gems/ruby-1.9.3-p194/bin/bundle lugar de algo como /usr/local/rvm/bin/bundle .

insinuación:

¿Acabas de usar PATH = alguna lista explícita en tu archivo .zshrc?

Entonces deberías cambiar eso a PATH = $ PATH: alguna lista


También tuve este problema. Solucioné mi problema especificando un gemset.

$ bundle install ERROR: Gem bundler is not installed, run `gem install bundler` first. $ rvm gemdir /usr/local/rvm/gems/ruby-1.9.3-p194 $ rvm gemset list gemsets for ruby-1.9.3-p194 (found in /usr/local/rvm/gems/ruby-1.9.3-p194) global rails32 $ rvm gemset use rails32 Using ruby-1.9.3-p194 with gemset rails32 $ rails s Could not find rake-10.0.4 in any of the sources Run `bundle install` to install missing gems. $ bundle install Fetching gem metadata from https://rubygems.org/....... {And voila! it worked!}


Tuve el mismo problema con una instalación limpia de RVM 1.10.3. Después de reinstalarme, noté que el paquete está instalado y que los directorios <gemset> / bin se están agregando a mi $ PATH, pero esos directorios bin en realidad no existen. Creo que es solo un error RVM.

Como una solución rápida, copié manualmente el bundle binario en un directorio bin de RVM que sí existe. Eso parece haber solucionado mi problema:

$ cd ~/.rvm $ cp gems/ruby-1.9.3-p0/gems/bundler-1.0.21/bin/bundle rubies/ruby-1.9.3-p0/bin/

Las versiones de Ruby y Bundler en esos caminos probablemente serán diferentes para ti.

La solución anterior funciona, sin embargo, me estaba molestando, así que se lo dije a los chicos de rvm; resulta que mi archivo ~ / .gemrc estaba anulando la ubicación de la gema con esta línea:

- "gem" => "-n/usr/local/bin"

Quitándolo lo solucionó por mí. Mira aquí el hilo completo: https://github.com/wayneeseguin/rvm/issues/1043#issuecomment-7336267


Tuve el mismo problema cuando tenía un archivo .rvmrc vacío en el directorio al que cambié (rvm 1.15.1). Obviamente hay muchas causas para este error


Tuve un problema muy similar por una razón ligeramente diferente. Mi directorio personal tenía un archivo .gemrc que quedaba de una vieja configuración de ruby, y me perdí cuando borré los archivos viejos. Parece que la gema confundía la configuración rvm con la configuración en este archivo. Una vez que lo eliminé (y algunos archivos se instalaron en la ubicación anterior), todo funcionó bien.


Tuve un problema similar, y la respuesta (al menos para mí) fue enloquecedoramente simple después de muchas pruebas y errores.

Este es definitivamente un problema de ruta, y la mención de @ gamecreature del orden de ruta fue la clave crucial para mí.

No estoy seguro de cómo sucedió, pero tenía $HOME/.rvm/bin como el primer elemento en mi exportación PATH.

Esto es innecesario ya que este directorio se agrega a la ruta en el orden correcto mediante la obtención del archivo rvm.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Así que mi solución fue simplemente eliminar $HOME/.rvm/bin de mi exportación PATH.

Si tiene varios archivos de inicio (.bashrc, .bash_profile, .profile), asegúrese de seguir los consejos en la página de solución de problemas de rvm :

asegúrese de que el origen del archivo rvm ocurra por última vez en sus archivos de perfil (.bash_profile / .bashrc / .zshrc) esencialmente después de cualquier personalización de PATH / funciones o alias.

Pero también recomendaría verificar el resto de la definición de PATH para asegurarse de que no haya ningún duplicado declarado que tenga prioridad.


Tuve un problema similar. Resultó que no tenía un archivo .rvmrc específico para el proyecto. Acabo de crearlo usando

rvm --rvmrc --create 1.9.3@my_project_name

En mi proyecto dir

Esto resolvió el problema


Si llegaste al fondo de esto y todavía te golpeas la cabeza contra la pared ...

Mi problema era que rvm install 1.8.7 fallaba tarde en la instalación pero parecía haber tenido éxito (tenía ruby ​​1.8.7 y podía crear gemas)

Pero parece que $GEM_HOME se establece tarde en el script de instalación y, como no estaba configurado, rvm no estaba buscando gems en el lugar correcto.

rvm reinstall 1.8.7 y busqué cuidadosamente los errores.

Lo que me alertó fue este hilo: https://groups.google.com/d/topic/rubyversionmanager/aUBDxbBzZpE/discussion

Puede verificar si este es su problema ejecutando

echo $GEM_HOME o gem env o verificando el registro de instalación de rvm (ver enlace arriba)

¿Ves tu versión ruby ​​y tu gemset en tu Gem Path? Si no, tal vez la instalación rvm falló.