chocolatey介绍与使用

1. 什么是Chocolatey

Chocolatey 是一种软件管理解决方案,不同于您在 Windows 上体验过的任何解决方案。 可以这样想 - 您使用一个小 PowerShell 创建一个软件部署包,然后您可以将它部署到任何拥有 Windows 的地方(例如 Puppet、SCCM、Altiris、Connectwise Automate 等。

2. 为什么要安装chocolatey?

2.1. chocolatey需要解决的问题

我们经常听说管理 Windows 软件可能是一种令人沮丧或耗时的体验。 此外,各团队可能有一些自动化安装windows软件的方法方法,但是互相之间存在很多差异。 即使较新的自动化运维 (DevOps) 和配置管理工具仍然不能以简单且可维护的方式完全解决 Windows 软件管理问题。
各种windows软件管理方法共同的挑战包括:

时间: 人工安装软件是耗时和低效地.
复杂性: 在当今的IT环境下, 传统的安装工具显得太复杂低效
成本: 在没有标准包管理的情况下部署和管理 Windows 软件会导致额外的开销.
为了解决以上问题, chocolatey应运而生, 将成为安装包管理软件中最好的选择.

3. 为什么选择chocolatey

3.1. 简化复杂流程,节省时间和精力

虽然市面上有许多不同的安装程序格式和多种部署 Windows 软件的方法。 在 Windows 上部署没有包管理的软件可能既复杂又耗时。
系统工程师可能会花费数小时手动部署和配置 Windows 软件。 传统工具不是为现代自动化和 DevOps 方法构建的,这可能会使在整个环境中实现一致性和可观测性变得困难。
Chocolatey 通过简单、可重复和自动化的方法简化了这一过程,使用通用包装格式来管理 Windows 软件的所有方面。 无论您是管理本机安装程序、zip、脚本、运行时二进制文件还是内部开发的应用程序,Chocolatey 都将它们视为一等公民,并为您提供一致、统一的软件管理方法!

3.2. 一次编写,随处部署,随心所欲,然后简单地跟踪和管理

Chocolatey 的目标是在 Windows 操作系统上实现从安装到升级和卸载的整个软件生命周期的自动化。 我们的目标是通过一个统一的界面简化复杂的流程,让您可以控制混乱。
Chocolatey for Business 允许组织采用 DevOps 方法来轻松管理您的 Windows 环境,更快、更可靠地向服务器和最终用户交付应用程序。 通过利用 PowerShell 提供自动化的软件管理指令,Chocolatey 的内置函数将复杂的任务变成了单行函数调用。

4. Chocolatey特性

4.1. Deploy Anywhere You Have Windows/Cloud Ready

能部署到任何有windows的地方(除了Nano),包括 Server.Core 和 Windows Docker 容器。 Windows 7+/Windows 2003+。 需要 PowerShell v2+(不包括 PowerShell 6)和 Microsoft .NET Framework 4.x。 您可以在本地部署到 Azure、AWS 或您可能正在查看的任何云提供商。

4.2. Deploy with Everything (能和任何自动部署工具整合)

任何可以管理节点或进行远程部署的东西都可以通过命令、批处理或脚本来使用 Chocolatey。 Ansible、Chef、PowerShell DSC、Puppet 或 Salt 等完整配置管理解决方案通常具有提供程序/模块,允许您使用它们的语言来管理 Chocolatey 安装/配置和软件。

4.3. All Software Is a First Class Citizen

您知道对于大多数软件安装器来说,他们只管理已经安装的软件的添加和删除, 而 Chocolatey把这一切都考虑进去了,因为 Windows 软件不仅仅是安装程序,而且要考虑软件的安全。 因此,只需一个简单的解决方案即可部署您的安装程序、脚本、zip、运行时二进制文件以及内部软件。 然后依靠报告和软件库信息来了解您正在管理的软件的所有方面。

5. Chocolatey 安装前提条件

5.1. 安装要求

Chocolatey 对内存的要求比较低. 对系统的要求:
Windows 7以上或者Windows 2003+ (Server Core 也包括在内, 但是不包括 Windows Nano Server);
需要已经安装Windows PowerShell v2+ (PowerShell Core aka PowerShell 6 暂且不被支持);
.NET Framework 4.x以上;
空间要求
Chocolatey CLI 对默认安装大概为 15 MB左右。
Chocolatey GUI 在默认安装中占用另外 50-100 MB 的空间。
Chocolatey Agent 大约需要 10 MB。

5.2. Chocolatey组成

Chocolatey CLI 又名 choco(或 choco.exe)是一个客户端(不是 Windows 服务),它提供 Chocolatey 的核心和本地安装包的安装存储。 这点很重要,因为 Chocolatey 管理包,而不是直接管理程序和功能 - 程序和功能仅限于具有“安装程序”的软件,而 Chocolatey 将 Windows 软件的所有方面都视为一等公民(zip、脚本、二进制文件、安装程序),因此 它需要分别跟踪和管理这些东西。
Chocolatey GUI 是一个在用户运行时运行的应用程序(也不是 Windows 服务)。
Chocolatey Agent(又名 Chocolatey-agent)是 Chocolatey for Business 中提供的一项 Windows 服务。 它用于自助安装和 Chocolatey 中央管理。

6. 安装Chocolatey

安装Chocolatey有多种方法, 可以从以下方法中任选一种进行安装:

方法一:以管理员身份打开cmd.exe(很重要),执行以下代码

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

方法二:以管理员身份打开powershell.exe,执行以下代码

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'))

方法三:直接打开https://chocolatey.org/install.ps1,复制内容到本地新建 install.psl 文件,执行安装。

在有的时候,因为电脑安装防火墙的原因,可能会导致前两个方法出现问题,但是方法三不存在此问题,最好用 powershell.exe 来执行 install.psl 脚本,可以看到安装的完整过程。

方法四: 以管理员身份打开Powershell,然后输入以下命令:


iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))

说明iex(Invoke-Expression的别名):用来把字符串当作命令执行。

方法五: Chocolatey的作者还专门为安装脚本创建了一个短网址。使用短网址安装更加简洁.


iwr https://cin.st | iex

说明iwr(Invoke-WebRequest的别名): 用于从 Internet 上的网页获取内容。

7. Chocolatey 的使用

  • 查看帮助

    
    # 查看Chocolatey自身的帮助信息
    
    choco -? 
    
    # 查看Chocolatey子命令的帮助信息
    # 例如: choco search -?
    choco command -?
    
    
  • 安装软件

    
    choco install something
    
    
  • 安装指定版本

    
    choco install something --version x.y.z
    
    
  • 查找软件

    choco search cntlm
    
  • 查找软件, 精确匹配软件名

    choco search -e cntlm
    
  • 查找所有可用版本

      choco search --all -e cntlm 
    

    或者到官方网站上去搜索可用版本

  • 搜索软件是否存在,包名是什么。

    查看软件详细信息。

    choco info cntlm
    
  • 列出Windows系统已安装的软件

    choco list -lo
    
  • choco配置列表

    choco config list
    
  • 升级软件

    choco upgrade git
    
  • 卸载软件

    choco uninstall git
    

7.1. 创建快捷方式

通过Chocolatey安装的程序, 通常在windows搜索界面是不会显示的, 查找起来不方便, 此时需要到软件安装目录创建一个桌面快捷方式.

此时可以进入ChocolateyInstall指定的目录, 进入安装包所在目录, 右击可执行文件创建桌面快捷方式.

# 查找安装包位置
echo %ChocolateyInstall%

7.2. 安装chocolatey图形化管理工具

# 安装之后输入 chocolateygui 打开图形界面安装你想安装的软件即可
choco install chocolateygui

7.3. 配置统一环境

更改本地仓库
方法一:cmd.exe管理员模式下执行以下指令

setx ChocolateyInstall D:\Chocolatey /M

方法二:powershell.exe管理员模式下执行以下指令

& setx.exe ChocolateyInstall D:\Chocolatey /M

设定成功提示:

  • search - searches remote or local packages (alias for list)
  • list - lists remote or local packages
  • find - searches remote or local packages (alias for search)
  • info - retrieves package information. Shorthand for choco search pkgname --exact --verbose
  • install - installs packages from various sources
  • pin - suppress upgrades for a package
  • outdated - retrieves packages that are outdated. Similar to upgrade all --noop
  • upgrade - upgrades packages from various sources
  • uninstall - uninstalls a package
  • pack - packages nuspec, scripts, and other Chocolatey package resources into a nupkg file
  • push - pushes a compiled nupkg to a source
  • new - generates files necessary for a chocolatey package from a template
  • source - view and configure default sources
  • sources - view and configure default sources (alias for source)
  • config - Retrieve and configure config file settings
  • feature - view and configure choco features
  • features - view and configure choco features (alias for feature)
  • setapikey - retrieves, saves or deletes an apikey for a particular source (alias for apikey)
  • apikey - retrieves, saves or deletes an apikey for a particular source
  • unpackself - re-installs Chocolatey base files
  • version - [DEPRECATED] will be removed in v1 - use choco outdated or cup <pkg|all> -whatif instead
  • update - [DEPRECATED] RESERVED for future use (you are looking for upgrade, these are not the droids you are looking for)
  • support - provides support information
  • help - displays top level help information for choco
  • export - exports list of currently installed packages
  • download - downloads packages - optionally internalizing all remote resources
  • synchronize - synchronizes against system installed software - generates missing packages
  • sync - synchronizes against system installed software - generates missing packages
  • optimize - optimizes installation, reducing space usage

8. 后记

本文原文位于鹏叔的技术博客空间 - chocolatey安装和使用, 获取最近更新, 请访问原文.

9. 参考文档

https://blog.csdn.net/m0_49183941/article/details/107482650

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容