PowerShell / Chocolatey,如何离线安装 Chocolatey 本身

PowerShell / Chocolatey,如何离线安装 Chocolatey 本身

我想将 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.exe20 次),这会减慢速度,当我只想choco.exe尽快让命令在系统上可用时,感觉很浪费。我也不介意我有一个稍旧版本的 chocolatey,我可以随时重新下载主副本。

我认为预先下载组件应该很容易,这样我就可以指向那些文件:

  • 我们需要预先下载哪些文件才能获得设置 Chocolatey 所需的一切?
  • 我们要对这些文件运行什么命令来设置它?

请注意,这个问题与如何设置离线 Chocolatey 实例?

答案1

现在,离线安装 Chocolatey 非常简单!

您需要两个文件:

默认情况下,该脚本会从 Chocolatey 社区存储库下载最新版本的 Chocolatey。

从参数名称看不清楚,但你提供一个与参数一起使用的本地文件路径(或在运行脚本之前-ChocolateyDownloadUrl设置)。$env:chocolateyDownloadUrl

从本地文件安装需要运行的命令:

Set-ExecutionPolicy Bypass -Scope Process -Force
.\Install.ps1 -ChocolateyDownloadUrl ~\Path\To\Chocolatey.nupkg

相关内容