什么是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)的链接。