1 Comment

Need to Install Tools on Windows? Use Scoop

On a recent project, I needed to bring our source tree over to a Windows system in order to do some testing and light development there. Windows development with open-source tools has always been challenging, starting with getting the right tools in place.

In the past, I had been using a tool called Chocolatey—something I’d learned about when working with Windows developers on a Web project—but I found its need to always have elevated privileges annoying and unnecessary. This time around, I went looking for alternatives and found Scoop.

What’s the Scoop?

While Scoop can fetch and install packages from the internet to get you up and running with the open-source tools you need, it feels a lot more like the venerable Homebrew. In fact, Homebrew was one of Scoop’s inspirations—and it shows, with a one-command installation (two if you need to make a small Windows config change) that gets you 100% set up.

The key difference between Scoop and Chocolatey that made me a Scoop fan was the fact that, by default, it installs all its packages into a scoop directory right off your user folder. This allows it to run without ever asking for administrator permissions, much as Homebrew does.

Getting started with Scoop involves a one-liner in PowerShell:

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

As I mentioned before, if you haven’t done so already, you’ll need to make a small configuration change—and the above one-liner will tell you how. The Scoop-recommended level of RemoteSigned is satisfactory for my needs, but I encourage you to read up on execution policies before making that decision for yourself.

Installing Software

Installing software from Scoop’s repository is simple. Dependency tracking is handled for you. Just type the following, for example:

scoop install git

Scoop will go out, grab all of the dependencies for Git, and install it ready-to-go on your PATH. You don’t have to do anything else.

If there are any configuration changes that are recommended to make using the software you just installed easier, Scoop will tell you. For example, it told me that I can make a configuration change so that Git can see OpenSSH and use it to access repositories over SSH.

Don’t know what you want to install? Scoop has a handy search command:

scoop search ssh

And when you want to get rid of a package, all it takes is one command:

scoop uninstall git

Maintaining Software

Once you have a healthy set of packages installed, you’ll want to keep them up to date. Scoop has built-in support for updating itself, as well as your applications. To update Scoop to the latest version:

scoop update

And to update all your installed apps:

scoop update *

If you want to update just one app, you can do that, too—just specify which Scoop app you want to update in place of *.

Global Installs

There was one other interesting Scoop feature that I didn’t personally use, but it sounded helpful, nonetheless: global installs. You need admin rights to perform a global install, but it turns out to be very simple with Scoop—because Scoop has a port of Sudo that knows exactly how to make this work.

Installing Sudo for yourself works exactly as you’d expect:

scoop update sudo

Now you can prefix any admin command with sudo, including this one to install Vim globally—and the command will run after you accept the Windows prompt to temporarily run Scoop with administrator privileges.

sudo scoop install -g vim

Scoop has been a very useful tool for getting things done on Windows. I’ve started putting it on all my Windows systems. Have you tried it? If so, how did you like it?