chocolatey 如何安装_Windows包管理器之初识Chocolatey (巧克力)

初识Chocolatey(巧克力)

之所以能与Chocolatey相遇,是因为它能作为Puppet的Package Resource Provider去部署Windows程序。之前,使用Puppet部署Windows软件,我必须使用File Resource把安装包从Puppet master下载到本地,然后使用Package Resource去安装该软件,Package Resource依赖于File Resource。这样做,有几个坏处。第一个坏处是,安装包会始终保留在成千上万的系统上,造成存储资源浪费。第二个坏处是,已经安装了该软件的系统还要下载该安装包,造成网络资源的浪费。第三个坏处是,如果这个安装包比较大,而且不止它一个,那么编写的Puppet Module会很大而不利于分享。第四个坏处是,当软件需要升级的时候,前面的痛苦又要经历一遍。

介绍

Chocolatey是Windows系统上的软件包管理器。如果你熟悉Linux,你一定对apt或者yum不陌生,他们是Ubuntu和CentOS的包管理器,它们提供给你的便利让Windows用户羡慕已久。Chocolatey是Windows系统上的yum,它使得在Windows系统上安装、卸载和升级软件如巧克力(Chocolatey)般丝滑。

Chocolatey采用经典的C/S(客户端/服务器)架构,所以即便没有接触过apt或者yum,也能脑补出它是如何工作的。一个所谓的Chocolatey Server坐镇中央,无数个Chocolatey Client分布在各色Windows系统之上,例如Windows 10,Windows Server,Windows Container等等。

b330d92b3df44a5397d4a8b6079561cc.png

Chocolatey架构图(来自其官网)

这个所谓的Chocolatey Server,称之为Chocolatey Package Repository,也是要在客户端上配置的“源”(Source)。Chocolatey客户端通过这个“源”来下载所需要的安装包,默认的源是公开的Chocoatey Community源,还可以添加其它的源,包括本地源,也可以禁止或删除任何一个源。

安装Chocolatey客户端

Chocolatey官网提供很多种方法安装Chocolatey客户端,例如CMD安装,PowerShell安装,Puppet安装,NuGet安装,离线安装等等。并且列出了常见的安装问题以及解决方案,非常贴心。一开始试水,我就拿PowerShell来安装客户端。

第一步:以管理员的身份打开PowerShell的控制台。注意:登录系统的用户是管理员,打开的PowerShell控制台不一定拥有管理员的权限,需要提升权限。

第二步:设置PowerShell的ExecutionPolicy为Bypass或者AllSigned。

 Set-ExecutionPolicy Bypass -Scope Process -Force

第三步:启用TLS 1.2

 [System.Net.ServicePointManager]::SecurityProtocol =[System.Net.ServicePointManager]::SecurityProtocol -bor 3072

第四步:下载并安装

 iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

第五步:测试

如果安装成功,在CMD或者PowerShell控制台里,运行choco -?会打印出帮助说明和版本信息。

 choco -?

使用场景

当Chocolatey客户端装好之后,你一定迫不及待的想尝试一下,用它装个软件吧,比如7zip。那么我就拿7zip举个例子,演示Chocolatey是如何安装软件的。

软件查询

首先,运行choco search 7zip命令来查询与7zip相关的安装包。

32848f9e62a55bd9d5e472ebecb4f627.png

choco search 7zip

还可以运行choco search 7zip -a命令来列出所有版本的7zip。

0a4343e7c9db3b661b61221460c6ff47.png

choco search 7zip -a

软件安装

假如 7zip 15.05是期望安装的版本,那么运行命令choco install 7zip --version 15.05。 (这里使用老一些的版本,后面可以用来演示“软件升级”的功能。)

dc3ab99cd3895d20998bb8f94567472b.png

choco install 7zip --version 15.05

软件升级

假如需要升级7zip到最新版本,那么运行命令choco upgrade 7zip -y。

328c5e4bee46745f46eb43a04cd40722.png

choco upgrade 7zip -y

软件卸载

假如需要卸载7zip,那么运行命令choco uninstall 7zip.install -y -f。

7399ca401b18ea2a0b06bdc8e8d0ee1a.png

choco uninstall 7zip.install -y -f

总结

Chocolaty包管理器使得Windows系统上的自动化更加顺滑。

  1. 用户无需再关心软件包的下载地址,安装细节,以及依赖关系,只需要知道软件名称。
  2. 提高了自动化脚本的可读性,降低了它的复杂度。例如,在CI/CD pipeline中,或者在自动化测试脚本中,安装软件的几十行代码可以用简单的一条命令代替。
  3. 减少了组织内部的重复工作,节约了成本。一个大的研发组织内,可能有多个生产线开发各自的代码去安装同一个软件,而且同一个安装包可能被复制到了多个已经被遗忘的文件夹中,这是人力资源的浪费,存储资源的浪费。如果有这样的包管理器,那么安装包可以在组织内无限分享,节约了开发成本和存储资源。

参考

[1] https://chocolatey.org/docs/installation how to install

[2] https://chocolatey.org/docs/how-to-setup-internal-package-repository#architecture Architecture

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值