rust - 是否可以让 Cargo 从私有(private)远程 git 获取依赖项?

标签 rust rust-cargo

我在一台支持 ssh 的实验室机器上有一个帐户,我在其中存储了很多私有(private)项目,因此我可以从多台计算机访问它们(它允许我只使用我的几个私有(private) Github 存储库来处理多人将要处理的事情).

看起来 Rust 很适合通过使用类似的东西来获取本地和公共(public)数据

[dependencies.foo]
git = "https://github.com/bar/foo"

[dependencies.baz]
path = "/path/to/baz"

但我还没有找到使用 ssh git 让它工作的方法(例如 git = "git@github.com:bar/foo",或者在我的例子中是 labmachine :bar/foo).如果有帮助的话,我设置了 passwordless/keygen ssh。

不存在也没什么大不了的。目前我只是手动克隆存储库并使用 path = ../foo,只要我保持我的目录结构不变并记住手动 pull 我所有机器上的所有依赖项。但是,如果我可以设置 Cargo 来做这件事,事情就会变得容易得多,尤其是当我只需要在我的笔记本电脑或其他任何东西上快速演示某些东西时。

最佳答案

在 macOS Sierra 上,我必须创建一个 .ssh/config 文件,如下所示:

Host *
   UseKeychain yes
   AddKeysToAgent yes
   IdentityFile ~/.ssh/id_rsa

使用指向的私钥(RSA)文件,然后发出命令:

ssh-add -K ~/.ssh/id_rsa

它(终于!)允许这样的条目:

git = "ssh://git@github.com/skipjaq/loda.git"

完美地工作。

我不知道我需要多久重复一次 ssh-add 命令,但看起来这至少应该保持到下一次重新启动。

这个异常显然是 macOS Sierra 上 ssh-agent 的一个特性。

关于rust - 是否可以让 Cargo 从私有(private)远程 git 获取依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31704573/

相关文章:

rust - 如何为新的 Cargo 项目设置默认作者?

git - cargo publish 不会忽略 .gitignore 中的文件

rust - 不能将 `-Z macro-backtrace`不稳定选项与 `cargo`一起使用

python - Rust Numpy 库 - 按行迭代:无法构建返回行而不是单个值的 NpySingleIterBuilder::readwrite

c - 是否可以使用Rust中的指针访问结构的元素?

multithreading - 为什么在返回 `Future::poll` 后没有重复调用 `NotReady` ?

compilation - 为什么 Rust hello world 会尝试读取/proc 和/sys

rust - 如何在 .cargo/config 文件中使用环境变量?

rust - 如何构建独立的测试二进制文件以在调试器下运行?

dynamic - 是否可以将特征对象转换为另一个特征对象?