Cargo deny安裝指路

本博客所有文章除特別聲明外,均采用CC BY-NC-SA 4.0許可協(xié)議。轉(zhuǎn)載請(qǐng)注明來(lái)自 唯你

簡(jiǎn)介

cargo deny 是一個(gè) Rust 工具,用于檢查項(xiàng)目依賴項(xiàng)的許可證、安全性和其他合規(guī)性問(wèn)題。在 Rust CI(持續(xù)集成)中,cargo deny 扮演著重要角色:

  • 許可證檢查:確保項(xiàng)目使用的所有依賴項(xiàng)的許可證都符合項(xiàng)目的許可政策。
  • 安全漏洞掃描:檢查依賴項(xiàng)是否存在已知的安全漏洞。
  • 依賴項(xiàng)合規(guī)性:驗(yàn)證依賴項(xiàng)是否符合項(xiàng)目的其他要求,如版本限制或來(lái)源限制。
  • 禁用特定依賴項(xiàng):允許明確禁止使用某些依賴項(xiàng)。

在 CI 流程中,cargo deny 通常作為一個(gè)檢查步驟運(yùn)行,以確保項(xiàng)目在構(gòu)建和部署之前滿足所有合規(guī)性要求。這有助于維護(hù)項(xiàng)目的質(zhì)量、安全性和法律合規(guī)性。

一句話:cargo deny 讓你合法合規(guī)放心使用第三方依賴

使用

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

常見(jiàn)錯(cuò)誤

使用 cargo-deny 報(bào)錯(cuò) 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,執(zhí)行 cargo deny init 重新生成一個(gè),然后按照你的需要修改。
  4. 檢查你的網(wǎng)絡(luò),想辦法~

方案二:可以嘗試通過(guò)運(yùn)行:cargo deny check advisories 解決

升級(jí)最新版本,大量 this key has been removed

image.png

解決辦法:

  1. 先刪除原項(xiàng)目下的 deny.toml 配置文件
  2. 在項(xiàng)目根目錄下運(yùn)行命令行cargo deny init 重新生成一份新版本 deny.toml 文件
  3. 在 deny.toml 中找到 allow 然后將原來(lái) 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. 運(yùn)行cargo deny check重新檢測(cè)一波,是否正常
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容