Cargo Error: failed to get `x` as a dependency of package解决方法

在使用Cargo运行或编译有依赖的程序时,可能会出现类似下面这种错误:

PS D:\hocn\Desktop\rust\a1> cargo run    
    Updating crates.io index
error: failed to get `image` as a dependency of package `a1 v0.1.0 (D:\hocn\Desktop\rust\a1)`

Caused by:
  failed to load source for dependency `image`

Caused by:
  Unable to update registry `crates-io`

Caused by:
  failed to fetch `https://github.com/rust-lang/crates.io-index`

Caused by:
  failed to authenticate when downloading repository: git@github.com:rust-lang/crates.io-index

  * attempted ssh-agent authentication, but no usernames succeeded: `git`

  if the git CLI succeeds then `net.git-fetch-with-cli` may help here
  https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

Caused by:
  error authenticating: unable to connect to agent pipe; class=Ssh (23)

原因

默认情况下,Cargo是通过内置的git库来下载依赖的,有时会因为验证原因导致失败;

解决办法

  • 找到.cargo目录,以Windows系统为例:C:\Users\hocn\.cargo,注意用户名;
  • 进入.cargo目录,编辑文件config.toml,如没有则创建;
  • 写入以下内容:
  • [net]
    git-fetch-with-cli = true

git-fetch-with-cli默认为false,表示使用内置的git库来下载依赖;为true时,使用git程序来下载依赖,这样就不存在验证失败的问题;

请确保你安装了git程序并正确配置;

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/failed-to-get-x-as-a-dependency-of-package.html

分类: 计算机技术
推荐阅读:
Rust中宏与函数的区别 宏能够接受不同数量和类型的参数,这使得宏在处理多样化的输入时更加灵活。函数具有明确定义的参数列表和返回值类型,参数数量和类型通常是固定的。
C语言isxdigit()函数:判断字符是否为十六进制数字字符 isxdigit()是C语言标准库中的一个函数,用于判断一个字符是否为十六进制数字字符;十六进制数字包括0~9之间的数字,以及A~F的字母(不区分大小写);
Golang实现base64加密解密 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
MIPS指令的类型和格式 MIPS指令集包含三种基本类型的指令:R指令、I指令和J指令。不同类型的指令采用不同的指令格式。
PySide6 widgetAt()函数详细教程 Pyside6.QtWidgets.QApplication类的成员函数widgetAt()用于返回屏幕位置(x,y)处的小部件对象,如果那里没有Qt小部件,则返回None;该方法无法获取其它进程的Qt小部件;
Python frozenset()类 在Python中,frozenset是一个内置的类,返回一个不可变的frozenset对象,表示一个无序的、唯一元素的集合;