2012-10-19 6 views
7

今のところHerokuを実行していましたが、最近の展開ではHeroku gemが廃止されたというメッセージが表示されましたHeroku Toolbeltを支持しています。ツールベルトで、私のHerokuのコマンドはすべて、コマンドラインから正常に動作しますが(私は展開のためのセットアップを持っている)のRakeタスクの中に私は、次のエラーを取得:GemfileのHeroku gemなしでRakeタスク内からheroku CLIを呼び出すことができません

$ rake deploy:staging 
Everything up-to-date 

/Users/aramisbear/.rvm/gems/[email protected]/gems/bundler-1.2.0/lib/bundler/rubygems_integration.rb:147:in `block in replace_gem': heroku is not part of the bundle. Add it to Gemfile. (Gem::LoadError) 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/heroku:18:in `<main>' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>' 

/Users/aramisbear/.rvm/gems/[email protected]/gems/bundler-1.2.0/lib/bundler/rubygems_integration.rb:147:in `block in replace_gem': heroku is not part of the bundle. Add it to Gemfile. (Gem::LoadError) 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/heroku:18:in `<main>' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
from /Users/aramisbear/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>' 

示されているエラーは、この展開レーキからですタスク:

namespace :deploy do 

    desc "deploys to Production after uploading assets to S3" 
    task :production do 
    puts `git push heroku master` 
    puts `heroku run rake db:migrate --app myapp` 
    puts `heroku restart --app myapp` 
    end 

    desc "deploys to Staging after uploading assets to S3" 
    task :staging do 
    puts `git push staging staging:master` 
    puts `heroku run rake db:migrate --app myapp-staging` 
    puts `heroku restart --app myapp-staging` 
    end 
end 

各タスクの2つのherokuコマンドは、問題の原因となります。コマンドラインから実行すると、うまく動作します。私はそれが問題だとは思っていませんが、私はOSXでもRVMを使っています。

これを修正する方法はありますか?これらの追加のコマンドを手動で実行するかエイリアスするだけで大​​したことではないことに気付きましたが、なぜ最初に問題があるのか​​を知りたいのです。

答えて

8

herokuコマンドのgemのバージョンは、おそらくシステムよりもPATHの方が優先されます。

これはテストプロジェクトで再現できました。

which herokuを実行すると、シェルの選択が/home/justinf/.rvm/gems/ruby-1.9.3-p286/bin/herokuであることがわかります。

実行ファイルを削除するにはyesと答えてください。単純にgem uninstall herokuです。

which herokuは今や私に/usr/bin/herokuを与え、私のtest.rbは今ではエラーなしで完了し、バンドラー例外でクラッシュすることはありません。

+0

それでした。ありがとう! – brightball

関連する問題