You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

能否将配置Chocolatey+Artifactory的机器设为离线机器的源?

当然可以实现这个需求!

你的场景完全可行——让Machine A同时作为自身的Artifactory源消费者,以及Machine B的Chocolatey软件源代理。下面是具体的实现步骤,都是基于Chocolatey原生功能和Windows基础配置来做的:

核心逻辑说明

Machine A会先从Artifactory拉取并缓存软件包,然后把这个缓存目录共享给Machine B;Machine B则将Machine A的共享目录作为自己唯一的Chocolatey源,这样就能实现无网络环境下的包安装。同时Machine A自身依然保留Artifactory作为源,随时可以拉取新包补充缓存。


步骤1:在Machine A上配置包缓存并保留Artifactory源

首先确保Machine A已经正确配置了Artifactory作为Chocolatey源(你已经完成这一步了),接下来我们要让Chocolatey把下载的包持久化缓存,方便共享给Machine B:

  1. 打开PowerShell(管理员权限),查看当前Chocolatey缓存目录:
    choco config get cacheLocation
    
    默认路径一般是C:\ProgramData\chocolatey\cache,如果需要修改可以用:
    choco config set cacheLocation "D:\ChocoCache"  # 换成你想存的路径
    
  2. 验证Artifactory源是否正常:
    choco source list
    
    确保Artifactory源是启用状态,如果没有的话重新添加(需要认证的话补充账号密码):
    choco source add -n=Artifactory -s="你的Artifactory源URL" -u="用户名" -p="密码"
    

步骤2:把Machine A的缓存目录共享给Machine B

有两种常用的共享方式,选一种适合你的:

方式1:Windows文件共享

  1. 找到缓存目录(比如C:\ProgramData\chocolatey\cache),右键选择「属性」→「共享」→「高级共享」
  2. 勾选「共享此文件夹」,设置共享名(比如ChocoCache
  3. 点击「权限」,添加Machine B的用户账号,赋予「读取」权限
  4. 测试共享:在Machine B的文件管理器输入\\MachineA的IP\ChocoCache,确认能看到里面的.nupkg文件

方式2:HTTP服务(更适合跨网段或权限复杂的场景)

如果文件共享有问题,可以在Machine A上搭建一个简单的HTTP服务器来暴露缓存目录:

  1. 打开PowerShell(管理员权限),进入缓存目录:
    cd C:\ProgramData\chocolatey\cache
    
  2. 用Python启动简单HTTP服务器(如果没装Python,可以用IIS或者其他轻量HTTP服务):
    python -m http.server 8080
    
  3. 在Machine B上测试访问:打开浏览器输入http://MachineA的IP:8080,确认能看到包文件列表

步骤3:在Machine B上配置Chocolatey源指向Machine A

  1. 在Machine B上打开PowerShell(管理员权限),先移除默认的Chocolatey源(避免无网络时报错):
    choco source remove -n=chocolatey
    
  2. 添加Machine A的共享目录作为新源:
    • 如果用文件共享:
      choco source add -n=MachineA-Choco -s="\\MachineA的IP\ChocoCache"
      
    • 如果用HTTP服务:
      choco source add -n=MachineA-Choco -s="http://MachineA的IP:8080"
      
  3. 验证源配置:
    choco source list
    
  4. 测试安装:尝试安装packageA或packageB,确认能从Machine A获取包并安装成功:
    choco install packageA -y
    

额外注意事项

  • 当需要给Machine B新增软件包时,先在Machine A上执行choco install 新包名,让它从Artifactory拉取并缓存到共享目录,然后Machine B就能安装了
  • 如果Artifactory源需要认证,Machine A的Choco配置已经保存了认证信息,不需要在Machine B上重复配置
  • 定期清理缓存目录里的旧包,避免占用过多磁盘空间

内容的提问来源于stack exchange,提问作者Squirrel

火山引擎 最新活动