Cargo 私有仓库部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cargo 私有仓库部署相关的知识,希望对你有一定的参考价值。
参考技术A 私有仓库的crates目录使用Git进行版本管理:Alexandrie 是Rust语言编写的私有仓库管理服务器,当前版本0.1.0。官方提供了份花里胡哨的 安装脚本 ,事实上也就执行了以下几步。
编译器:rustc 1.46.0
编到 migrations_macros 模块可能会报 /usr/bin/ld: cannot find -lsqlite3 ,解决方法:
在alexandrie目录中创建存放crates的文件夹:
在alexandrie目录中拉一份mycrates-io.git:
在crate-index中添加配置文件config.json:
提交:
为了让局域网中的其他机器访问到,需要将alexandrie.toml中配置的回环地址改成固定IP:
在alexandrie目录中运行(依然会用到一些源文件):
输出信息显示Alexandrie在3000端口监听请求,但防火墙可能会将其禁用,使用以下步骤依次完成查看端口状态、开启端口、重启防火墙、确认端口状态:
后面如需关闭端口:
Alexandrie就绪后,可在任意客户端发布crate,但需要注册Alexandrie账户并使用cargo登陆。
使用浏览器访问 http://<Alexandrie_IP>:3000 进行注册。有趣的是,密码似乎只能是十六进制数,因为 alexandrie/src/frontend/account/register.rs 是这么处理的:
注册之后进入 http://<Alexandrie_IP>:3000/account/manage 页面,点击「Create token」获得token。
<TOKEN> 就是上一步获得的token,cargo会自动将其保存至 ~/.cargo/credential 。
由于Cargo仓库被设计成永久保存,发布上去的crate只能yank,不能删除,无法重新发布同版本的crate,这意味着一旦传错,只能在服务端删库重来:
默认情况下,cargo访问的crates仓库目录是 https://github.com/rust-lang/crates.io-index ,我们需要在 ~/.cargo/config 中将其替换为自己的私有仓库:
2020年9月11日、14日、16日 无锡
以上是关于Cargo 私有仓库部署的主要内容,如果未能解决你的问题,请参考以下文章
Docker 部署Registry私有仓库+Harbor私有仓库