0%

Chocolatey入门

概述

Chocolatey 是一个 Windows 包管理器,使得软件管理自动化。

Chocolatey 拥有最大的 Windows 软件包在线注册表,软件包的提交要经过严格的审核过程,包括自动病毒扫描。

Chocolatey 与 scoop 都是 Windows 软件管理工具。它们有以下一些区别:

  • Chocolatey 更倾向于管理安装软件,而 scoop 倾向于管理便携式软件。
  • Chocolatey 的安全性要强于 scoop,scoop 可以自定义扩展安装几乎任意软件。
  • 另外,Chocolatey 是有商业版本的,而 scoop 是开源软件。

安装

如果你使用的是较新的 Windows 系统,比如 Win10+,那么安装 Chocolatey 是很简单的。因为,Chocolatey 需要 PowerShell v2+ 和 .NET Framework 4+ 支持,而较新的系统这些都是内置的。

PowerShell在线安装

在 PowerShell 中在线安装 Chocolatey 是极为方便的,仅需要执行以下命令:

1
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

以上是一个兼容脚本,如果你的 PowerShell 版本是 3+,那么下面命令也是可用的:

1
Set-ExecutionPolicy Bypass -Scope Process -Force; iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

更多安装方式参考 官方安装手册官方教程的安装部分(推荐这个,可以通过选择来查看不同的安装方法)。

自定义安装位置

直接执行安装命令会将 Chocolatey 安装到默认位置,如果想要自定义安装位置,仅需要通过 ChocolateyInstall 环境变量指定即可。

1
2
[environment]::setEnvironmentVariable('ChocolateyInstall', '/path/to/install/dir', 'User')
$env:ChocolateyInstall = '/path/to/install/dir'

安装代理

如果需要通过代理来安装,临时配置以下环境变量即可:

1
2
3
$env:chocolateyProxyLocation = 'https://local/proxy/server'
$env:chocolateyProxyUser = 'username'
$env:chocolateyProxyPassword = 'password'

GUI

商业版的 Chocolatey 是有 GUI 支持,如果你习惯于在 GUI 模式下工作,但又不想购买商业版,那么可以安装 Chocolatey GUI 应用,它提供有限的 GUI 支持:

1
choco install chocolateygui

常用命令

学习 Chocolatey 命令最好的方式不是查看相关文档,而是使用它的帮助系统。

Chocolatey 的主命令是 chocolatey,但它很长,因此,通常我们使用缩略命令 choco

帮助系统

1
choco [subcommand] --help

与大多数现代终端命令类似,Chocolatey 的命令格式为 choco 子命令 选项/开关

需要注意的是,Chocolatey 支持 3 种选项/开关前缀---/

而对于帮助选项/开关而言,它有 3 种形式:?helph

因此,我们可以组合出 9 种进入帮助系统的命令,虽然传递选项/开关的说明中指出 - 通常不与单个字符的缩写选项/开关一起使用,但是实际上这 9 个命令在最新的版本(v0.10.15)中都是有效的。

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看配置
choco config
choco config list
# 查看配置项
choco config get <name>
choco config get --name <name>
# 设置配置项
choco config set <name> <value>
choco config set --name <name> --value <value>
# 删除配置项
choco config unset <name>
choco config unset --name <name>
# 代理配置
choco config set proxy <locationandport>
choco config set proxyUser <username> #optional
choco config set proxyPassword <passwordThatGetsEncryptedInFile> # optional
choco config set proxyBypassList "'<bypasslist, comma separated>'" # optional, Chocolatey v0.10.4 required
choco config set proxyBypassOnLocal true # optional, Chocolatey v0.10.4 required
# 运行时配置代码参数,比如 install 命令时即可使用
--proxy="'value'" --proxy-user="'<user>'" --proxy-password="'<pwd>'" --proxy-bypass-list="'<comma separated, list>'" --proxy-bypass-on-local

更多代理配置支持参考 Chocolatey GitHub Wiki

其他

1
2
3
4
5
6
7
8
9
10
11
12
13
choco search <filter>
choco list <filter>
choco list --local-only
choco list --page=0 --page-size=25
# 安装
choco install <app> [-y | --yes | --confirm]
# 卸载
choco uninstall <app>
# 检查更新
choco outdated
# 更新
choco upgrade all
choco upgrade <app>

关于安装命令

1
choco install <app>

默认情况下,使用以上命令安装应用时,需要交互确认执行安装脚本,如果想要临时自动确认,需要加上相应选项:

1
choco install <app> [-y | --yes | --confirm]

如果在全局范围内安装应用都不想默认进行交互确认,那么可以执行:

1
choco feature enable -n allowGlobalConfirmation

Chocolatey 的帮助信息还是很人性化的,当在默认情况下执行应用安装,以上两种自动确认的命令会与交互确认信息一同显示。

参考

Chocolatey 官网

Chocolatey 官网文档

Chocolatey 官网教学

Chocolatey GitHub

Chocolatey GitHub Wiki - 几乎能找到关于 Chocolatey 的一切