sjtug / mirror-requests

新镜像请求 & BUG 汇报
https://mirrors.sjtug.sjtu.edu.cn
49 stars 2 forks source link

新增Chocolatey镜像 #57

Open FranklinYu opened 5 years ago

FranklinYu commented 5 years ago

类别:新增镜像

镜像名:Chocolatey

上游路径https://chocolatey.org/

镜像简介:Windows的(第三方)包管理器,类似macOS下的Homebrew和MacPorts

参见tuna/issues#54。

skyzh commented 5 years ago

看了 tuna 的 issue,这个可以考虑类似 packagist,只镜像 metadata。

FranklinYu commented 5 years ago

我觉得完全可以镜像所有包,不仅是元数据。首先SJTUG好像并没有开源的要求,所以这条理由不成立;至于「脚本集合」一说,我也已经提到

Chocolatey中有很多嵌入式包,将安装文件嵌入在package中了。镜像可以有效提升这一类包的使用体验。Chocolatey也鼓励(合法)嵌入。

而且Homebrew Cask也是「脚本集合」。

关于技术支持,我正在和Chocolatey社区讨论。有更新的话,会来这里汇报。

skyzh commented 5 years ago

谢谢🙏

skyzh commented 5 years ago

刚刚仔细看了一下,比如 https://github.com/chocolatey-community/chocolatey-coreteampackages/blob/master/automatic/firefox/update.ps1 这个脚本,binary 是从 Mozilla 拉过来的,如果要做到完全镜像,就需要把 script 里的 url 都找出来并且反代…… 所以这边我暂时考虑只镜像这些 scripts。

skyzh commented 5 years ago

如果上游那边愿意把 binary 都放在一起(类似 homebrew-bottles),那么做镜像会方便很多。

FranklinYu commented 5 years ago

我们可能有些误解……我觉得像Firefox这种「非嵌入式」包,我们不需要特意找出URL(没有确定的算法找URL,而且体积往往太大)。我的意思是,对于7Zip这类「嵌入式」包,不需要特意将binary从包中移除。

skyzh commented 5 years ago

嵌入的 binary 应该不会做特殊处理,会保留。看起来上游是个 NuGet 源。可能要找点 Linux 上的镜像方案了。

FranklinYu commented 5 years ago

上游的建议是:不做全站镜像,做「带缓存的」代理;这样的话还是会影响第一个安装的用户还是会被影响。上游给出的理由是,如果全站镜像,容易触发限流(大约每分钟20次)。然而我浏览了一下,这个站每天只有几十个新的包,如果用增量同步的话根本不会触发限流。难点在于可能要自己撸轮子了(用Chocolatey.Server);可以先贴上help wanted的标签,我有空的时候也看看能不能撸一个轮子出来。

另外你们身边有用Windows的同学么?我人在国外,所以不知道Chocolatey服务器在学校的连接性如何。

FranklinYu commented 5 years ago

现在镜像是用 Docker 做的?根据 NuGet/NuGetGallery#3390 现在没有官方的镜像方案,这 issue 里有提到两个社群方案:

  1. BaGet 似乎是由某个 NuGet 维护者写的,应该有一定质量
  2. LiGetGitHub
FranklinYu commented 5 years ago

我询问了两个国内的同学,他们都表示 https://chocolatey.org 本身连接性还行,瓶颈在「非嵌入式」包的程序。等有需求的时候我再开启。

aistellar commented 5 years ago

https://chocolatey.org 本身也极慢啊,执行一个命令要等半天

FranklinYu commented 5 years ago

@shulinwz 请问你是什么 ISP?另外,最好能测一下 ping 和 GET。我用第三方测速工具测了一下 GET: http://www.17ce.com/site/http/20191026_4c01bbb0f7a411e9ab8c05c7fa0e7c63:1.html

中位数在一秒内,90% 两秒内,听起来还行。如果实际情况很差,我可能重开本 issue。

image

skyzh commented 5 years ago

如果愿意折腾的话,可以 Prometheus + Blackbox Exporter 监测一下?(大雾 On Oct 26, 2019, 12:01 PM +0800, Franklin Yu notifications@github.com, wrote:

@shulinwz 请问你是什么 ISP?另外,最好能测一下 ping 和 GET。我用第三方测速工具测了一下 GET: http://www.17ce.com/site/http/20191026_4c01bbb0f7a411e9ab8c05c7fa0e7c63:1.html 中位数在一秒内,90% 两秒内,听起来还行。如果实际情况很差,我可能重开本 issue。 — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

FranklinYu commented 5 years ago

我觉得最好是国内的同学自己做点评测。我毕竟人在外面,买个阿里云去做评测也不是不行,但是感觉不一定能真实反映大家的使用情况。我估计阿里云会比家里好不少。

所以现在主要看 @shulinwz 的意向(我没听其他人吐槽过速度)。

aistellar commented 5 years ago

测试了下,其实现在 chocolatey 的延迟也没有太糟糕

--- chocolatey.org ping statistics ---
100 packets transmitted, 77 received, 23% packet loss, time 99416ms
rtt min/avg/max/mdev = 169.888/170.427/171.410/0.316 ms
$ hyperfine -i "curl 'https://chocolatey.org/api/v2/'"
Benchmark #1: curl 'https://chocolatey.org/api/v2/'
  Time (mean ± σ):      1.118 s ±  0.553 s    [User: 9.1 ms, System: 2.6 ms]
  Range (min … max):    0.543 s …  2.208 s    10 runs

前天执行 choco outdated 的时候有很多这样的错误

Error retrieving packages from source 'https://chocolatey.org/api/v2/':
 The operation has timed out.

也许是暂时的网络问题。

另外发现使用 nexus 架设的 private source 也导致 choco outdated 的速度变得很慢。

skyzh commented 5 years ago

感谢您的测试。(其实交大这边到境外的网络也间歇性抽风

skyzh commented 3 years ago

近期我们开发了一个智能代理 mirror-intel,已经用于 Flathub 的镜像。或许也可以用在 Chocolatey 上。我们打算再观望一段时间。

AkarinLiu commented 1 year ago

使用choco命令安装ffmpeg失败:响应超时

PhotonQuantum commented 1 year ago

使用choco命令安装ffmpeg失败:响应超时

我站并没有镜像 choco,请将问题发到上游询问。另 ffmpeg 属于非嵌入式的包,像这种现象如果未来我们有可能镜像的话,也是无法解决的。

PhotonQuantum commented 1 year ago

现有的 mirror-intel 架构已经可以支持 choco 的需求了,然而我并不使用 windows,没有测试环境和动力 有意贡献的同学可以前往 sjtug/mirror-intel 实现😇