如何配置Chocolatey使用JFrog Artifactory镜像源替代chocolatey.org?
配置Chocolatey指向JFrog Artifactory并镜像官方源
我来一步步帮你搞定这个配置,分Artifactory端配置和Chocolatey客户端配置两个核心部分:
一、JFrog Artifactory端:创建镜像Chocolatey的NuGet仓库
Chocolatey基于NuGet协议,所以我们需要在Artifactory中创建对应的NuGet仓库来镜像官方源:
- 登录Artifactory管理后台,进入
Repositories > Create Repository页面 - 选择NuGet类型的Remote Repository(远程仓库专门用于镜像外部公共源)
- 填写基础配置:
- 仓库名称:比如
chocolatey-official-mirror(自定义名称,方便识别即可) - 远程URL:填入Chocolatey官方源地址
https://chocolatey.org/api/v2/ - (可选)配置缓存策略:比如设置缓存过期时间、是否允许缓存快照包等,根据你的业务需求调整
- 仓库名称:比如
- 点击Save完成远程仓库创建
- (进阶可选)如果需要同时管理私有Chocolatey包:
- 创建一个Local NuGet Repository(比如
chocolatey-private)用于存储自己团队的私有包 - 创建一个Virtual NuGet Repository(比如
chocolatey-combined),将刚才的远程镜像仓库和本地私有仓库添加到这个虚拟仓库中,这样客户端可以通过一个地址同时获取官方镜像包和私有包
- 创建一个Local NuGet Repository(比如
二、Chocolatey客户端:替换默认源为Artifactory仓库
接下来配置本地Chocolatey客户端,让它默认使用Artifactory的仓库:
- 先查看当前已配置的Chocolatey源,确认默认源状态:
choco source list - 移除默认的chocolatey.org源(如果不需要保留的话,也可以选择禁用而非移除):
choco source remove -n=chocolatey - 添加Artifactory的仓库作为新源:
- 如果用的是远程镜像仓库,命令格式:
choco source add -n=artifactory-choco -s="http://<你的Artifactory地址>/artifactory/api/nuget/<你的远程仓库名称>" -u=<Artifactory用户名> -p=<Artifactory密码> - 如果用的是虚拟仓库,把上面的
<你的远程仓库名称>换成虚拟仓库的名称即可
提示:如果Artifactory启用了HTTPS,确保客户端信任服务器证书,否则可以临时添加
--allowuntrusted参数(生产环境不推荐,建议导入证书到系统信任库) - 如果用的是远程镜像仓库,命令格式:
- 验证配置是否生效,尝试安装一个包测试:
此时Artifactory会自动从官方源拉取7zip包并缓存,下次安装就直接调用缓存版本了choco install 7zip --source=artifactory-choco
额外注意事项
- 认证信息会被Chocolatey加密存储在配置文件中(路径一般是
C:\ProgramData\chocolatey\config\chocolatey.config),无需每次手动输入 - 如果需要设置这个Artifactory源为默认优先源,可以在添加时加上
--priority=1参数 - Artifactory的镜像缓存可以在后台查看和管理,比如手动清理过期缓存包等
内容的提问来源于stack exchange,提问作者spuder
相关产品推荐
相关产品推荐

