sjtug / mirror-requests

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

[镜像请求] 新增 Julia 镜像 #82

Closed johnnychen94 closed 4 years ago

johnnychen94 commented 4 years ago

类别:新增镜像

镜像名:Julia

上游路径

有两种可行的策略:

  1. 利用社区维护的镜像工具 StorageServer.jl 来构建 (Reference: https://github.com/tuna/issues/issues/837)
  2. 以 BFSU 作为上游 (BFSU是目前国内唯一的Julia镜像站,其构建采用的是第一种方案)

镜像简介

Julia 是一门新的科学计算语言,在科学计算方面,一定程度上有取代 MATLAB (和 Python ) 的趋势。

目前绝大部分开源代码库都依赖于 Github 存在,这也包括包注册表General registry(类似于anaconda 的默认channel)

目前国内的现状:

镜像包括三部分数据:1. 注册表 2. 源代码 3. 二进制依赖(Artifacts)

目前镜像为400G,后期有一定可能会像anaconda或者pypi一样膨胀

另一个相关的镜像是 Julia releases,上游是 https://julialang-s3.julialang.org, 或者 BFSU: https://mirrors.bfsu.edu.cn/julia-releases/


另外,如果SJTU能够支持Julia镜像的话,不知道能否让 Julia 官方在国内设置的 PkgServer 添加 SJTU 作为其中一个上游?之前有请求过 TUNA,但是可能因为TUNA内部对于Julia不了解的原因,所以没有支持这一请求。申请用它作为上游并不需要SJTUG这边做任何额外的维护,也不需要任何可靠性保证。 https://github.com/tuna/issues/issues/878

skyzh commented 4 years ago

稍微看了一下 tuna 的 issue。按照我的理解,Pkg server 是一个会根据用户数据动态返回更新数据的 server,而 BFSU 建设的是 Pkg Server 的 storage mirror。Julia 的包管理器可以指定后端而非 Pkg server 作为上游吗?

skyzh commented 4 years ago

看到了 BFSU 的帮助文档。我们应该也可以用 StorageServer.jl 做 Julia 的全量同步。

johnnychen94 commented 4 years ago

按照我的理解,Pkg server 是一个会根据用户数据动态返回更新数据的 server,而 BFSU 建设的是 Pkg Server 的 storage mirror。

嗯大概是这样理解的。

Julia 的包管理器可以指定后端而非 Pkg server 作为上游吗?

可以的,只是这种方式不是官方设计的首选方式,从我目前的理解来看兼容性方面不会太有大的问题。HTTP 协议的 Storage mirror 大概是 Pkg server 的一个纯静态的功能子集。

我们应该也可以用 StorageServer.jl 做 Julia 的全量同步。

这个工具还属于实验性的工具,基本能够工作,只是效率上还有一点点慢... 所以如果license方面没问题的话,直接通过rsync 从 BFSU 拉取大概会是更好的选择。

Docker的话可以参考:https://github.com/tuna/tunasync-scripts/blob/master/dockerfiles/julia/Dockerfile

skyzh commented 4 years ago
johnnychen94 commented 4 years ago

FYI,https://mirrors.bfsu.edu.cn/julia/ 里面有三个文件夹 clones, registriesstatic,实际上需要对外提供的只有 static 文件夹 https://github.com/tuna/issues/issues/837#issuecomment-633788535

skyzh commented 4 years ago

Julia 镜像已经进入测试阶段,在首页 https://mirrors.sjtug.sjtu.edu.cn 已经可以看到同步状态。

skyzh commented 4 years ago

Reopen this issue due to missing artifacts and packages.

specter119 commented 4 years ago

@skyzh 我来凑个热闹,貌似还是缺文件的亚子。julia 用的少,文件路径没显示全,等我搞下。

skyzh commented 4 years ago

@skyzh 我来凑个热闹,貌似还是缺文件的亚子。julia 用的少,文件路径没显示全,等我搞下。

是的。一些包没有成功同步下来,会 fallback 到 GitHub。最近还在解决。

johnnychen94 commented 4 years ago

多给我几天时间... 最近事情有点太多了...

specter119 commented 4 years ago

@johnnychen94 @skyzh 不急不急,julia 用的人少,包也没辣么多,我就是水一水。

skyzh commented 4 years ago
skyzh commented 4 years ago
skyzh commented 4 years ago

跑了一次全量同步

image
specter119 commented 4 years ago

@skyzh 下面这三个应该还是缺文件

Downloading artifact: FriBidi Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (404) Not Found." At line:12 char:1

skyzh commented 4 years ago

@skyzh 下面这三个应该还是缺文件

Downloading artifact: FriBidi

Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (404) Not Found."

At line:12 char:1

Downloading artifact: Bzip2

Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (404) Not Found."

At line:12 char:1

Downloading artifact: FreeType2

Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (404) Not Found."

At line:12 char:1

thanks,我们最近在修部分资源同步失败的问题