Continuing on with our “Developing on Windows” series, we will now be talking about Ruby. Why does everyone think that you can’t develop on Windows? Our last post talks about getting a decent set up for vim.
Compared to that, this is actually not too bad. It follows three steps:
- Run the Ruby Installer
- Install the Ruby DevKit
- Make sure everything is in your
$PATH
Ruby Installer
Pretty straightforward, really. Run it. Let it install. Make sure to check all
the boxes you see, including adding it to your $PATH
. Restart any shell
sessions, and make sure irb
launches the Ruby REPL. Good? Good.
NOTE: I’d also recommend installing pry
, as it’s an overall nicer
interactive Ruby shell.
Ruby DevKit
Look… the DevKit is necessary. It’s just a small MinGW bundle that can
hook into RubyGems, and then you can build most C extensions as much as you
want. Some of them might not work, especially if they rely on Kernel#fork
, but
that’s OK. It’s okay! You will be OKAY! You’re not deploying web apps on a
Windows Server environment, you’re just making changes and doing work and stuff.
Easy as that.
RubyGems
You should now be able to gem install
to your heart’s content. Unless, that
is, you run into a stupid SSL error. If you’re having that issue, it usually
means your version of RubyGems is out of date. Unfortunately, you can’t update
it, because it self-updates! Fortunately, RubyGems is still accessible without
SSL, so if we temporarily change the source, we should be able to update just
fine.
$ gem sources -r https://rubygems.org/
$ gem sources -a http://rubygems.org/
$ gem update --system
$ gem sources -r http://rubygems.org/
$ gem sources -a https://rubygems.org/
If that doesn’t work, we have a much stranger problem. Take a look at the this gist to try and salvage things.
This is a rather old issue, and should be fixed everywhere, but I’ll leave it here for reasons.
Adding Stuff to Your $PATH
The easiest way to do this is actually through the Control Panel, under User
Accounts (it’s on the left side called “Change my environment variables”),
because the Powershell commands are unnecessarily long and complex. It’s under
the User Settings in the Control Panel. Also make sure to add .RB;
to your
PATHEXT
variable, so you can run ruby files like ./test.rb
, and so ConEmu
will run ruby commands in their emulator instead of spawning a new and separate
window that you then have to pay attention to.
Look. It’s not perfect. It’ll never truly be perfect, but Linux and Mac aren’t perfect either. There’s just more resources and tools, because that’s what people use. You can use Windows though! Rails works, Sinatra works, base Ruby works. It all works… mostly.