rails que deploy commands capristano ruby-on-rails gem capistrano bundler

ruby-on-rails - que - github capistrano



¿Por qué no bundler instalar JSON joya? (19)

Recibo el siguiente error cuando intento ejecutar la cap production deploy .

DEBUG [dc362284] Bundler::GemNotFound: Could not find json-1.8.1.gem for installation DEBUG [dc362284] An error occurred while installing json (1.8.1), and Bundler cannot continue. DEBUG [dc362284] Make sure that `gem install json -v ''1.8.1''` succeeds before bundling.

Puede ser importante observar que esta implementación estaba funcionando, que actualicé a Ruby 2.1.0 para eliminar un error de codificación. Actualicé localmente que funcionó bien. rvm install 2.1.0 y rvm use 2.1.0 luego cambié mi archivo .ruby-version para reflejar esta actualización de Ruby.

El comando de bundle install funciona localmente, pero produce el mismo error anterior cuando ssh en el servidor de destino y ejecuta este comando.

Si ejecuto la lista de gemas puedo ver esto en la lista de gemas.

... jquery-rails (3.0.4) json (1.8.1) less (2.3.2) ...

Si intento la solución recomendada gem install json -v ''1.8.1'' Localmente y en el servidor de destino obtengo el siguiente resultado:

Building native extensions. This could take a while... Successfully installed json-1.8.1 Parsing documentation for json-1.8.1 Done installing documentation for json after 0 seconds 1 gem installed

Entonces parece que la gema está instalada, ¿verdad? ¿Por qué está pasando esto? ¿Como puedo resolver esto? Cualquier ayuda sería muy apreciada.


Bundle no instalaba json -v ''1.8.1'' y eliminar mi Gemfile.lock y ejecutar el paquete de nuevo resolvió este problema para mí.


Cambiar la versión de ruby ​​de 1.9 a 2.2 con rvm hizo el trabajo por mí


Cuando traté de instalar la gema json usando gem install json separado de simplemente usar bundle install obtuve ERROR: Failed to build gem native extension. , al buscarlo encontré usando

apt-get install ruby-dev

Hizo el truco


Deberías intentarlo

$ sudo gem install json -v ''1.8.2''

en mi caso (Ubuntu 14.04) que no funcionó directamente y tuve que hacer esto:

$ sudo apt-get install ruby-dev

y luego podría instalar la gema y continuar. Tenía un problema más que fue corregido por:

$ sudo apt-get install libsqlite3-dev

Esperar ayuda.


Ejecuta este comando, entonces todo estará bien

sudo apt-get install libgmp-dev


Encontré la solución here . Hay un problema con json versión 1.8.1 y ruby ​​2.2.3, entonces instale la versión json 1.8.3.

gem install json -v1.8.3


Entonces, después de medio día de esto y casi inmediatamente después de publicar mi pregunta, encontré la respuesta. Bundler 1.5.0 tiene un error que no reconoce las gemas predeterminadas como se hace referencia aquí

La solución fue actualizar a bundler 1.5.1 usando gem install bundler -v ''= 1.5.1''


Esto parece ser un error en Bundler al no reconocer las gemas predeterminadas instaladas junto con ruby ​​2.x. Todavía experimenté el problema incluso con la última versión de bundler (1.5.3).

Una solución es simplemente eliminar json-1.8.1.gemspec del directorio predeterminado gemspec.

rm ~/.rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/specifications/default/json-1.8.1.gemspec

Después de hacer esto, el paquete no debería tener problemas para localizar la gema. Tenga en cuenta que estoy usando chruby. Si está utilizando algún otro administrador de ruby, tendrá que actualizar su ruta en consecuencia.


Instalé la última versión de json:

gem install json

Luego eliminó la línea json (1.8.1) del archivo Gemfile.lock e hizo un

bundle install

Y luego el archivo Gemfile.lock usa json (1.8.3) sin errores


Me encontré con este error al intentar ejecutar un proyecto en mi caja de desarrollo local (OSX 10.6), usando Sinatra y Postgresql (a través de activerecord), ejecutándose en un rvm''d ruby ​​2.1. Encontré mi respuesta aquí: https://github.com/wayneeseguin/rvm/issues/2511

Mi problema exacto (después del primer bloque de entradas de registro):

También recibo un error al intentar crear extensiones nativas para gemas

La answer :

rvm reinstall 2.1.0 --disable-binary

La explanation :

OSX no tiene un administrador de paquetes, por lo que todas las bibliotecas deben ser instaladas manualmente por el usuario, esto hace que sea virtualmente imposible vincular el binario dinámicamente, y como puede ver, hay problemas con el binario (pseudo) vinculado estáticamente.

En aras de la exhaustividad, primero había olvidado actualizar rvm ( rvm get head ), lo que arrojaba algunos otros errores, pero aún necesitaba el flag --disable-binary una vez que lo había hecho.


Me faltaba la solución de encabezados C era descargarlo para Xcode, esta es la mejor manera.

xcode-select --install

Espero eso ayude.


Para OS X, asegúrese de tener coreutils

$ brew install coreutils $ bundle


Para mí, algunas de las respuestas mencionadas anteriormente fueron útiles desde el punto de vista de la comprensión, pero eso no resolvió mi problema.

Entonces esto es lo que hice para resolver el problema.

  • Modificado gemfile.lock para actualizar json (2.0.2) ( Anteriormente, era 1.8.3 )
  • Compruebe la versión de Bundler instalada (comando Bundler -v ). Tenía la versión 1.12.5 instalada
  • Instalar la versión 1.11.2 del paquete (utilizando el gem install bundler -v ''1.11.2'' )
  • A continuación, ejecute bundle install

Para macOS Sierra:

Me encontré con este error cuando utilicé el paquete ( v1.15.3 ) en el proyecto Rails ( v4.2 ). La solución para mí es gem uninstall bundler -v ''1.15.3'' y gem install bundler -v ''1.14.6'' .


Para resolver este problema, simplemente ejecute:

bundle update

Actualizará la versión de tu paquete. Entonces corre:

bundle install

Su problema se resolverá. La solución está bien explicada here .


Si la respuesta recomendada no ayudó porque ya está usando una versión más nueva de bundler. Prueba la solución que funcionó para mí.

Elimine todo dentro de la carpeta de su proveedor. Agregue una línea a su archivo gem

gem ''json'', ''1.8.0''

A continuación, ejecute - bundle update json .

Parece ser un problema con 1.8.1, por lo que volver al 1.8.0 me sirvió.


si estás en MacOS Sierra y tu versión de ruby ​​es 2.4.0. La versión de ruby ​​no es compatible con json 1.8.3.

Puedes intentar agregar esta línea en tu Gemfile:

gem ''json'', github: ''flori/json'', branch: ''v1.8''

Esto funciona para mi!


bundle update json . Ayudó a pasar.


$ bundle update json $ bundle install