一直以来,在众多Linux系统的发行版以及一些开发语言都会集成一些包管理工具。

而Windows系统却没有官方的包管理工具,比较著名的第三方开源包管理工具是chocolatey,上面的包一般也都比较全面,版本比较新。

win10之后这一状况得到了改善,在新版win10中PowerShell中具备了名叫OneGet包管理的功能,并且该模块在GitHub上是开源的。

但是笔者大概试了一下,其自带的软件源还是比较少的,比如maven,spring这些常用的包都无法直接获取安装到,于是研究了一下,发现OneGet可以集成其他一些比较知名的软件源,这其中就包括chocolatey,研究了一下OneGet的命令wiki上的cmdlets命令。将方法写了下来:

  1. 首先是win+x,管理员运行PowerShell

  2. 如果之前没有集成该工具可以运行Install-Module PackageManagement –Force来安装

  3. 接下来输入Find-PackageProvider来寻找可用软件包的源,我们看到Chocolatey就在其中

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    PS C:\Users\Administrator> Find-PackageProvider

    Name Version Source Summary

    ------

    nuget 2.8.5.208 https://onege... NuGet provider for the OneGet meta-package manager
    psl 1.0.0.210 https://onege... psl provider for the OneGet meta-package manager
    chocolatey 2.8.5.130 https://onege... ChocolateyPrototype provider for the OneGet meta-pa...
    PowerShellGet 2.0.4 PSGallery PowerShell module with commands for discovering, in...
    DockerMsftProvider 1.0.0.6 PSGallery PowerShell module with commands for discovering, in...
    ChocolateyGet 1.0.0.1 PSGallery An PowerShell OneGet provider that discovers packag...
    DockerProvider 0.0.0.3 PSGallery PowerShell module with commands for discovering, in...
    ContainerImage 0.6.4.0 PSGallery This is a PackageManagement provider module which h...
    NanoServerPackage 1.0.1.0 PSGallery A PackageManagement provider to Discover, Save and...
    GitLabProvider 1.3.8 PSGallery GitLab PackageManagement provider
    DockerMsftProviderInsider 1.0.0.2 PSGallery PowerShell module with commands for discovering, in...
    GitHubProvider 0.5 PSGallery GitHub-as-a-Package - PackageManagement PowerShell ...
    GistProvider 0.6 PSGallery Gist-as-a-Package - PackageManagement PowerShell P...
    TSDProvider 0.2 PSGallery PowerShell PackageManager provider to search & inst...
    OfficeProvider 1.0.0.1 PSGallery OfficeProvider allows users to install Microsoft Of...
    0install 2.16.3 PSGallery OneGet Package Provider for Zero Install
    AppxGet 0.1.0.1 PSGallery Powershell Package Management (OneGet) Provider for...
    MyAlbum 0.1.2 PSGallery MyAlbum provider discovers the photos in your remot...
    WSAProvider 1.0.0.4 PSGallery Provider to Discover, Install and inventory windows...
    Pacman-Provider 0.0.1 PSGallery Pacman provider enables installation of pacman pack...
    ChocoOneGet 0.4.0 PSGallery OneGet provider for Chocolatey
  1. 输入Install-PackageProvider –Name "chocolatey"来安装该软件包源(注名称不加引号也可以,其他选项参见命令wiki),也可以一次多安装几个其他的软件源

  2. 此时执行Find-Package -Name maven发现可以搜索到Choco上的包了,执行安装命令便自动获取安装了

这样就大功告成,我们也实现了windows上使用官方的包管理工具,通过命令的方式方便管理很多开源和第三方的软件包,省去了通过浏览器去官网下载安装,再配置环境和注册表这些恼人的步骤😀。