Cargo deny安装指路

本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。转载请注明来自 唯你
简介
cargo deny 是一个 Rust 工具,用于检查项目依赖项的许可证、安全性和其他合规性问题。在 Rust CI(持续集成)中,cargo deny 扮演着重要角色:
- 许可证检查:确保项目使用的所有依赖项的许可证都符合项目的许可政策。
- 安全漏洞扫描:检查依赖项是否存在已知的安全漏洞。
- 依赖项合规性:验证依赖项是否符合项目的其他要求,如版本限制或来源限制。
- 禁用特定依赖项:允许明确禁止使用某些依赖项。
在 CI 流程中,cargo deny 通常作为一个检查步骤运行,以确保项目在构建和部署之前满足所有合规性要求。这有助于维护项目的质量、安全性和法律合规性。
一句话: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

解决办法:
- 先删除原项目下的 deny.toml 配置文件
- 在项目根目录下运行命令行
cargo deny init重新生成一份新版本 deny.toml 文件 - 在 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",
]
- 运行
cargo deny check重新检测一波,是否正常
Cargo deny安装指路的更多相关文章
- 00_Rust安装及Hello World
Rust 官网: https://www.rust-lang.org 版本:nightly.beta.stable 如何设计语言的讨论:https://github.com/rust-lang/rfc ...
- Rust 中项目构建管理工具 Cargo简单介绍
cargo是Rust内置的项目管理工具.用于Rust 项目的创建.编译.执行,同一时候对项目的依赖进行管理,自己主动推断使用的第三方依赖库,进行下载和版本号升级. 一.查看 cargo 版本号 安装R ...
- 【Rust】使用cargo创建项目及cargo源的替换
---------------------------------参考文档------------------------------- https://rustlang-cn.org/office/ ...
- Rust笔记
前言: 学了有段时间了,现在同步到博客园. 正文: Rust语言介绍 l Rust由js之父开发的新型语言,打破了传统的难以接触底层的局面.这是个有C++开发的语言.拥有C的血统 l Rust必须严格 ...
- 认识 Cargo-Rust构建工具和包管理器
认识 Cargo-Rust构建工具和包管理器 上两篇文章 都有说到 hello world 程序,但是我们如果使用自己创建文件的方式创建项目,一旦文件多了,那得多麻烦,整个项目将变得难以管理.下面我来 ...
- 用纯RUST手撸一个开源流媒体服务(RTMP/HTTPFLV/HLS)XIU
作者工作目前在音视频流媒体行业,用了大概一年的业余时间学习Rust,并且实现了一个简单的音视频流媒体服务,虽然据说Rust已经连续多年被评为最受程序员喜欢的语言,但是在国内还是比较冷门,作者比较看好R ...
- ansible指路篇-安装及基本命令使用
ansible指路篇-安装及基本命令使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是ansible ansible是新出现的自动化运维工具,基于Python开发,集合 ...
- appium安装的permission deny处理方法-20200204
npm -v 报错:Error: EPERM: operation not permitted, mkdir 'C:\soft\nodejs' 起因:原本安装node在C盘soft文件夹下,按node ...
- 如何安装一个优秀的BUG管理平台——真的是手把手教学!
前言 就BUG管理而言,国内的禅道做得很不错,而且持续有更新.我们来看看如何从头到尾安装禅道,各位要注意的是,不是文章深或者浅,而是文章如何在遇到问题的时候,从什么途径和用什么方法解决问题的.现在发觉 ...
- 安装wamp2.5报权限错误的解决办法
安装完wampServer 2.5,新建了一个虚拟目录,xhp/ 访问xhp/index.php报You don't have permission to access 按照以前的经验,只要打开/wa ...
随机推荐
- linux小常识
一.一般来说著名的linux系统基本上分两大类:1 RedHat系列:Redhat.Centos.Fedora等2 Debian系列:Debian.Ubuntu等RedHat 系列:1 常见的安装包格 ...
- RGB、HSV和HSL颜色空间
这个文章写的很清楚了 https://zhuanlan.zhihu.com/p/67930839
- Python将表格文件中某些列的数据整体向上移动一行
本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,对其中的每一个文件加以操作--将其中指定的若干列的数据部分都向上移动一行,并将所有操作完毕的Excel表格文件中的数据加以合 ...
- react 中获取子组件
wrappedComponentRef={(form) => this.table = form}
- OpenAI GPT-4发布总结
OpenAI官方发布了GPT-4模型,GPT-4是一个大型多模态模型,支持输入文本+图片,输出还是文字形式,GPT-4比任何 GPT-3.5 模型都更强大,能够执行更复杂的任务,并针对聊天进行了优化. ...
- Goby漏洞发布 | CVE-2024-4879 ServiceNowUI /login.do Jelly模板注入漏洞【已复现】
漏洞名称:ServiceNowUI /login.do Jelly模板注入漏洞(CVE-2024-4879) English Name:ServiceNowUI /login.do Input Val ...
- ToCom:一次训练随意使用,华为提出通用的ViT标记压缩器 | ECCV 2024
标记压缩通过减少冗余标记的数量(例如,修剪不重要的标记或合并相似的标记)来加快视觉变换器(ViTs)的训练和推理.然而,当这些方法应用于下游任务时,如果训练和推理阶段的压缩程度不匹配,会导致显著的性能 ...
- ASP.NET Core Library – CsvHelper
前言 平常都是用 Excel 的多, 但这一次遇到 Google Ads. 谷歌嘛, 当然不喜欢微软的 Excel. 硬是要求 CSV. 没办法, 只能找 Library 搞一搞了. 参考 Docs ...
- Facebook – Facebook Page Embed
前言 在网站嵌套 Facebook 专页是很好的推广方式哦. 虽然网站还是需要做 Blog, 但是通常被订阅的都是 Facebook 专页而不是网站 Blog. 开通账号 它的 setup 很简单, ...
- FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher
EasyPusher是一款国产的RTSP直播录制推流客户端工具,它支持Windows.Linux.Android.iOS等操作系统.EasyPusher采用RTSP推流协议,其中安卓版EasyPus ...