首页 > 其他分享 >Cargo deny安装指路

Cargo deny安装指路

时间:2024-11-12 09:31:02浏览次数:1  
标签:Cargo deny 依赖 advisory cargo toml 指路 check

本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。转载请注明来自 唯你

简介

cargo deny 是一个 Rust 工具,用于检查项目依赖项的许可证、安全性和其他合规性问题。在 Rust CI(持续集成)中,cargo deny 扮演着重要角色:

  • 许可证检查:确保项目使用的所有依赖项的许可证都符合项目的许可政策。
  • 安全漏洞扫描:检查依赖项是否存在已知的安全漏洞。
  • 依赖项合规性:验证依赖项是否符合项目的其他要求,如版本限制或来源限制。
  • 禁用特定依赖项:允许明确禁止使用某些依赖项。

在 CI 流程中,cargo deny 通常作为一个检查步骤运行,以确保项目在构建和部署之前满足所有合规性要求。这有助于维护项目的质量、安全性和法律合规性。

一句话:cargo deny 让你合法合规放心使用第三方依赖

使用

cargo install --locked cargo-deny && cargo deny init && cargo deny check

常见错误

使用 cargo-deny 报错 failed to open advisory database

   Installed package `cargo-deny v0.16.1` (executable `cargo-deny.exe`)
PS E:\Rust\easy-publish> cargo deny check
2024-11-11 02:07:34 [ERROR] failed to fetch advisory database https://github.com/RustSec/advisory-db: An IO error occurred when talking to the server: error sending request for url (https://github.com/RustSec/advisory-db/info/refs?service=git-upload-pack)

方案一: 可以尝试:
1.  删除 ~/.cargo/advisory-db/ 目录,然后使用 cargo deny fetch / cargo deny check 重新下载它。多试几次?
2.  在 deny.toml 配置中的 git 地址修改为 gitee 上的镜像地址:https://gitee.com/tyr-rust-bootcamp-mirror/advisory-db.git
3.  删掉 deny.toml,执行 cargo deny init 重新生成一个,然后按照你的需要修改。
4.  检查你的网络,想办法~

方案二:可以尝试通过运行:cargo deny check advisories 解决

升级最新版本,大量 this key has been removed

image.png
解决办法:

  1. 先删除原项目下的 deny.toml 配置文件
  2. 在项目根目录下运行命令行cargo deny init 重新生成一份新版本 deny.toml 文件
  3. 在 deny.toml 中找到 allow 然后将原来 allow 中许可证,类似如下代码,拷贝到新 deny.toml 中即可
allow = [
    "MIT",
    "Apache-2.0",
    "Apache-2.0 WITH LLVM-exception",
    "Unicode-DFS-2016",
    "MPL-2.0",
    "BSD-2-Clause",
    "BSD-3-Clause",
    "ISC",
    "CC0-1.0",
    "OpenSSL",
]
  1. 运行cargo deny check重新检测一波,是否正常

标签:Cargo,deny,依赖,advisory,cargo,toml,指路,check
From: https://www.cnblogs.com/programmingBB/p/18541121

相关文章

  • hosts.allow与hosts.deny详解
    概述在Linux系统中,hosts.allow和hosts.deny都属于TCPWrappers的一部分,用于控制服务的访问权限。不过它们的应用方式有所不同:默认情况下,这两个文件都不会主动限制任何访问。也就是说,如果hosts.allow和hosts.deny文件中都没有任何规则配置,系统会默认允许所有连接......
  • cargo deny 插件
    cargodeny2024-10-18插件Rust它专门用于帮助Rust开发者检查项目依赖项的安全性、许可证合规性、多版本依赖管理等.执行cargodenycheck启用检查.deny.toml文件基本配置:#关于advisories部分的更多文档可以在这里找到:#https://embarkstudios.github.io/cargo-d......
  • Rustup-init.exe安装后执行cargo run 报错:`link.exe` returned an unexpected error的
    版本:rustc1.81.0(eeb90cda12024-09-04)报错情况如下图:摸索了后,总结一下关键解决方法:从微软件官网:https://visualstudio.microsoft.com/zh-hans/downloads/找到选项“用于VisualStudio的工具”,在其子项中下载“VisualStudio2022生成工具”下载后安装时,在Visualstu......
  • Error: xz: undefined method `deny_network_access!' for Formulary::FormulaNamespa
      ==>Fetchingxz==>Downloadinghttps://raw.githubusercontent.com/Homebrew/homebrew-core/c7f385112a4c2b9eed76b346d11d333fa8954a89/Formula/x/xz.rbAlreadydownloaded:/Users/wboll/Library/Caches/Homebrew/downloads/049af374432798d3b924a0d36bdcd6......
  • 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认
    原文链接:https://www.cnblogs.com/wwssgg/p/17984105今天运行项目的时候出现了这个错误....查了一下解决的方法。 具体方案如下: 1、先确认安装IIS的时候有没有装Asp.Net,如果没安装的话,安装上即可。(XTHS:采用这步,就可以了!) 2、IIS采用了更安全的web.config管理机制,默......
  • Rust换源:使用Cargo国内镜像
    Rust换源:使用Cargo国内镜像Rust是一门现代化的系统编程语言,而Cargo则是Rust的官方包管理工具。在进行Rust项目开发时,由于网络原因,从Crates.io下载依赖可能会很慢。为了提高开发效率,我们可以配置Cargo使用国内的镜像源,以加速包的下载和构建过程。配置Cargo国内镜像的步骤步骤一......
  • Cargo镜像源
    在Windows系统默认为:%USERPROFILE%.cargo,在类Unix系统默认为:$HOME/.cargo,在此目录下新建config.toml文件,填写内容如下:字节镜像源[source.crates-io]replace-with='rsproxy-sparse'[source.rsproxy]registry="https://rsproxy.cn/crates.io-index"#稀疏索......
  • net core中使用jwt时,提示DenyAnonymousAuthorizationRequirement: Requires an authe
    客户端请求是401,控制台提示info:Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]Authorizationfailed.Theserequirementswerenotmet:DenyAnonymousAuthorizationRequirement:Requiresanauthenticateduser.翻遍了资料,也查不到原因,......
  • cargo 图片转base64 完整可以运行的代码
    要将图片转换为Base64编码,可以使用Rust语言和image、base64等库。以下是一个完整的可以运行的代码示例,使用Cargo来管理依赖。 步骤 创建一个新的Cargo项目: sh Copycargonewimage_to_base64cdimage_to_base64 添加依赖:在Cargo.toml文件中添加需......
  • Cargo
    Cargo是Rust语言的包管理器和构建工具。它可以帮助您管理依赖项、构建项目、运行测试和发布程序等。在Rust社区中,Cargo已经成为了标准的构建工具,它为Rust的开发者提供了极大的便利。Cargo的主要功能包括:管理依赖项:Cargo可以帮助您下载和安装Rust包,并将其添加到......