开始使用开源 Windows 包管理器:Chocolatey

使用开源 Chocolatey 包管理器在您的 Windows 计算机上下载、安装和更新应用程序。
101 位读者喜欢这个。
Why and how to handle exceptions in Python Flask

图片来自 Unsplash.com,知识共享零许可 

回到 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-ZipPowerShell 和管理员权限。如果您尚未安装 7-Zip,请在安装 Chocolatey 之前下载并安装它。它是一个强大的开源归档实用程序,无论有没有 Chocolatey,您都会很高兴拥有它。

要在管理员模式下运行 PowerShell,请单击桌面左下角的 Windows 菜单,然后键入 powershell。右键单击应用程序菜单中的 PowerShell 条目,然后选择以管理员身份运行

Run Powershell as admin

为您的执行策略创建例外

PowerShell 具有安全功能,可帮助用户设置基本规则,以控制 PowerShell 何时可以运行脚本或加载重要的配置文件。通过配置执行策略,用户可以避免意外运行恶意脚本。

策略设置并非旨在具有限制性,您可以轻松地通过 PowerShell 中的直接命令对其进行调整。有许多 策略定义 可用,您可以使用此命令检查您当前的策略

PS> Get-ExecutionPolicy

如果这返回 Restricted,则将其设置为 AllSigned 以允许具有受信任发布者有效签名的脚本(当您尝试运行由您尚未归类为受信任的人员签名的脚本时,它会提示您)。使用以下命令执行此操作

PS> Set-ExecutionPolicy AllSigned

Creating an exception to the execution policy

安装 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 选项有两个别名,searchfind,因此请使用最适合您的子命令。)由于 choco 搜索标题和描述,因此通常会有大量输出,因此您可能需要通过 more 过滤输出

PS> choco search git | more

使用 choco 安装软件包

一旦您确认了软件包的可用性,请使用 install 命令将其安装在您的系统上

PS> choco install git

根据应用程序的类型,它可能可以从 Windows 菜单中使用,或者仅作为 PowerShell 命令使用。例如,git 默认情况下没有 GUI,因此它完全是一个 PowerShell 命令,而前端 git-cola 是一个 GUI 应用程序,并出现在 Windows 菜单中。

Application installed with Chocolatey in the Windows menu

使用 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 的乐趣。它比听起来更健康。

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算行业工作,通常同时进行。

2 条评论

这太棒了!我从来没有听说过。我不是 Windows 用户,但我的许多朋友都是。感谢分享。

很棒的文章!我只想指出几点

1. 您不需要在安装 Chocolatey 之前安装 7Zip。安装脚本会为您执行此操作;

2. 我不同意要求用户更改其执行策略是一个好主意(您要求用户将其从 Restricted 设置为 AllSigned)- Chocolatey 安装命令仅针对您在其中安装它的特定会话设置它;

3. 用于设置 TLS 的命令将仅使用这些版本。最好将 TLS 1.2 添加到已指定的内容中;

4. 您建议执行以上所有操作,然后建议运行 Chocolatey 安装命令,该命令无论如何都会执行以上所有操作,因此这有点多余的工作。我认为解释所有这些意味着什么是一个好主意,同时突出显示该命令为用户完成所有操作;

5. 我可以建议任何想要安装 Chocolatey 的人查看 https://chocolatey.org/install,而不是直接从本文运行代码,因为它将来可能会更改,并且任何更改都不会在此处反映出来;

我认为建议用户阅读他们在系统上运行的任何脚本,包括 Chocolatey 脚本,是一个好主意。这有点像在您签署之前阅读某些内容:)

如果您需要更多信息或任何澄清,请联系。

谢谢!

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.