諸般の事情により、aws-sdkの古いバージョンをインストールしてみます。
gem install aws-sdk -v 1.5.7 ERROR: Error installing aws-sdk: 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'
どうやらWindowsではDevelopment-Kitが必要なようです。
Development-Kitのインストール
http://rubyinstaller.org/downloads/
からバージョンに合ったDevelopment-Kitをダウンロードしてきます。
Ruby1.9.3の場合は DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe になります。
自己解凍形式のファイルなので、C:\Program Files (x86)\Heroku\devkit など、適当なフォルダに解凍します。
devkitを解凍したフォルダに移動してinit,installを実行します。
cd C:\Program Files (x86)\Heroku\devkit ruby dk.rb init [INFO] found RubyInstaller v1.9.3 at C:/Program Files (x86)/Heroku/ruby-1.9.3 Initialization complete! Please review and modify the auto-generated 'config.yml' file to ensure it contains the root directories to all of the installed Rubies you want enhanced by the DevKit.
ruby dk.rb install [INFO] Updating convenience notice gem override for 'C:/Program Files (x86)/Heroku/ruby-1.9.3' [INFO] Installing 'C:/Program Files (x86)/Heroku/ruby-1.9.3/lib/ruby/site_ruby/devkit.rb'
aws-sdkインストール試行錯誤
さて改めてaws-sdkをインストールしてみます。
gem install aws-sdk -v 1.5.7 Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing aws-sdk: ERROR: Failed to build gem native extension. "C:/Program Files (x86)/Heroku/ruby-1.9.3/bin/ruby.exe" extconf.rb creating Makefile make generating generator-i386-mingw32.def /bin/sh: -c: line 0: syntax error near unexpected token `(' /bin/sh: -c: line 0: `C:/Program Files (x86)/Heroku/ruby-1.9.3/bin/ruby -e "puts 'EXPORTS', 'Init_generator'" > generator-i386-mingw32.def' make: *** [generator-i386-mingw32.def] Error 2 Gem files will remain installed in C:/Program Files (x86)/Heroku/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/json-1.8.1 for inspection. Results logged to C:/Program Files (x86)/Heroku/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
https://github.com/mitchellh/vagrant/issues/1619
どうやらrubyのインストールパスに空白が含まれているとダメになるようです。
仕方ないのでWIndowsでシンボリックリンクを張って対応します。
コマンドプロンプトを管理者権限で実行して以下を実行します。
C:\Windows\system32>mklink /D C:\ruby-1.9.3 "C:\Program Files (x86)\Heroku\ruby-1.9.3" C:\ruby-1.9.3 <<===>> C:\Program Files (x86)\Heroku\ruby-1.9.3 のシンボリック リンクが作成されました
その上で環境変数のrubyのパスをC:\ruby-1.9.3の方に変更しておきます。
改めてインストールを試みてみます。
gem install aws-sdk -v 1.5.7 Temporarily enhancing PATH to include DevKit... ERROR: While executing gem ... (Errno::EACCES) Permission denied - C:/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/json-1.8.1/ext/json/ext/generator/extconf.rb
管理者権限を持った ruby cosole でコマンドを実行する必要があります。
スタートメニュー ⇒ Ruby 1.9.3-p448 ⇒ Rubyコマンドプロンプトを開く
を右クリックして管理者として実行をしてインストールを行います。
gem install aws-sdk -v 1.5.7 Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... Fetching: multi_xml-0.5.5.gem (100%) Fetching: httparty-0.13.1.gem (100%) When you HTTParty, you must party hard! Fetching: aws-sdk-1.5.7.gem (100%) Successfully installed json-1.8.1 Successfully installed multi_xml-0.5.5 Successfully installed httparty-0.13.1 Successfully installed aws-sdk-1.5.7 4 gems installed Installing ri documentation for json-1.8.1... Installing ri documentation for multi_xml-0.5.5... Installing ri documentation for httparty-0.13.1... Installing ri documentation for aws-sdk-1.5.7... Installing RDoc documentation for json-1.8.1... Installing RDoc documentation for multi_xml-0.5.5... Installing RDoc documentation for httparty-0.13.1... Installing RDoc documentation for aws-sdk-1.5.7...
なお、プログラム側からバージョンを指定して呼び出すには以下のようにします。
gem "aws-sdk", "1.5.7" require 'aws-sdk'