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私有仓库

搭建本地Docker私有仓库 与 Harbor私有仓库的部署与管理

Docker私有仓库部署

NPM私有包部署到私有仓库

11.部署 harbor 私有仓库

docker私有镜像仓库搭建和镜像删除