Fix: Error installing rails: ERROR: Failed to build gem native extension.

ERROR:

On a Windows System, after a fresh install of Ruby, you run the command “gem install rails” to install the Rails on the system.  However, the command fails with error message reported below:

C:>gem install rails
Fetching: i18n-0.6.9.gem (100%)
Successfully installed i18n-0.6.9
Fetching: multi_json-1.8.2.gem (100%)
Successfully installed multi_json-1.8.2
Fetching: tzinfo-0.3.38.gem (100%)
Successfully installed tzinfo-0.3.38
Fetching: atomic-1.1.14.gem (100%)
Building native extensions.  This could take a while…
ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

    C:/Ruby200-x64/bin/ruby.exe extconf.rb
*** extconf.rb failed ***

Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        –with-opt-dir
        –without-opt-dir
        –with-opt-include
        –without-opt-include=${opt-dir}/include
        –with-opt-lib
        –without-opt-lib=${opt-dir}/lib
        –with-make-prog
        –without-make-prog
        –srcdir=.
        –curdir
        –ruby=C:/Ruby200-x64/bin/ruby
        –with-atomic_reference-dir
        –without-atomic_reference-dir
        –with-atomic_reference-include
        –without-atomic_reference-include=${atomic_reference-dir}/include
        –with-atomic_reference-lib
        –without-atomic_reference-lib=${atomic_reference-dir}/
C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:434:in `try_do’: The compiler failed to ge
nerate an executable file. (RuntimeError)
You have to install development tools first.
        from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:519:in `try_link0′
        from C:/Ruby200-x64/lib/ruby/2.0.0/mkmf.rb:817:in `try_run’
        from extconf.rb:26:in `<main>’

Gem files will remain installed in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/atomi
c-1.1.14 for inspection.
Results logged to C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/atomic-1.1.14/ext/gem_
make.out

C:>

 

image

 

FIX:

 

You need to download and install the Development Kits (DevKit): http://rubyinstaller.org/downloads/. Installing appropriate DevKit for your Ruby and Initializing the Ruby environment.  Which would be done using below commands:

Run Installation Scripts
  • cd <DEVKIT_INSTALL_DIR> from Step 3 above.
  • ruby dk.rb init to generate the config.yml file to be used later in this Step. Your installed Rubies will be listed there (only those installed by a RubyInstaller package are detected at present).
  • edit the generated config.yml file to include installed Rubies not automatically discovered or remove Rubies you do not want to use the DevKit with.
  • [optional] ruby dk.rb review to review the list of Rubies to be enhanced to use the DevKit and verify the changes you made to it are correct.
  • finally, ruby dk.rb install to DevKit enhance your installed Rubies. This step installs (or updates) an operating_system.rb file into the relevant directory needed to implement a RubyGems pre_install hook and a devkit.rb helper library file into<RUBY_INSTALL_DIR>librubysite_ruby. NOTE: you may need to use the --force option to update (with backup of the originals) the above mentioned files as discussed at the SFX DevKit upgrade FAQ entry.
  • If you use the x64 version of ruby you might get an error saying `Invalid configuration. Please fix ‘config.yml’ and rerun ‘ruby dk.rb install’`. See http://stackoverflow.com/questions/16523607/cant-get-ruby-devkit-configuration-file-autogenerated-properly
Test Installation
  • Confirm your Ruby environment is correctly using the DevKit by running gem install json --platform=ruby. JSON should install correctly and you should see with native extensions in the screen messages. Next runruby -rubygems -e "require 'json'; puts JSON.load('[42]').inspect" to confirm that the json gem is working.

Commands and their Output on my system:

C:DevKit-mingw64-64-4.7.2-20130224-1432-sfx>ruby dk.rb init
[INFO] found RubyInstaller v2.0.0 at C:/Ruby200-x64

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.

C:DevKit-mingw64-64-4.7.2-20130224-1432-sfx>

image

 

# This configuration file contains the absolute path locations of all
# installed Rubies to be enhanced to work with the DevKit. This config
# file is generated by the ‘ruby dk.rb init’ step and may be modified
# before running the ‘ruby dk.rb install’ step. To include any installed
# Rubies that were not automagically discovered, simply add a line below
# the triple hyphens with the absolute path to the Ruby root directory.
#
# Example:
#
# —
# – C:/ruby19trunk
# – C:/ruby192dev
#

– C:/Ruby200-x64

image

 

C:DevKit-mingw64-64-4.7.2-20130224-1432-sfx>ruby dk.rb install
[INFO] Updating convenience notice gem override for ‘C:/Ruby200-x64’
[INFO] Installing ‘C:/Ruby200-x64/lib/ruby
/site_ruby/devkit.rb’

C:DevKit-mingw64-64-4.7.2-20130224-1432-sfx>

image

 

C:DevKit-mingw64-64-4.7.2-20130224-1432-sfx>gem install bson_ext –platform=rub
y
Fetching: bson-1.9.2.gem (100%)
Successfully installed bson-1.9.2
Fetching: bson_ext-1.9.2.gem (100%)
Temporarily enhancing PATH to include DevKit…
Building native extensions.  This could take a while…
Successfully installed bson_ext-1.9.2
Parsing documentation for bson-1.9.2
Installing ri documentation for bson-1.9.2
Parsing documentation for bson_ext-1.9.2
unable to convert "x90" from ASCII-8BIT to UTF-8 for ext/bson_ext/bson_ext/cbso
n.so, skipping
Installing ri documentation for bson_ext-1.9.2
2 gems installed

C:DevKit-mingw64-64-4.7.2-20130224-1432-sfx>

image

 

Install the Rails again using “gem install rails”

Process Command line: "C:Ruby200-x64binruby.exe"  "C:Ruby200-x64bingem" install rails

C:>gem install rails
Temporarily enhancing PATH to include DevKit…
Building native extensions.  This could take a while…
Successfully installed atomic-1.1.14
Fetching: thread_safe-0.1.3.gem (100%)
Successfully installed thread_safe-0.1.3
Fetching: activesupport-4.0.2.gem (100%)
Successfully installed activesupport-4.0.2
Fetching: builder-3.1.4.gem (100%)
Successfully installed builder-3.1.4
Fetching: rack-1.5.2.gem (100%)
Successfully installed rack-1.5.2
Fetching: rack-test-0.6.2.gem (100%)
Successfully installed rack-test-0.6.2
Fetching: erubis-2.7.0.gem (100%)
Successfully installed erubis-2.7.0
Fetching: actionpack-4.0.2.gem (100%)
Successfully installed actionpack-4.0.2
Fetching: activemodel-4.0.2.gem (100%)
Successfully installed activemodel-4.0.2
Fetching: arel-4.0.1.gem (100%)
Successfully installed arel-4.0.1
Fetching: activerecord-deprecated_finders-1.0.3.gem (100%)
Successfully installed activerecord-deprecated_finders-1.0.3
Fetching: activerecord-4.0.2.gem (100%)
Successfully installed activerecord-4.0.2
Fetching: mime-types-1.25.1.gem (100%)
Successfully installed mime-types-1.25.1
Fetching: polyglot-0.3.3.gem (100%)
Successfully installed polyglot-0.3.3
Fetching: treetop-1.4.15.gem (100%)
Successfully installed treetop-1.4.15
Fetching: mail-2.5.4.gem (100%)
Successfully installed mail-2.5.4
Fetching: actionmailer-4.0.2.gem (100%)
Successfully installed actionmailer-4.0.2
Fetching: thor-0.18.1.gem (100%)
Successfully installed thor-0.18.1
Fetching: railties-4.0.2.gem (100%)
Successfully installed railties-4.0.2
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
Fetching: hike-1.2.3.gem (100%)
Successfully installed hike-1.2.3
Fetching: tilt-1.4.1.gem (100%)
Successfully installed tilt-1.4.1
Fetching: sprockets-2.10.1.gem (100%)
Successfully installed sprockets-2.10.1
Fetching: sprockets-rails-2.0.1.gem (100%)
Successfully installed sprockets-rails-2.0.1
Fetching: rails-4.0.2.gem (100%)
Successfully installed rails-4.0.2
Parsing documentation for atomic-1.1.14
unable to convert "x90" from ASCII-8BIT to UTF-8 for lib/atomic_reference.so, skipping
Installing ri documentation for atomic-1.1.14
Parsing documentation for thread_safe-0.1.3
Installing ri documentation for thread_safe-0.1.3
Parsing documentation for activesupport-4.0.2
unable to convert "x80" from ASCII-8BIT to UTF-8 for lib/active_support/values/unicode_tables.dat, skipping
Installing ri documentation for activesupport-4.0.2
Parsing documentation for builder-3.1.4
C:/Ruby200-x64/lib/ruby/2.0.0/rdoc/parser.rb:87: warning: Unsupported encoding : ignored
C:/Ruby200-x64/lib/ruby/2.0.0/rdoc/parser.rb:87: warning: Unsupported encoding  ignored
Installing ri documentation for builder-3.1.4
Parsing documentation for rack-1.5.2
Installing ri documentation for rack-1.5.2
Parsing documentation for rack-test-0.6.2
Installing ri documentation for rack-test-0.6.2
Parsing documentation for erubis-2.7.0
Installing ri documentation for erubis-2.7.0
Parsing documentation for actionpack-4.0.2
Installing ri documentation for actionpack-4.0.2
Parsing documentation for activemodel-4.0.2
Installing ri documentation for activemodel-4.0.2
Parsing documentation for arel-4.0.1
Installing ri documentation for arel-4.0.1
Parsing documentation for activerecord-deprecated_finders-1.0.3
Installing ri documentation for activerecord-deprecated_finders-1.0.3
Parsing documentation for activerecord-4.0.2
Installing ri documentation for activerecord-4.0.2
Parsing documentation for mime-types-1.25.1
Installing ri documentation for mime-types-1.25.1
Parsing documentation for polyglot-0.3.3
Installing ri documentation for polyglot-0.3.3
Parsing documentation for treetop-1.4.15
Installing ri documentation for treetop-1.4.15
Parsing documentation for mail-2.5.4
unable to convert "x80" from ASCII-8BIT to UTF-8 for lib/mail/values/unicode_tables.dat, skipping
Installing ri documentation for mail-2.5.4
Parsing documentation for actionmailer-4.0.2
Installing ri documentation for actionmailer-4.0.2
Parsing documentation for thor-0.18.1
Installing ri documentation for thor-0.18.1
Parsing documentation for railties-4.0.2
Installing ri documentation for railties-4.0.2
Parsing documentation for bundler-1.3.5
Installing ri documentation for bundler-1.3.5
Parsing documentation for hike-1.2.3
Installing ri documentation for hike-1.2.3
Parsing documentation for tilt-1.4.1
Installing ri documentation for tilt-1.4.1
Parsing documentation for sprockets-2.10.1
Installing ri documentation for sprockets-2.10.1
Parsing documentation for sprockets-rails-2.0.1
Installing ri documentation for sprockets-rails-2.0.1
Parsing documentation for rails-4.0.2
unable to convert "xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/akshaysurve.jpg, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/belongs_to.png, skipping
unable to convert "xF4" from ASCII-8BIT to UTF-8 for guides/assets/images/book_icon.gif, skipping
unable to convert "x91" from ASCII-8BIT to UTF-8 for guides/assets/images/bullet.gif, skipping
unable to convert "xF5" from ASCII-8BIT to UTF-8 for guides/assets/images/chapters_icon.gif, skipping
unable to convert "xF5" from ASCII-8BIT to UTF-8 for guides/assets/images/check_bullet.gif, skipping
unable to convert "xF4" from ASCII
-8BIT to UTF-8 for guides/assets/images/credits_pic_blank.gif, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/csrf.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/edge_badge.png, skipping
unable to convert "x9E" from ASCII-8BIT to UTF-8 for guides/assets/images/favicon.ico, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/feature_tile.gif, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/footer_tile.gif, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/fxn.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/challenge.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/confirm_dialog.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/forbidden_attributes_for_new_post.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/form_with_errors.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/index_action_with_edit_link.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/new_post.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/post_with_comments.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/rails_welcome.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/routing_error_no_controller.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/routing_error_no_route_matches.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/show_action_for_posts.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/template_is_missing_posts_new.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/undefined_method_post_path.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/unknown_action_create_for_posts.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/unknown_action_new_for_posts.png, skipping
unable to convert "xF0" from ASCII-8BIT to UTF-8 for guides/assets/images/grey_bullet.gif, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/habtm.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_many.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_many_through.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_one.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_one_through.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/header_backdrop.png, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/header_tile.gif, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_html_safe.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_localized_pirate.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_translated_en.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_translated_pirate.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_translation_missing.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_untranslated.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/1.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/10.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/11.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/12.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/13.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/14.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/15.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/2.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/3.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/4.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/5.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/6.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/7.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/8.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/9.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/caution.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/example.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/home.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/important.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/next.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/note.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/prev.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/tip.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/up.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/warning.png, skipping
unable to convert "xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/jaimeiniesta.jpg, skipping
unable to convert "xF5" from ASCII-8BIT to UTF-8 for guides/assets/images/nav_arrow.gif, skipping
unable to convert "xFF" from ASCII-8BIT to UTF-8
for guides/assets/images/oscardelben.jpg, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/polymorphic.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/radar.png, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/rails4_features.png, skipping
unable to convert "xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/rails_guides_kindle_cover.jpg, skipping
unable to convert "xEC" from ASCII-8BIT to UTF-8 for guides/assets/images/rails_guides_logo.gif, skipping
unable to convert "x8C" from ASCII-8BIT to UTF-8 for guides/assets/images/rails_logo_remix.gif, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/session_fixation.png, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_grey.gif, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_info.gif, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_note.gif, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_red.gif, skipping
unable to convert "x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_yellow.gif, skipping
unable to convert "x89" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_yellow.png, skipping
unable to convert "xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/vijaydev.jpg, skipping

Installing ri documentation for rails-4.0.2
25 gems installed

C:>

image

Leave a Reply

Your email address will not be published. Required fields are marked *