2012-11-07 31 views
5

Tôi có ứng dụng Rails 3.2.3 mà tôi đang cố gắng đẩy tới Heroku bằng Ruby 2.0.0preview1 (xem: http://blog.heroku.com/archives/2012/11/5/ruby-2-preview-on-heroku/).Heroku: 'lệnh bó không tìm thấy' trong Ruby 2.0.0

Đây là một ứng dụng đã hoạt động đúng theo Ruby 1.9 và không có vấn đề nào trong Ruby 2.0.0.

Các lỗi Tôi đang gặp phải là:

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 

tôi đăng nhập vào Heroku qua bash và cài đặt Bundler (gem install bundler) nhưng điều đó không giúp đỡ. Tôi cũng đã thử thay đổi biến môi trường GEM_PATH nhưng điều đó dường như không làm gì cả.

Tôi đang thiếu bộ não của mình về cách sửa lỗi này. Bất kỳ trợ giúp được đánh giá cao!

Trả lời

5

Tôi có cùng một thứ: đã giải quyết bằng cách tạo ứng dụng Heroku mới với Ruby 2.0.0 và xem kết quả của "cấu hình heroku" của ứng dụng của tôi so với ứng dụng mới. Sau đó, tôi nhận thấy rằng cả GEM_PATH và PATH đều khác nhau, vì vậy tôi đã làm:

$ 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 

Và lỗi, lỗi đã biến mất!

(nhận ý tưởng từ: heroku: bash: bundle: command not found)

+4

Xem thêm bài viết Heroku Devcenter [Thay đổi phiên bản Ruby Breaks PATH] (https://devcenter.heroku.com/articles/changing-ruby-version-breaks-path). – willglynn

+1

Tôi vừa nhận được một email từ Heroku về điều này và họ đã đề xuất những gì bạn đề nghị. Bạn có thể xem tài liệu Heroku về cách thay đổi phiên bản Ruby tại đây: https://devcenter.heroku.com/articles/changing-ruby-version-breaks-path – cobrabyte

0

Tôi chỉ cố định vấn đề này đối với một đồng nghiệp. Hãy chắc chắn rằng buildpack của bạn là đúng.Ie: nếu bạn sử dụng ruby ​​chắc chắn rằng đó là heroku/ruby. Chúng tôi đã thay đổi nó từ node.js thành gói xây dựng ruby.

Các vấn đề liên quan