I am experimenting with OneGet, the new Powershell PackageManager for Windows. It is included in Windows 10 and in Windows Server Container and Windows Server 2016.
The PackageManager is something I learned to appreciate when I was experimenting with Docker on Linux. There we use apt-get to get software from a web-repository and install this on my Linux machine. When it comes to Docker and you want to auto-install a server this is really valuable, because you can install software from the command line.
There was not a real alternative in Windows…untill now. It is called OneGet and there is little documentation about it. The great thing about OneGet is that is actually a Manager for Package Managers. You can refer to other package managers and have a unified experience in OneGet. OneGet runs in Powershell.
There is a widely used package manager that installs software on Windows. This is called Chocolatey. And … You can use this in OneGet.
Let me lead you through an example to install Git from the commandline using OneGet. This works on Windows 10 and Windows Server 2016. On Windows 8.1, you first need to register OneGet with Powershell. Find instructions here.
First we open a Powershell window and there we type
register-packagesource -Name chocolatey -Provider PSModule -Trusted -Location http://chocolatey.org/api/v2/ -Verbose
Now we have instructed OneGet to look at both NuGet (default Package Manager) and chocolatey to find packages.
Then we can look at all packages available. You can browse to the chocolatey website or you can type
Find-Package | Sort-Object –Property Name | Out-GridView
There we also see the package [Git].
Then install the package by using the command you find everywhere Install-Package Package
And then you’ll get an error.
WARNING: The module ‘git.install’ cannot be installed or updated because it is not a properly-formed module.
And that happens with all modules. After searching for a while I found it!! You have to provide the -ProviderName to it so it looks at chocolatey and not at the default NuGet provider. So instead type
Install-Package git -ProviderName chocolatey
And then … it installs !!!
Hope this helps !
Update 12-29-2015: the ProviderName on Windows Server Container 4 is not PSModule but PowershellGet