2013-04-27 69 views
5

我是新来的Ruby on Rails的,应用程序是在本地机器上运行Heroku的捆绑错误(Rails应用程序)

当地束然而,当我尝试混帐推Heroku的主工作

,这是错误我得到:

remote: 
remote: -----> Ruby/Rails app detected 
remote: -----> Using Ruby version: ruby-1.9.3 
remote: -----> Installing dependencies using 
remote:  Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 
remote:  /usr/bin/env: ruby1.9.1: No such file or directory 
remote: ! 
remote: !  Failed to install gems via Bundler. 
remote: ! 
remote: !  Heroku push rejected, failed to compile Ruby/rails app 
remote: 

的Gemfile

source 'http://rubygems.org' 
ruby '1.9.3' 
gem 'rails', '4.0.0.beta1' 

group :development, :test do 
    gem 'sqlite3' 
    gem 'rspec-rails' 
end 

group :assets do 
    gem 'sass-rails', '~> 4.0.0.beta1' 
    gem 'coffee-rails', '~> 4.0.0.beta1' 

    gem 'therubyracer', platforms: :ruby 

    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

gem 'turbolinks' 
gem 'jbuilder', '~> 1.0.1' 
group :test do 
    gem 'capybara' 
end 

group :production do 
    gem 'pg' 
end 

我在想什么? 在此先感谢!

回答

9

我有类似的问题。问题在于Bundler正在生成存根。 Rails 4应用程序不会将存根存储在应用程序的bin /目录中。为了解决这个问题,你需要使用下面的命令:

$ bundle config --delete bin 

然后,你需要更新使用新的Rails 4个可执行

$ rake rails:update:bin 

bin目录然后添加新的bin /目录使用版本控制:

$ git add bin 

提交更改和你的代码推到Heroku的

1

问题在于你的红宝石PATH。所以首先看看你运行时会发生什么

$ heroku run "ruby -v" 
Running `ruby -v` attached to terminal... up, run.8734 
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] 

你是否得到类似的输出?如果没有,然后检查你的路径。

$ heroku config -s | grep PATH 
GEM_PATH=vendor/bundle/ruby/1.9.1 
PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin 

通知,如何bin是在路径中。如果您的手机丢失了,您可以手动设置PATH并通过以下命令添加bin

$ heroku config:set PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin 
+0

谢谢s的Gaurish的快速响应,我得到了类似的输出: 运行'ruby -v'连接到终端... up,run.2357 ruby​​ 1.9.2p290(2011-07-09 revision 32553)[x86_64-linux] – monk3ybidzness 2013-04-30 19:22:33