我想将 chocolatey 放到多个系统上。我通常的做法是:
if (!(Test-Path "C:\ProgramData\chocolatey\bin")) {
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'))
}
没问题,但这会连接到互联网,毫无意义地重新下载我应该能够预先下载的 Chocolatey 包,然后提取并设置 Chocolatey。这就像setup.exe
每次你只想安装程序时都必须下载(对于 20 个系统,你将不得不下载setup.exe
20 次),这会减慢速度,当我只想choco.exe
尽快让命令在系统上可用时,感觉很浪费。我也不介意我有一个稍旧版本的 chocolatey,我可以随时重新下载主副本。
我认为预先下载组件应该很容易,这样我就可以指向那些文件:
- 我们需要预先下载哪些文件才能获得设置 Chocolatey 所需的一切?
- 我们要对这些文件运行什么命令来设置它?
请注意,这个问题与如何设置离线 Chocolatey 实例?
答案1
现在,离线安装 Chocolatey 非常简单!
您需要两个文件:
- Chocolatey nupkg(可从Chocolatey 社区存储库,您可以点击左侧的下载按钮)
- 这安装脚本你正在使用的
默认情况下,该脚本会从 Chocolatey 社区存储库下载最新版本的 Chocolatey。
从参数名称看不清楚,但你能提供一个与参数一起使用的本地文件路径(或在运行脚本之前-ChocolateyDownloadUrl
设置)。$env:chocolateyDownloadUrl
从本地文件安装需要运行的命令:
Set-ExecutionPolicy Bypass -Scope Process -Force
.\Install.ps1 -ChocolateyDownloadUrl ~\Path\To\Chocolatey.nupkg