Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望能增加 https://crates.io 的镜像 #16

Closed
tennix opened this issue Jan 12, 2016 · 85 comments
Closed

希望能增加 https://crates.io 的镜像 #16

tennix opened this issue Jan 12, 2016 · 85 comments
Assignees
Labels

Comments

@tennix
Copy link

tennix commented Jan 12, 2016

Rust 语言的包仓库 https://crates.io 都是放在 AWS S3 上面,国内 Rust 语言爱好者通过其包管理工具 cargo 构建 Rust 项目时不用代理基本没法下载依赖。

不过由于 https://crates.io 是一个动态网站,直接镜像比较困难,我写了两个工具基本可以解决这个问题, crates-mirror 用来同步官方所有的包,服务器端只需要静态托管这些压缩包就可以了,然后用户利用 cargo-mirror 就可以愉快地通过镜像下载依赖了。

USTC 的镜像源一直比较稳定,速度也很快,Linux 上我都是把 USTC 镜像设为第一个,希望 USTC 开源镜像站也能提供 crates.io 的镜像,方便国内 Rust 语言用户。

顺带安利一下 Rust:Rust 是一门设计非常棒的语言,1.0 还没正式出来,就已经倍受好评。不需要垃圾回收器就可以实现内存安全,并且效率非常高,是为数不多的可以与 C/C++ 这些底层语言匹敌的,同时还有各种函数式语言特性,强大的类型系统以及类型推断让其写起来像动态语言一样方便,是最近新出的语言中最具特色的也是最值得花时间学习的语言

@timzaak
Copy link

timzaak commented Jan 12, 2016

+1

@sjxxHero
Copy link

严重同意。

@fengqi
Copy link

fengqi commented Jan 12, 2016

+1

@l1nxy
Copy link

l1nxy commented Jan 12, 2016

非常需要这个
国内的Rust开发环境会因为这个更好的

@030io
Copy link

030io commented Jan 12, 2016

+10086

@zhsj
Copy link
Contributor

zhsj commented Jan 12, 2016

貌似建一个反向代理比镜像更合理。

或者利用cdn,我们的反代充当回源地址。

@F-12
Copy link

F-12 commented Jan 12, 2016

跪求rust干死c++!

@wangyuzhong
Copy link

非常需要,希望USTC同意,造福大家

@moon2l
Copy link

moon2l commented Jan 12, 2016

+1

@lilydjwg
Copy link

@zhsj 我也倾向于用反代+缓存。

@lansn
Copy link

lansn commented Jan 13, 2016

+1

1 similar comment
@cv9essex
Copy link

+1

@zhsj zhsj added the new label Jan 13, 2016
@miketang84
Copy link

+1

@zyings
Copy link

zyings commented Jan 13, 2016

这个必须有啊,支持支持!!

@xesrevinu
Copy link

+1

3 similar comments
@zonyitoo
Copy link

+1

@messense
Copy link

+1

@carllhw
Copy link

carllhw commented Jan 13, 2016

+1

@anzhihun
Copy link

Rust是非常非常有吸引力的语言, 希望能有镜像来帮助广大学子顺畅学习, 校园网大家都懂的,谢谢!

@5m1le71ger
Copy link

+1

3 similar comments
@sablib
Copy link

sablib commented Jan 13, 2016

+1

@xooder
Copy link

xooder commented Jan 13, 2016

+1

@hawkbee
Copy link

hawkbee commented Jan 13, 2016

+1

@niceskylei
Copy link

+1,支持

@F001
Copy link

F001 commented Jan 13, 2016

+1 顶

@liloew
Copy link

liloew commented Jan 13, 2016

+1

1 similar comment
@liuhuancom
Copy link

+1

@wangyu190810
Copy link

支持。

@yuqaf1989
Copy link

+1

@sunng87
Copy link

sunng87 commented Jan 14, 2016

还有一个小问题,能否不覆盖 config.json 里的 api 路径,这样 publish 的时候仍然可以发布到主仓库去。

也就是说把 config.json 设置为:

{
  "dl": "https://crates.mirrors.ustc.edu.cn/api/v1/crates",
  "api": "https://crates.io/"
}

@knight42
Copy link
Member

@sunng87 感谢反馈! 现在已经按照您说的修改了 :)

@sunng87
Copy link

sunng87 commented Jan 14, 2016

感谢!亲测可用 🎉

@gaoyifan
Copy link
Member

@knight42 似乎并不需要反向代理。只用把/api/v1/crates/{{name}}/{{version}}/download重定向即可。cargo update时并不访问除了download以外的其他API。

@knight42
Copy link
Member

@gaoyifan 嗯~ 我上面说的 nginx 做 rewrite 就是指把请求的地址重定向, 详情可查看现在服务器上 nginx 的配置.

@gaoyifan
Copy link
Member

@knight42 nice!

@miketang84
Copy link

挂了?

@miketang84
Copy link

mike@tang:~/GIT/iota$ cargo build
Updating registry git://crates.mirrors.ustc.edu.cn/index
Downloading rustbox v0.8.1 (registry git://crates.mirrors.ustc.edu.cn/index)
error: unable to get packages from source

@axlrose
Copy link

axlrose commented Mar 29, 2016

严重支持,翻墙太痛苦了

@sunng87
Copy link

sunng87 commented Mar 29, 2016

测试对我有效,可能是上游同步比较大超时了

@knight42
Copy link
Member

@daogangtang 感谢报告. 这个文件服务器上是存在的, 我开 -v 测试了下, 发现有如下提醒

Caused by:
  SSL peer certificate or SSH remote key was not OK

我用 firefox 访问 https://crates.mirrors.ustc.edu.cn 以及 https://pypi.mirrors.ustc.edu.cn 都提示 SSL_ERROR_BAD_CERT_DOMAIN.

看来是我们泛域名的证书出问题了 @gaoyifan @zhsj

@gaoyifan
Copy link
Member

问题确认。
昨天更换了新的SSL证书,但坑爹之处在于,网络信息中心给我们签发的不是泛域名证书,而是:

  1. ustc.edu.cn
  2. mirrors.ustc.edu.cn

这似乎意味着我们可以伪造科大主页(大误)

本来打算换回旧证书,但回退到旧版本的时候似乎将一些没有commit的配置给覆盖掉了,涉及以下两个文件:
sites-available/crates.mirrors.ustc.edu.cn
sites-available/npm.mirrors.ustc.edu.cn
@knight42 当时这两个文件是你修改的吗? 能否重做一次修改呢?
P.S. nginx还没有reload

@knight42
Copy link
Member

我临时把下载地址改成 http 的了. 遇到此问题的用户可以先执行一下 cargo update, 再进行 build

2016-03-29 13:53 证书问题解决了

@knight42
Copy link
Member

@gaoyifan 学长这好像已经是第二次了... 我不太确定我还是否记得当时改了什么...

@gaoyifan
Copy link
Member

@knight42 那我先reload nginx了

@tennix
Copy link
Author

tennix commented Mar 29, 2016

亲测已经恢复,多谢!

@miketang84
Copy link

谢谢

@magj2006
Copy link

magj2006 commented May 5, 2016

cargo install rustfmt 时,出错了
Caused by:
[2/-1] Failed to connect to crates.mirrors.ustc.edu.cn: Network is unreachable

附: cat .cargo/config
[registry]
index = "git://crates.mirrors.ustc.edu.cn/index"

@zhsj
Copy link
Contributor

zhsj commented May 5, 2016

@magj2006 这应该是你的网络问题,不过不建议在这个issue下讨论。可以发邮件到 [email protected],邮件请附上你的网络信息。

@sunng87
Copy link

sunng87 commented Aug 9, 2016

Update:

最近 cargo 设置 mirror 有一些变化,自定义的 registry.index 要被废弃了:

rust-lang/cargo#2857

@knight42
Copy link
Member

knight42 commented Aug 9, 2016

@sunng87 感谢告知, 不过我已经更新了说明, 可以到这里查看

@sunng87
Copy link

sunng87 commented Aug 9, 2016

@knight42 赞,好快。话说新的这种方式会影响 cargo publish 吗?如果 publish 是发布到哪个 index 呢?

@knight42
Copy link
Member

knight42 commented Aug 9, 2016

@sunng87
我觉得这个问题应该只跟 index/config.json 里的 api 变量有关, 现在我们设置成了 "https://crates.io", 按理说应该是不影响的.

@sunng87
Copy link

sunng87 commented Aug 9, 2016

@knight42 感谢!

@ScottHuangZL
Copy link

以前可以直接cargo run/build,不用特殊设置。
我7月底开始无法下载依赖,即使设置为中科镜像也不行。(晚上回家试试看镜像是否管用)
有何方案?

@knight42
Copy link
Member

knight42 commented Aug 9, 2016

以前可以直接cargo run/build,不用特殊设置。

说明墙加高了 :/

 有何方案?

科学上网?

遇到问题烦请贴出 cargo build -v 的输出以及你现在的配置(~/.cargo/config), 以便我们定位问题.

@gaoyifan
Copy link
Member

gaoyifan commented Aug 9, 2016

请不要滥用这个issue列表
镜像使用问题请致信官方邮箱lug(AT)ustc.edu.cn
镜像配置更新或修改请新开issue

@ustclug ustclug locked and limited conversation to collaborators Aug 9, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests