Build Gems That Require Native Extensions on Windows - Install Gems in Windows With Builds Tools via MinGW
Ever get this error when either trying to install a gem, or running a bundle update (someone’s updated the gemfile)?
Fetching: linecache19-0.5.12.gem (100%)
ERROR: Error installing linecache19:
The ‘linecache19′ 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
Going to those links and setting everything up is way to much effort. Here’s a quick way to get everything working. We’re going to use MinGW (Minimalist GNU for Windows) to compile our gems.
Head over to http://www.mingw.org/wiki/Getting_Started and read under “Graphical User Interface Installer” (since we love our GUI’s :D). Don’t let the age of that post (2007) scare you off. MinGW is kept up to date. Here’s a direct link for download. Get the latest version. As of writing I’m using mingw-get-inst-20110530.exe.
Run the .exe, click Next, Next, Make sure “Use pre-packaged repository catalogs” is selected, Select the agreement, I use the default C:\MinGW on the next step, Next on the start menu, I use the following:
- C Compiler
- ObjC Compiler
- MSYS Basic System
- MinGW Developer ToolKit
Click Next and a dos window will popup doing it’s magic. Click Finish once it’s done.
Now click Start –> All Programs –> MinGW –> MinGW Shell
Once the shell is open punch in “gem install linecache19″ and you get this beautiful output:
$ gem install linecache19
Building native extensions. This could take a while…
Successfully installed linecache19-0.5.12
1 gem installed
Installing ri documentation for linecache19-0.5.12…
Installing RDoc documentation for linecache19-0.5.12…
Now you can install gems that have native extensions! And you have a new linux style environment to play around with!
You now have a new linux shell to add to your arsenal. There’s also a way to add MinGW to your path so you don’t have to run the MinGW shell, but I personally like to keep my path clean.
This should work for Windows XP, Windows Vista and Windows 7. 32 & 64 bit.