My little secret : Windows PowerShell OneGet

This week, at BUILD, Microsoft will be showing previews of a few technologies that we’ve been working on. Simultaneously, we will be releasing a preview of the next version of WMF (Windows Management Frameworks -- where PowerShell comes from!) on the download center (get the WMF 5.0 Preview).  

 

I've been squirreled away working on a new project which is shipping as part of PowerShell -- OneGet

OneGet is a unified interface to package management systems and aims to make Software Discovery, Installation and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed. Included in this CTP is a prototype implementation of a Chocolatey-compatible package manager that can install existing Chocolatey packages.

 

Keep in mind this is a CTP, and things may be a bit rough around the edges. As we move forward we’ll provide more details around our future plans, including how to write plugins to let other package managers work through the same interface.
 

While the source code isn't yet available, we've started a project on Codeplex where you can at least file bugs and we can start filling in the documentation... 

Some Quick Examples:


PS C:\ > get - command - Module OneGet

 

CommandType Name ModuleName

----------- ---- ----------

Cmdlet Add - PackageSource OneGet

Cmdlet Find - Package OneGet

Cmdlet Get - Package OneGet

Cmdlet Get - PackageSource OneGet

Cmdlet Install - Package OneGet

Cmdlet Remove - PackageSource OneGet

Cmdlet Uninstall - Package OneGet

 

 

# get a list of registered package sources

PS C:\ > Get-PackageSource

 

Name Location Provider IsTrusted

---- -------- -------- ---------

chocolatey http:/ / chocolatey . org / api / v2 Chocolatey False

 

# Let's go look for some packages.

PS C:\ > find-package - Name zoomit - AllVersions

 

Name Version Status Source Summary

---- ------- ------ ------ -------

zoomit 4.42 Available chocolatey ZoomIt is a screen zoom and...

zoomit 4.5 Available chocolatey ZoomIt is a screen zoom and...

zoomit 4.50 Available chocolatey ZoomIt is a screen zoom and...

 

 

# Install a package

PS C:\ > Install-Package - name zoomit

 

Name Version Status Source Summary

---- ------- ------ ------ -------

zoomit 4.50 Installed chocolatey ZoomIt is ascreen zoom and...

 

 

# Show what packages are installed

PS C:\ > Get-Package

 

Name Version Status Source Summary

---- ------- ------ ------ -------

cyg - get 1.1 . 1 Installed Local File A utility toinstall Cygwin...

zoomit 4.50 Installed Local File ZoomIt is ascreen zoom and...

 

# another way to show it.

PS C:\ > get-package | format-table status,name,Version -AutoSize

 

Status Name Version

------ ---- -------

Installed cyg - get 1.1 . 1

Installed zoomit 4.50