2012-04-20 12 views
9

Tengo una aplicación de Rails sencilla que quiero implementar en Heroku. Cuando ejecuto el siguiente comando¿Por qué estoy recibiendo No pude encontrar multi_json-1.3.1 en ninguna de las fuentes?

git push heroku master 

Aparece el siguiente mensaje de error.

Could not find multi_json-1.3.1 in any of the sources 
! 
! Failed to install gems via Bundler. 
! 
! Heroku push rejected, failed to compile Ruby/rails app 

Aquí es mi Gemfile

gem 'rails', '3.2.3' 
gem 'pg' 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'therubyracer', :platform => :ruby 
    gem 'uglifier', '>= 1.0.3' 
end 
gem 'jquery-rails' 

Respuesta

25

Borrar el archivo Gemfile.lock y ejecutar bundle install. ¡Esto funciona para mí!

+0

Estás en lo correcto.Justo ahora lo he resuelto :) –

+0

simple y en funcionamiento;) – ghostrifle

+0

Además, no olvide agregar y confirmar los cambios en Gemfile.lock antes de presionarlo después de la instalación del paquete. Esto parece obvio, pero me olvidé de hacerlo y, por supuesto, el error fue el mismo al presionar;) – Hezad

-1

Lo he resuelto siguiendo los siguientes pasos.

Removed Gemfile.lock 
bundle install 

La causa del problema es un principio mi Gemfile.lock ha multi_json-1.3.1

ahora que tiene la versión 1.3.2-multi_json

0

En mi caso, me faltaba

source 'https://rubygems.org' 

en Gemfile. Sospecho que las versiones anteriores de bundler pueden funcionar sin que se mencione una fuente, pero las versiones más nuevas no pueden funcionar.

1

Vi una serie de estos errores para diferentes gemas a pesar de que sabía que estas gemas estaban disponibles (por ejemplo, gem list -r <gem> las mostró, incluida la versión; la navegación de rubygems.org mostró que la versión que necesitaba estaba allí y no había sido tirado, etc.) y tuve un conjunto de fuentes (incluso configuré 6 fuentes diferentes para estar seguro).

Resultó que mi problema era git stashed antes de salir de una rama de características para obtener lo último en desarrollar y olvidé omitir el alijo después, que era un problema porque había cambiado mi .rvmrc y no había confirmado el cambio (para usar un rubí más nuevo que nuestra producción).

Debido a que mi .rvmrc especifica un gemset para el proyecto, stashing que significaba que estaba la agrupación de repente contra un gemset que le faltaba un montón de piedras en mi Gemfile.lock y por razones que no entiendo Bündler asume si la gema es en Gemfile.lock ya está instalado y no lo busca de forma remota.

Así que, por si acaso alguien más se enfrenta a este caso increíblemente frustrante, pensé que lo escribiría aquí.

1

Si está utilizando Capistrano para realizar sus implementaciones y misteriosamente obtiene "No se pudo encontrar multi_json-1.7.2 en cualquiera de las fuentes", asegúrese de tener require "bundler/capistrano" en la parte superior de su config/deploy.rb.

0

Para mí, esto se debió a que Pow (servidor de bastidor local) no estaba utilizando la versión/gemset ruby ​​RVM correcta.

fijo, añadiendo la siguiente .powrc:

# based on https://coderwall.com/p/pkj39a 
if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".ruby-version" ] && [ -f ".ruby-gemset" ]; then 
    source "$rvm_path/scripts/rvm" 
    rvm use `cat .ruby-version`@`cat .ruby-gemset` 
fi 

Fuente: https://coderwall.com/p/pkj39a

Cuestiones relacionadas