什么是Chocolatey以及如何安装它?

windows是最用户友好的操作系统之一。然而,借助开源软件(如chocolately,也称为choco),它也可以进行配置(到一定程度)。

chocolately概述

chocolately是一个开源的windows软件包管理器。它类似于linux的dnf或apt软件包管理器。软件包管理器对于开发人员或高级用户想要在其系统上安装、更新或删除软件包非常有用。

让我们更详细地了解一下chocolately。但在此之前,让我们先了解一下软件包管理器。

什么是软件包管理器?

操作系统中的软件包管理器可以帮助您跟踪您计算机上的软件包。您可以使用软件包管理器来跟踪现有软件、更新这些软件,甚至安装新软件。如果您不需要某个软件包/软件,您可以使用软件包管理器来将其删除。

简而言之,软件包管理器处理软件包(软件)。在计算机术语中,软件包是一组已安装、已更新或已删除的文件。

软件包管理器确保不会发生系统所需的软件包之间的冲突或删除。软件包通常依赖于其他软件包。软件包管理器确保不会发生任何问题。

让我们以两个软件包a和b为例来理解——其中软件包a依赖于b。这意味着要使a正常工作,必须安装并运行b。例如,对于图像处理软件gimp,系统需要访问gimp-data软件包。

有许多受欢迎的软件包管理器。例如,linux有两个流行的软件包管理器dnf和apt。

还阅读:dnf软件包管理器快速指南

windows也有自己的软件包管理器解决方案,称为windows软件包管理器(winget)。它在命令行级别工作,允许开发人员发现、升级、删除和安装软件包/应用程序到系统中。有关更多信息,请查看winget,windows软件包管理器。

然后我们有chocolatey软件包管理器,一个免费使用的开源软件包管理器。让我们在下面更详细地了解它。

chocolatey软件包管理器是什么?

chocolatey是一个命令行windows软件包管理器。它是免费使用的,因为它是开源的(apache 2.0许可)。如果您是一家公司,可以使用chocolatey进行现代软件自动化,并获得付费选项。它基于开发人员中心的软件包管理器nuget构建。

与其他软件包管理器一样,chocolatey使开发人员和it人员能够有效地管理计算机上的软件。chocolatey使用软件包来确保软件的正常运行,无论是更新、删除还是安装新的软件包。此外,它借助自动化来存档所有这些操作,以确保更快的执行。

chocolatey的目的和用途

开发人员和it管理员主要在管理一台或多台计算机上的软件时使用chocolatey。chocolatey适用于devops,因为它可以自动化重复性任务,例如部署二进制文件、脚本、安装程序、应用程序和软件包。

chocolatey有助于自动化软件安装的过程。这包括用户需要研究、下载和安装软件包。使用chocolatey,您可以运行一个简单的命令,它会为您完成所有操作,包括安装软件所需的任何依赖包。

这对于依赖复杂windows环境的团队特别有用。它还通过处理手动任务加快了软件开发速度。choco还提供了出色的集成选项,包括对基础设施自动化工具的支持。

如何在windows上安装chocolatey

安装chocolatey很简单。您只需按照以下步骤进行操作:

第1步:检查要求

要安装chocolatey,您必须确保满足以下要求:

  • windows客户端或服务器操作系统。
  • .net framework 4.8或更高版本。
  • powershell v2或更高版本。

第2步:运行powershell并设置get-executionpolicy

接下来,在windows机器上打开powershell。确保以管理员身份运行。

然后,您需要确保get-executionpolicy是无限制的。如果不是,它会阻碍choco的安装。如果您想绕过它,您可以始终使用bypass选项。但是,如果您的组织严肃对待运行来自互联网的任何脚本,最好使用allsigned以提高安全性。

根据您的要求,运行以下任何一个命令来设置get-executionpolicy。

$ set-executionpolicy allsigned

或者

$ set-executionpolicy bypass -scope process

第3步:运行安装chocolately的命令

一旦设置了executionpolicy,您可以在shell中运行以下命令开始安装choco。

set-executionpolicy bypass -scope process -force; [system.net.servicepointmanager]::securityprotocol = [system.net.servicepointmanager]::securityprotocol -bor 3072; iex ((new-object system.net.webclient).downloadstring('https://community.chocolatey.org/install.ps1')) 

第4步:确认是否已安装

如果上述命令执行并且没有看到任何错误,则chocolatey很可能已正确安装。

要确认,请运行以下命令。

$ choco

或者

$ choco -?

就是这样。chocolatey已成功安装。您也可以使用cmd shell安装它。您需要将以下命令复制粘贴到cmd管理员shell中。

@"%systemroot%system32windowspowershellv1.0powershell.exe" -noprofile -inputformat none -executionpolicy bypass -command " [system.net.servicepointmanager]::securityprotocol = 3072; iex ((new-object system.net.webclient).downloadstring('https://chocolatey.org/install.ps1'))" && set "path=%path%;%allusersprofile%chocolateybin"

上述命令的输出将是:

获取下载的chocolatey软件包的最新版本。没有使用代理。

从https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2获取chocolatey。

将https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2下载到c: users nitis appdata local temp chocolatey chocoinstall chocolatey.zip

没有使用代理。

将c: users nitis appdata local temp chocolatey chocoinstall chocolatey.zip解压缩到c: users nitis appdata local temp chocolatey chocoinstall

在本地机器上安装chocolatey

将chocolateyinstall创建为环境变量(针对'machine')

将chocolateyinstall设置为'c: programdata chocolatey'

警告:在使用choco之前,您很可能需要关闭并重新打开shell

将写权限限制为管理员

我们正在设置chocolatey软件包存储库。

软件包本身放在'c: programdata chocolatey lib'中

即'c: programdata chocolatey lib yourpackagename'。

命令行的shim文件放在'c: programdata chocolatey bin'中

并指向'c: programdata chocolatey lib yourpackagename'中的可执行文件。

如果尚不存在,则创建chocolatey文件夹。

lib中未安装chocolatey.nupkg文件。

尝试从启动引导程序中查找。

path环境变量中没有c: programdata chocolatey bin。 添加…

警告:不设置标签完成:个人资料文件不存在

‘c: users nitis onedrive documents windowspowershell microsoft.powershell_profile.ps1'。

chocolatey(choco.exe)现在已准备就绪。

您可以随时随地调用choco,输入choco即可在命令行或powershell中执行。

运行choco /?以获取功能列表。

在使用choco之前,您可能需要先关闭和重新启动powershell和/或控制台。

确保路径上存在chocolatey命令

确保chocolatey.nupkg位于lib文件夹中

使用chocolatey

chocolatey很容易使用。由于它是一个命令行解决方案,因此您需要使用命令。

例如,如果您想要安装notepadplusplus,可以运行以下命令。

$ choco install notepadplusplus

同样,您可以安装其他软件/软件包,例如github。

如果您不确定软件包是否可用,可以使用搜索选项进行查找。

$ choco search git

此外,您还可以使用单个命令安装多个应用程序。

$ choco install git gimp notepadplusplus

如果您想要卸载应用程序,请使用卸载选项运行。

$ choco uninstall gimp

如果有更多应用程序,您可以将它们编译到xml文件中,然后将其传递给命令。

$ choco install packages.config -y

packages.config文件包含要安装的所有软件包列表。

您还可以使用以下命令更新所有现有软件包。

$ cup all

其他有用的choco命令包括:

  • $ choco list → 列出本地或远程软件包
  • $ choco info [软件包名称] → 检索软件包信息
  • $ choco upgrade [软件包名称] → 升级软件包
  • $ choco outdated → 检索过时的软件包并列出它们

接下来,了解如何卸载chocolatey。

卸载chocolatey

您可以通过删除c:programdatachocolatey文件夹或您安装的文件夹来卸载chocolatey。

如果您不确定chocolatey的安装文件夹,请运行以下命令。

$ env:chocolateyinstall

但是,在卸载chocolatey之前,请备份其中的bin和lib子文件夹,因为它们包含了您使用它安装的所有软件包。您还需要删除或调整以下环境变量:

  • chocolateyinstall
  • chocolateytoolslocation
  • chocolateylastpathupdate
  • path

chocolatey与windows软件包管理器winget比较

chocolatey并不是唯一的软件包管理器。您还可以选择winget或oneget(powershell 5.0软件包管理器界面)。那么,您应该使用哪一个?下面我们来比较一下chocolatey和winget。

#1. 功能

就功能而言,chocolatey提供了更多选择。您可以从其开源版本开始,使用其在windows环境中管理软件包的能力。如果您需要更简化的高级体验,可以切换到其专业版,该版本提供了额外的功能,包括更可靠的性能、改进的运行时恶意软件保护等。

chocolatey还提供了面向企业的企业版,使企业能够改进devops工作流程并自动化windows软件生命周期。

另一方面,winget提供了简约的软件包管理解决方案。它利用yaml清单来创建、上传和删除软件包。

#2. 成本

两者都为消费者提供免费的开源版本。然而,只有chocolatey提供付费选项。

#3. 易用性

易用性是主观的,因为两者都是命令行工具。然而,安装winget要更容易一些,因为它可以通过microsoft store获得。而chocolatey则需要您运行命令进行安装。此外,您还需要处理执行策略。

#4. 仓库

choco管理其拥有9500个托管软件包的仓库。您几乎可以从中获取到所有您所需的东西。而winget则依赖其他源来下载和分发软件包。

#5. 社区

就社区而言,由于其历史的长久,chocolatey表现出色。它已经存在了十多年,因此有一个强大的社区支持。而winget则没有这样的社区。

最后的话

chocolatey是一个方便的软件包管理器。它很受欢迎、有很好的文档资料,而且功能丰富。此外,它是开源的,所以任何人都可以免费使用它。

choco为企业中的团队提供付费选项,增加了适用于处理复杂windows项目的关键功能。

接下来,请查看如何在windows和macos上安装node版本管理器(nvm)的链接。

类似文章