When I restarted in the Windows ecosystem, I was installing PowerShell modules like this:
This is similar to installing a Python package with pip in Linux:
pip install ansible
Like the Linux ecosystem, the Windows ecosystem has several package databases. The PS Gallery I linked above. Chocolatey Packages. The NuGet Gallery. They each host different kinds of software, similar to how you can install different kinds of software from PyPI, Ruby Gems, and yum/apt.
In Linux, you work with each system separately from the others. In Windows, you can work with them separately, but you usually shouldn’t. Microsoft built PackageManagement (formerly OneGet) to orchestrate the different package repositories. Now, each source of packages is implemented in a “Provider”. There’s a provider for the PS Gallery (called PowerShellGet) and another for Chocolatey. PackageManagement gives you a single interface to all of them through one set of cmdlets. Check out their architecture diagram.
So, we don’t need to use Install-Module to work directly with PS Gallery. Instead, we can just ask PackageManagement to install what we need and it’ll figure out where to get it from:
You can also do things like check where an installed package came from:
Get-Package 'PSDscResources' Name Version Source ProviderName ---- ------- ------ ------------ PSDscResources 126.96.36.199 https://www.powershellgallery.c… PowerShellGet
In Linux, work with each package manager separately. In Windows, just use PackageManagement.
If this was helpful and you want to save time by getting “copy and paste” patterns for PowerShell and Cloud DevOps in your inbox, subscribe here.