2010-09-02 9 views
15

Estoy siguiendo el tutorial de Ruby on Rails en http://railstutorial.org/chapters/beginning#sec:1.4.1, y todo va bien hasta que intenté que mi aplicación funcionara en Heroku.Joya de Heroku no funciona con RVM

He instalado heroku, que funcionaba bien, pero ahora cuando corro heroku keys:add o cualquier otro comando heroku, me sale el siguiente error:

/home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/restclient.rb:9:in `rescue in <top (required)>': 
no such file to load -- net/https. Try running apt-get install libopenssl-ruby (LoadError) 
     from /home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/restclient.rb:5:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/rest_client.rb:2:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/lib/heroku/client.rb:2:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/lib/heroku.rb:3:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/bin/heroku:6:in `<top (required)>' 
     from /home/sirswap/.rvm/gems/[email protected]/bin/heroku:19:in `load' 
     from /home/sirswap/.rvm/gems/[email protected]/bin/heroku:19:in `<main>' 

hice lo que dice el mensaje de error, e instalado libopenssl-rubí , pero heroku todavía no funcionó.

que he hecho una búsqueda y encontré las dos páginas siguientes que tratan de combatir los errores heroku: http://www.mail-archive.com/[email protected]/msg05001.html http://blog.project-sierra.de/archives/1534

he seguido las instrucciones en estas páginas (que son los mismos), pero todavía doesn heroku no funciona

Normalmente hago mi trabajo en Windows, así que todo es un poco nuevo para mí en ubuntu. Aquí está mi entorno ruby:

RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.7 
    - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i686-linux] 
    - INSTALLATION DIRECTORY: /home/sirswap/.rvm/gems/[email protected] 
    - RUBY EXECUTABLE: /home/sirswap/.rvm/rubies/ruby-1.9.2-p0/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/sirswap/.rvm/gems/[email protected]/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /home/sirswap/.rvm/gems/[email protected] 
    - /home/sirswap/.rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

Estoy ejecutando ubuntu 10.04.

Cualquier ayuda o consejo para los próximos pasos serían muy apreciado :)

+0

Gracias por los comentarios chicos, estoy realmente muy ocupado en este momento con las entrevistas de trabajo y los viajes, por lo que tendrán que responder un poco más tarde a sus respuestas para ver lo que funciona para mí :) –

Respuesta

20

que experimentaron el mismo problema, y ​​creo que fue causada por no instalar todas las dependencias de rubí enumerados cuando se ejecuta:

$rvm requirements # it was earlier: rvm notes 

Específicamente, ejecuté [asegúrese de instalar aptitude]:

$sudo aptitude install build-essential bison openssl libreadline5 libreadline5-dev curl git zlib1g zlib1g-dev libssl-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev 

y después de todo eso, recompuse mi instalación de ruby ​​(usando $rvm reinstall 1.9.2) y heroku funcionó a las mil maravillas.

+6

+1 para verificar notas rvm – samvermette

+1

'rvm notes' es realmente importante en * nix y Mac OS ya que normalmente faltan dependencias que impidan que funcionen algunas partes de Ruby, pero no serán visibles hasta mucho más tarde. Entonces nos encontraremos con un problema y no lo asociaremos con el proceso de instalación. Entonces es cuando nos golpeamos la cabeza contra la pared por un tiempo. –

+0

Esto funcionó para mí también. Siguiendo un tutorial de Rails y el comando Heroku vomitó, pero la instalación de dependencias perdidas y la recompilación de 1.9.2 funcionaron como un hechizo. –

2

Leer mis instrucciones en how to install RVM on Linux. Necesita instalar libssl-dev o cosas como net/https no funcionarán. Sin embargo, está bien, solo instálalo y vuelve a compilar tus rubíes.

+0

Gracias, acabo de tener este problema e instalar libssl-dev y ejecutar extconf.rb lo solucionó – Lobe

+1

-1 para spam comercial de about.com en lugar de documentación real. – wuputah

1

En su caso "volver a compilar sus rubíes" probablemente se puede hacer mediante la emisión:

rvm install 

O, alternativamente, usted podría hacer algunos progresos recompilando manualmente la extensión openssl:

cd /home/sirswap/.rvm/src/ruby-1.9.2-p0/ext/openssl 
ruby extconf.rb 
make 
make install 
4

Hey :) No sé si todavía es relevante o si esto funcionará para usted también ... lo hizo por mí.

Tenía el mismo problema ..

También me di cuenta al hacer
$ rails console

que estaba recibiendo errores que indicaban que tenía problemas con Readline.

siguiente http://rvm.beginrescueend.com/packages/readline/ me ayudó a solucionar todos los problemas que estaba experimentando.

3

También estoy haciendo el Railstutorial en Ubuntu 10.10 y obtuve exactamente el mismo error al intentar agregar las llaves de Heroku. Esto lo resuelve:

$ rvm remove 1.9.2 
$ rvm pkg install openssl 
$ rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr 
+0

$ rvm pkg install openssl – grigy

4

Me pasé muchas horas ayer. Con el tiempo, un poco por casualidad (en realidad más como pura desesperación), miré en el archivo/usr/bin/heroku

me di cuenta de la primera línea del script dijo

#!/usr/bin/env ruby1.9.1 

he cambiado esto a

#!/usr/bin/env ruby 

y comenzó a funcionar. Después de volver a instalar el rubí unas 10 veces y todo ese rechupete con openssl. rolleyes

+0

Lo tenía funcionando a través de rvm pero no me gustaban sus grandes cambios de entorno (lo que causaba errores extraños relacionados con rvm en otro código de invocación de shell). La eliminación de rvm rompió las cosas, y muchos intentos de ruby ​​/ ruby-full/libssl no ayudaron. Pero esto fue! Gracias. – gojomo

+0

Me alegro de que haya ayudado a Gojomo. También me puse en contacto con el equipo heroku y he estado trabajando con ellos para tratar de comprender este problema: https://github.com/heroku/heroku/issues/174 –

+1

Por cierto, el 'problema' como lo veo, es que la fuerza del script heroku usa ruby ​​1.9.1. cuando instalo openssh, etc., Ubuntu lo aplica a 1.9.2, por lo que el error 1.9.1 permanece. Esa es mi comprensión (no del experto en rubí) del problema. –

0

Por favor, vuelva a instalar ruby. Fui el mismo problema y lo solucioné reinstalando Ruby.

rvm reinstall ruby 1.9.2 
Cuestiones relacionadas