2012-11-07 16 views
5

Mam aplikację Rails 3.2.3, którą próbuję przesłać do Heroku przy użyciu Ruby 2.0.0preview1 (patrz: http://blog.heroku.com/archives/2012/11/5/ruby-2-preview-on-heroku/).Heroku: "nie znaleziono polecenia pakietu" pod Ruby 2.0.0

To jest aplikacja, która działa prawidłowo pod Ruby 1.9 i nie powinna mieć problemów z Ruby 2.0.0.

Błędy ja napotykają to:

2012-11-07T15:19:32+00:00 heroku[web.1]: State changed from crashed to starting 
2012-11-07T15:19:37+00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 3225 -c ./config/unicorn.rb` 
2012-11-07T15:19:38+00:00 app[web.1]: bash: bundle: command not found 
2012-11-07T15:19:39+00:00 heroku[web.1]: Process exited with status 127 
2012-11-07T15:19:39+00:00 heroku[web.1]: State changed from starting to crashed 

Zalogowałem się Heroku przez bash i zainstalowane Bundler (gem install Bundler), ale to nie pomogło. Próbowałem również zmienić zmienną środowiskową GEM_PATH, ale to też nie robi nic.

Wytężam swój mózg, aby rozwiązać ten problem. Każda pomoc jest doceniana!

Odpowiedz

5

Miałem to samo: rozwiązałem, tworząc nową aplikację Heroku z Ruby 2.0.0 i patrząc na wyjście "konfiguracji heroku" mojej aplikacji w stosunku do nowej aplikacji. Wtedy zauważyłem, że zarówno GEM_PATH i ścieżki były różne, tak zrobiłem:

$ heroku config:set GEM_PATH=vendor/bundle/ruby/2.0.0 
$ heroku config:set PATH=bin:vendor/bundle/ruby/2.0.0/bin:/usr/local/bin:/usr/bin:/bin 

A presto, błąd zniknął!

(wpadł na pomysł z: heroku: bash: bundle: command not found)

+4

Zobacz także artykuł Heroku Devcenter [Zmiana wersji Ruby Breaks PATH] (https://devcenter.heroku.com/articles/changing-ruby-version-breaks-path). – willglynn

+1

Właśnie otrzymałem wiadomość e-mail od Heroku i polecili to, co poleciliście. Możesz zobaczyć dokumentację Heroku dotyczącą zmiany wersji Ruby tutaj: https://devcenter.heroku.com/articles/changing-ruby-version-breaks-path – cobrabyte

0

Właśnie ten problem ustaloną dla współpracownika. Upewnij się, że twój buildpack jest prawidłowy. Jeśli użyjesz ruby ​​upewnij się, że jest to heroku/ruby. Zmieniliśmy go z node.js na pakiet kompilacji ruby.