読者です 読者をやめる 読者になる 読者になる

はじめてRailsアプリをHerokuにデプロイしたときに大きくつまった2点

そんな暇あったら、ニコニコカレンダーを進めろよ、と思うのですが、
せっかくなので、Railsの勉強もしたい!!

Windows環境で、Railsアプリを作って、Herokuにデプロイするところまで、

Learn Web Development with the Ruby on Rails Tutorial

を教科書にして行ってみました。

内容はチュートリアルを参照、ということし、ここでは、
大きくふん詰まった2点を書き留めておきます。

誰かのお役に立ちますように・・・。


1.jsonがインストールできぬ

これは調べるとすぐに出てくるDevKitないよエラー。

ERROR:  Error installing rails:
        The 'json' native gem requires installed build tools.

Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'

メッセージにあるようにDevelopment-Kitを入れましょう。

と、ここまではよかった。

rubyinstaller.orgには

  • DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe
  • DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe
  • DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

の3種類があります。

Windows7の64bitだったので、一番下を選択しました。
(そもそもこの判断がダメ???)

ところが、どこをどうしても、

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing rdiscount:
    ERROR: Failed to build gem native extension.

のエラーから抜け出せぬ。

Google先生にお伺いをたてまくり、あーーーでもない、こーーーでもない、していると、

結城大先生のブログに行き着く。

プラットホームが64bitなことに起因してるのかなと予想したが、深追いするのはやめた。

http://d.hatena.ne.jp/hyuki/20121113/heroku/

とのこと。

エラーの内容が似ていたため、もしや、と思い、

  • DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe

を入れなおす。

すると、すんなりインストールできました。泣。


2.herokuにpushできぬ

これは私の環境だけかもしれませんが、、、

C:\path\to\first_app>git push heroku master
Warning: Permanently added 'heroku.com,50.19.85.132' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

公開鍵ちゃんとアップロードしてあるのに、、、


Google先生にお伺いをたてると、

  • keys:refreshしてkeys:addし直してみなさいな
  • C:\Users\%USER%\.ssh\config 作りなさいな
  • git\.sshにC:\Users\%USER%\.sshの中身をコピーしなさいな
  • ssh-keygenで鍵ファイル作り直してみなさいな

等いろいろ出てきましたが、どれもダメ。


ぐぬぬと試行錯誤しているうちに、

  • herokuは鍵ファイルを正しく見つけている
    • だってkeys:addできるもん
  • git pushで実行されているsshが鍵ファイルを見つけられない
    • ひょっとしてユーザーのホームディレクトリがわからない?

という状況なのではないかと推測しました。


んでコマンドプロンプトから、

set HOME=C:\Users\%USER%

としてみたところ、ちゃんとpushされました。泣。


うむ。これで、先に進める。