A Hopefully Complete List of Package Managers Installed on my Computer Right Now

  • Chocolatey: the original Windows package manager. I don't use it very much anymore; it feels too heavyweight and commercial in ways I can't quite articulate.
  • Scoop: A lighter, simpler package manager that sidesteps most of Chocolatey's complexity by just unzipping files to its own managed directory and adding them to your path. The best way to install single-binary programs, which aren't supported well by Chocolatey or at all by Winget. Which brings us to:
  • Winget: These days, my go-to package manager for programs with installers. Leaving aside how it came to be that way, it usually "just works" for installation and single-package updates, and having the official backing of Microsoft means it's got a lot of momentum behind efforts to get most software into its repo. There's no good way to update all packages, though, since it scans your computer for all installed programs it has in its database, even ones you didn't install through it, which can lead to some weirdness. There's also no way to interact with it programmatically (to the vocal chagrin of some users). Hopefully it'll keep getting better. (Opinions my own, and not those of my employer.)
  • Windows Store: Still there.
  • NVS: There are several options for programs that allow management of different Node.JS versions, but this is the one that in my experience works most reliably on Windows. I installed this via Chocolatey.
  • NPM: 3x, one for each Node installation installed by NVS
  • PNPM: 3x, one for each Node installation installed by NVS
  • Yarn: 4x, one for each Node installation and also one system-wide installation. I'm not sure how that got there.
  • Pip: Not counting the instance in each python virtualenv, 3x, for Python 2, 3.8, and 3.10. 3.x versions of Python installed via the Windows Store (thanks to Windows' default alias).
  • Pipx: The best way to install python programs that you're going to use like programs, rather than that you're going to do development with. Just one instance, thankfully, installed via pip3.8. It doesn't seem to work with my PATH on Windows, so I have to run it with python3 -m pipx, but other than that it's great.
  • PowerShellGet: I definitely use this to install some things like posh-git, but I'm not 100% sure how it works or how many instances of it I have - probably two, one for PowerShell Core and one for regular PowerShell. It's definitely not the same thing as Nuget, which I've deliberately excluded from this list since it only installs libraries and not standalone programs (as I spent one very frustrating afternoon a few months back discovering for myself), but seems to be related somehow?
  • PackageManagement/OneGet: Do I use this? I'm not sure. I hope not. At one point this was going to be the future of package management on Windows, and every other package manager was going to plug itself in to OneGet so you could manage all your programs in one place. Anyway, that dream is dead now. I think it still ships with Windows, though.
  • Docker: Technically counts as a package manager, since I use it to run some server apps like Smokeping on my desktop. Installed via Winget.
  • Coursier: For Scala. Installed via Scoop.
  • Raco: For Racket. Installed via Winget.
  • Rustup: For Rust.
  • Cargo: Also for Rust. Installed via Rustup.
  • Go: For Go.
  • Dotnet: For C# and F#. Built on top of Nuget. Ok maybe Nuget is a package manager, I don't know anymore. Installed via Winget.
  • Apple Software Update: For iTunes & iCloud Drive.
  • Visual Studio Installer: For my Visuals Studio (like "notaries public", this is the proper pluralization).
  • JetBrains Toolbox: For my Jetbrainses.
  • Games lightning round: Steam, Epic, both Origin and "the EA app", Itch.io, GOG, Battle.net, Oculus, Amazon Games. Honorable mention goes to Playnite, which isn't a package manager itself, but aggregates all of my games into one list so I don't buy the same game twice. (...again.)
  • Every program that updates itself

This seems... not ideal? I'm not sure what to do about it though.

Show Comments