In 2013 I asked the questions "Is the Windows user ready for apt-get?" As with nearly all my blog posts, the comments are better than the post itself. ;)
Now it's 2015 and many of us are upgrading to Windows 10. One of the little gems in Windows 10 that no one is talking about (yet) is OneGet. You can read about OneGet architecture here.
It's easy (and wrong) to just say that One-Get is Apt-Get for Windows. But OneGet isn't actually a package manager. It's more clever and cooler than that. It's a package manager manager.
OneGet is a Manager of Package Managers
Go out to you Windows 10 PowerShell prompt now and type "Get-PackageProvider" and you'll see the package managers you have registered with OneGet today.
C:\> Get-PackageProvider
Name Version
---- -------
Programs 10.0.10240.16384
msu 10.0.10240.16384
msi 10.0.10240.16384
PSModule 1.0.0.0
Usually programs are installed with things like MSIs, for example, so there's a provider for that. You can type "Get-Package" and see the programs AND packages on your machine:
C:\> Get-Package
Name Version
---- -------
123D Design R1.6 1.6.41
Windows Driver Package - Ge... 06/04/2011 8....
Windows Driver Package - Ge... 06/19/2014 8....
Windows Driver Package - FT... 01/27/2014 2....
JRuby 1.7.19 1.7.19
Windows Driver Package - ST... 11/09/2009 3....
EPSON NX410 Series Printer ...
Intel Edison Device USB driver 1.2.1
Since it's PowerShell, you can sort and filter and what-not to your heart's delight.
OneGet isn't Microsoft's Chocolately
Chocolatey is an open source apt-get-like machine-wide package manager that you can use today, even if you don't have Windows 10.
OneGet isn't Microsoft's version of Chocolately. But there is a beta/preview Chocolatey provider that plugs into OneGet so you can use OneGet to get Chocolatey packages and install them.
Other things worth noting, even though OneGet is in the box for Windows 10, you can still run it on Windows 7 and Windows 2008 R2. Plus, OneGet isn't done and it's open source so there's lots of cool possibilities.
Oh, and an important naming point. Just like "Chromium" is the open source browser and "Chrome" is the Google packaged instance of that project, "OneGet" is the open source project and what ships with Windows 10 is just generically "PackageManagement." Just a good reminder of the relationship between open source projects and their shipping counterparts.
Installing VLC using OneGet and Chocolatey on Windows 10
Example time. You've got a new Windows 10 machine and you want to get VLC. You can (and should) totally get it from the Windows Store, but let's get it using Package Management.
Here I need to get the beta Chocotlatey provider first, and once, with "get-packageprovider -name chocolatey." Also, when I install a package for the first time it will prompt to download NuGet as well. I will answer Yes to both.
NOTE: You can also install Chocolatey explicitly with "install-package –provider bootstrap chocolatey"
Now I can just "install-package vlc" and it will get it from the Chocolatey repository.
C:\> get-packageprovider -name chocolatey
The provider 'chocolatey v2.8.5.130' is not installed.
chocolatey may be manually downloaded from https://oneget.org/ChocolateyPr30.exe and installed.
Would you like PackageManagement to automatically download and install 'chocolatey'?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Name Version
---- -------
Chocolatey 2.8.5.130
C:\> install-package vlc
The provider 'nuget v2.8.5.127' is not installed.
nuget may be manually downloaded from https://oneget.org/nuget-anycpu-2.8.5.127.exe and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
The package(s) come from a package source that is not marked as trusted.
Are you sure you want to install software from 'chocolatey'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
---- ------- ------ -------
vlc 2.2.1.20150630 chocolatey VLC Media Player
Boom. Now VLC is installed. It's early days but it's interesting stuff!
You can read about the available OneGet cmdlets at https://github.com/OneGet/oneget/wiki/cmdlets.
For example here I can find the latest version of zoomit.
C:\> find-package -name zoomit
Name Version Source
---- ------- ------
zoomit 4.50 chocolate
Just to be clear, with regards to OneGet and Chocolatey.
- It's an unsupported version of Chocolatey provider in a GitHub repo
- Folks can download it using OneGet cmdlets and then using the unsupported provider, you can download Chocolatey packages.
- Microsoft is working with the community to take ownership of Chocolatey provider.
And again, you can use Chocolatey TODAY on your Windows 7 and up machines as it is.
Managing MSI-installed Programs with OneGet and PackageManagement
OneGet and PackageManagement in Windows 10 lets you manage package managers of all kinds to control what's installed one your machines. For example, I can uninstall an MSI installed program like this. This is just like visiting Add/Remove Programs (ARP) and uninstalling, except I did it from the command line!
C:\> Uninstall-Package join.me.launcher
Name Version
---- -------
join.me.launcher 1.0.368.0
MSI and Chocolately are just the start for OneGet. What if one package management API could also get Python or PHP packages? Windows Store apps?
Donate to help Chocolatey
Last, but definitely not least, it's important to remember that Chocolatey and the Chocolatey Repository of Packages can use your help and sponsorship. Head over to https://chocolatey.org/ and scroll to the bottom and click Donate and you can Paypal or use your Credit Card to help them out.
Sponsor: Big thanks to our friends at Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls. Get super-charged performance with the world’s fastest HTML5 Grid -Download for free now!
© 2015 Scott Hanselman. All rights reserved.