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

TakayukiKoyama Geek Blog

Create, Entertain, Experience

【解決編】Heroku Toolbeltのセットアップをしようとしたが失敗した(Windows8)

Heroku(RoR)

前回のエントリの解決編です。

Heroku Toolbeltのセットアップをしようとしたが失敗した(Windows8)

 前回、$ gem install railsで詰まりましたが、その後も悪戦苦闘した。

それでも僕はmakeしたい

 問題になっていたのは、railsをインストールしようとして以下のコマンドを要求されるので実行したが、「コンパイラが失敗した」というエラーが出てくる。

$ ruby extconf.rb

 だが、諦めずに解決策を探してみる。

 コンパイルのエラーということはコンパイラに問題があるのは明らか。ただ、Ruby特有のものであることも考えられるので、それも含めてググる

記事発見:Windows環境でhpricotのインストール時にエラー - oTheRwoRld

 この記事によると問題のGemが"atomic"ではなく、"hpricot"という違いはあるが、解決策は同じっぽいので試してみる。

 MinGWをインストールすれば、コンパイルできるようだ。

HOWTO Install the MinGW (GCC) Compiler Suite | MinGW

 上記のサイトからGetting Started | MinGW にアクセスして「 mingw-get-setup.exe」をダウンロード。

 ダブルクリックで実行。MinGW Installerが起動した。なんか良くわからないので全部にチェックしてインストール。

 C:\にインストールしたけど、一応、環境変数のパスを貼っておく。

 C:\MinGW\bin;

 よっし、もういっかい。

$ ruby extconf.rb
creating Makefile

 ...を? Make fileできた。じゃあ、make,make installしよう

$ make
Makefile:222: *** multiple target patterns.  Stop.

 ファッ!?...エラー。「multiple target patterns」って、なんですか。

 Cygwin で multiple target patterns. Stop. が出たら - ふなWiki

コンパイルの際のパスにWindows的なパス(c:\hoge)とかが含まれている可能性がある。

 どうやら、コンパイラがダメなのではなくて、パスに問題があると。

 もっと調べてみる。

WideStudio Programming (1-2)~Make.exeの問題 | AttoBlog

 Windows的なパスに対応したmake.exeのパッチが提供されているらしい。

 差し替えてmakeしてみたが、「○○.dllが見つかりません」的なエラーが出た。

 差し替えだけじゃダメっぽい?もっと調べてみよう。

 makefile - Ruby DevKit problems - Stack Overflow

Can you try to install it in a folder without spaces?

 ああ、パスにスペースが入ってるとまずい可能性もあるのか...そういえば、「Program Files (x86)」ってスペース入ってるなぁ。Microsoftさん、なぜスペース入れたし。

一からやり直そう

 一からやり直すことには相変わらず抵抗を持っているが、それでうまくいくこともあるし、C直下でHeroku環境を置くとする。

 1.一旦、Heroku内のデータをアンインストール

 Herokuのフォルダにアンインストールファイルがあるのでダブルクリックでアンインストール。

 2.Herokuフォルダ削除

 なにか紐づいてるかもしれないので、全部消して一からということで。

 3.Gitのアンインストール

 コンパネからアンインストール。これはやらなくてもいいかも。

 4.Heroku Toolbeltをダウンロード&インストール

 保存パスに注意して再挑戦。今回はCドライブ直下。

 5.環境変数を直す

 RubyとかHerokuのパスを張り直す。

 6.Railsのインストールに再挑戦

$ gem install rails

 DevKitのエラーが出る。そうそう、DevKitの更新をしないと。前記事と同じようにやる。

 ということで、もう一回。

$ gem install rails

 ...........お、おお。来た。インストールできたw

 makeとか関係ない。スペースを含む配置パスが問題だったか。今回は「C:\」のようなコロンを含むパスの問題ではないようだ。

 ということで終わり。って言っても、セットアップしただけで何も始まってない。

まとめ

 WindowsでHeroku Toolbeltを使う場合

 1.Heroku Toolbeltをインストールするとき、パスにスペース入れない

  ドライブ直下が無難。

 2.HerokuとRubyのパスをつなぐ

  Heroku\binとruby-1.9.2\binを環境変数に入れる。

 3.MinGWをインストール

  とりあえず、gem install railsを試して、エラーが出たらインストール。

$ ruby dk.rb init
$ ruby dk.rb install

 4.gem install railsRailsインストール

 5.Herokuでアカウント作成

 6.heloku loginでHerokuのアカウントを連動させる。

 でセットアップは終わり。さて、Herokuをいじくってみよう。