Rob*_*rtK 3 windows powershell chocolatey
我需要在完全离线的 Windows 客户端上安装软件。这意味着他们无法访问互联网。
一个例子。假设我想安装 Paint.Net。我转到参考机(带有 INet)并安装 Paint.Net 和 Chocolatey。
choco install paint.net -y
Run Code Online (Sandbox Code Playgroud)
安装完成后,我安装了软件和两个工件:
%ChocolateyInstall%/lib/paint.net 中的包文件“paint.net.nupkg”
和
安装程序文件“paint.net.4.0.6.install.zip”位于 %Temp%\chocolatey 中。
我现在将这两个文件放在 U 盘上。然后我进入离线机器,插入 U 盘并想要安装该软件包。
是否可以在不修改软件包的情况下安装软件?我知道在 nupkg 文件内有一个 tools/chocolateyInstall.ps1 文件,其中定义了 $url 变量。但我想安装该包而不更改包内容或手动修改 URL。
我尝试了参数 --cache 和 --source 但几乎没有运气。
我以前看到过有人问过这样的问题。但(据我所知)从来没有打算从棒上运行安装程序文件(而不仅仅是包文件)。所以我希望这不是重复的。
虽然有多种方法可以设置原始 nupkg(带有版本,而不是包目录中的版本 - 使用从 Chocolatey社区包存储库上包页面左侧下载)并将缓存设置到 USB 记忆棒上的某处,但它不是始终确定它会起作用。您还可以覆盖缓存位置,以便该文件夹位于 TEMP 之外的某个位置。请参阅choco config
,choco config -h
并choco config set cacheLocation c:\some\location
执行此操作。
对于您需要离线使用的软件包,您可以管理自己的软件包,并且可以将软件直接嵌入到软件包中。当您想要离线管理软件时,这是需要的,因为社区存储库上的大多数内容都受版权法和分发权的约束(为什么它们不简单地嵌入它们所代表的软件)。
创建和使用您自己的包非常安全、可靠且可重复(并且可以完全离线),但它确实会占用时间。如果您自己这样做,那么它可能会覆盖您作为消费者使用 Chocolatey 和社区存储库节省的任何时间。
您在这里可以做的最好的事情是一个称为内部化的过程,您可以在其中下载并解压缩包,下载所有资源并将它们嵌入到包中(或将它们放在本地/UNC 共享的某个位置),编辑脚本以使用这些嵌入的资源/local resources 并重新编译包。
这使您可以利用现有的包逻辑,而不会出现互联网问题。
有关更多详细信息,请参阅重新编译包和包内部器 - 自动重新编译包。
注意:顺便说一句,我们正在考虑提供使用 Chocolatey Pro 版本(而不仅仅是商业版本)自动重新编译的功能。
大多数使用 Chocolatey 的组织都会执行创建包和重新编译包的某种组合,因为他们在生产场景中使用这些包时需要绝对信任和控制。
归档时间: |
|
查看次数: |
3532 次 |
最近记录: |