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

分类: 计算机技术
推荐阅读:
cannot use 1 (type int) as type bool in assignment错误的解决方法 在go语言中布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。
Python使用webbrowser模块来实现弹出一个网页 如果你希望在别人运行你的程序时弹出一个指向自己网站的页面,你可以通过以下代码来实现:
Python print()函数 print() 函数是 Python 内置函数之一,用于输出指定的对象。它可以接受多个参数,用逗号分隔,它们将被依次输出,并且默认情况下它们之间会用空格分隔。在输出完成之后,print() 函数会自动在末尾添加一个换行符。
一条Linux命令让你看起来很忙还很酷 在Linux系统下,如果你想让你的终端看起来很忙,或者想在某人面前装酷,那么你一定需要这条命令来实现:
Python id()函数 id()是Python内置函数之一,用于返回给定对象的唯一标识符(即对象在内存中的地址)。具体来说,id()函数返回一个整数,该整数代表给定对象在内存中的地址。因为每个对象在内存中都有一个唯一的地址,所以id()函数返回的值也是唯一的。
Python将数转换为带有千位分隔符的形式 在这篇文章中,我们使用Python将一个数转换为带有千位分隔符的形式;