回到 20 世纪 90 年代,当 Linux 还是一个年轻的操作系统时,Ian Murdock 以现在 apt 命令的形式发明了应用商店的概念。这引入了一个想法,即计算机的容量是无限的,实际上任何命令都应该对您可用;您所要做的就是将其从网络存储库复制到您的本地系统。这在当时似乎是不可能的,但现在已经很普遍了,无论您是在使用 DNF 或 Apt 的 Linux 机器上,还是使用 Homebrew 的 Mac OS,或者使用 Chocolatey 的 Windows 上。
Chocolatey 是 Windows 的软件管理自动化工具,它将安装程序、可执行文件、ZIP 文件和脚本打包成编译后的软件包。它以 Apt 和 yum 为模型,为微软的操作系统开启了一个可自动化和可预测的软件包管理的新世界。Chocolatey 是开源的,并鼓励社区参与。学习和使用 Chocolatey 的人越多,其软件包的供应就越多。
Chocolatey 的优势
如果您以前从未使用过软件包管理器,那么 Chocolatey 的优势可能不会立即显现出来。当您开始使用 Chocolatey 时,您可能会对只需一两个命令即可获得的所有出色的开源软件感到兴奋。您不必在互联网的每个角落寻找很酷的新应用程序;数以千计的应用程序是可发现的,聚合在一个列表中(但仍然彼此在线独立,这是一个健康且多样化的生态系统的关键特征)。一旦您适应了有这么多新的软件选择可以运行,您可能会喜欢一次性更新所有使用 Chocolatey 安装的软件的简易性。最后,如果您是一名开发人员,您会喜欢可以轻松安装和跟踪您的开发环境。
Chocolatey 是迈向美好新世界的大胆一步,所以请做好准备!
安装 Chocolatey
Chocolatey 需要 7-Zip、PowerShell 和管理员权限。如果您尚未安装 7-Zip,请在安装 Chocolatey 之前下载并安装它。它是一个强大的开源归档实用程序,无论有没有 Chocolatey,您都会很高兴拥有它。
要在管理员模式下运行 PowerShell,请单击桌面左下角的 Windows 菜单,然后键入 powershell。右键单击应用程序菜单中的 PowerShell 条目,然后选择以管理员身份运行。

为您的执行策略创建例外
PowerShell 具有安全功能,可帮助用户设置基本规则,以控制 PowerShell 何时可以运行脚本或加载重要的配置文件。通过配置执行策略,用户可以避免意外运行恶意脚本。
策略设置并非旨在具有限制性,您可以轻松地通过 PowerShell 中的直接命令对其进行调整。有许多 策略定义 可用,您可以使用此命令检查您当前的策略
PS> Get-ExecutionPolicy
如果这返回 Restricted,则将其设置为 AllSigned 以允许具有受信任发布者有效签名的脚本(当您尝试运行由您尚未归类为受信任的人员签名的脚本时,它会提示您)。使用以下命令执行此操作
PS> Set-ExecutionPolicy AllSigned

安装 choco 命令
在安装 Chocolatey 及其 choco 命令之前,请通读安装脚本。
由于以管理员身份运行 PowerShell 会将您置于 C:\Windows\stystem32 目录中,因此请使用以下命令更改到硬盘驱动器上的合理位置,例如您的主目录
PS> pwd
C:\Windows\System32
PS> cd \Users\$env.UserName
在撰写本文时,PowerShell 中存在一个错误,导致它在互联网上协商 SSL 时使用 TLS 1.0。您必须告诉它使用最近版本的 TLS,而最简单的方法是为 PowerShell 设置一些选项以循环遍历,直到找到正确的连接方法
PS> [Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls"
下载安装脚本
PS> Invoke-Webrequest -Uri https://chocolatey.org/install.ps1 -OutFile chocolatey-install.ps1
在您喜欢的文本编辑器中打开下载的文件,名为 chocolatey-install.ps1 ,由 Invoke-Webrequest 下载,或者只是在 PowerShell 中阅读它
PS> cat chocolatey-install.ps1 | more
如果您不熟悉 PowerShell,这是熟悉其语法的绝佳方法。更重要的是,通读您想要运行的脚本是良好安全性的重要一步。
一旦您通读了安装脚本并对您将要执行的操作感到满意,请运行它
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
运行 choco
Chocolatey 系统的主要界面是 choco 命令,您刚刚在计算机上安装了该命令。使用 choco,您可以搜索要安装的软件包、安装它们并保持它们更新。
如果您不知道存在哪些软件包,则搜索软件包是一项挑战。您可以使用 list 子命令列出(理论上)Chocolatey 存储库中的所有软件包
PS> choco list
截至撰写本文时,这仅返回大约 1,000 个软件包,而可用的软件包超过 8,000 个。要浏览 Chocolatey 存储库中的所有软件包,请打开 Web 浏览器,并导航到 chocolatey.org/packages。
使用 choco 搜索软件包
如果您知道您想要什么软件包,您可以使用 list 选项以及软件包名称在 Chocolatey 存储库中搜索它。(list 选项有两个别名,search 和 find,因此请使用最适合您的子命令。)由于 choco 搜索标题和描述,因此通常会有大量输出,因此您可能需要通过 more 过滤输出
PS> choco search git | more
使用 choco 安装软件包
一旦您确认了软件包的可用性,请使用 install 命令将其安装在您的系统上
PS> choco install git
根据应用程序的类型,它可能可以从 Windows 菜单中使用,或者仅作为 PowerShell 命令使用。例如,git 默认情况下没有 GUI,因此它完全是一个 PowerShell 命令,而前端 git-cola 是一个 GUI 应用程序,并出现在 Windows 菜单中。

使用 choco 更新软件包
有两种方法可以更新您使用 choco 安装的软件包。您可以单独升级软件包,也可以一次升级所有软件包。
要仅升级一个软件包,请使用 upgrade 选项,后跟您要升级的软件包的名称。例如,要升级名为 foo 的软件包
PS> choco upgrade foo
要升级所有软件包,请使用关键字 all 作为软件包名称
PS> choco upgrade all
使用 choco 删除软件包
如果您决定某个软件包没有用,您可以使用 uninstall 子命令,后跟您要删除的软件包的名称,将其从您的系统中清除。例如,要删除名为 foo 的软件包
PS> choco uninstall foo
探索开源
Chocolatey 是开源的,它使安装许多有用的开源软件包变得非常容易。但是,并非通过 Chocolatey 提供的所有内容都是开源的,因此请仔细检查许可证。
如果您是开源新手,这是发现新工具、库和应用程序的好方法。如果您已经熟悉开源,Chocolatey 为您提供了一种简单的方法来安装和维护您喜欢的软件包。最重要的是,如果您正在考虑迁移到 Linux,Chocolatey 是了解重要 Linux 概念的绝佳入门方式。不要剥夺自己尝试 Chocolatey 的乐趣。它比听起来更健康。
2 条评论