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:
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.
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
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.
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
$ 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
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.