scanoss-engine 本地最简部署 & 扫描命令(Linux/Anolis OS)

目录

一、环境准备

[1. 依赖安装](#1. 依赖安装)

[2. 下载编译 scanoss-engine](#2. 下载编译 scanoss-engine)

[二、下载开源指纹库 OSSKB(核心数据库)](#二、下载开源指纹库 OSSKB(核心数据库))

三、基础扫描命令

[方式 1:直接扫描本地代码目录(最简)](#方式 1:直接扫描本地代码目录(最简))

[方式 2:指纹比对库,输出扫描结果 json](#方式 2:指纹比对库,输出扫描结果 json)

[四、配套 scanoss-py 工具(推荐,简化全流程)](#四、配套 scanoss-py 工具(推荐,简化全流程))

[五、Docker 一键部署(无编译,生产推荐 Anolis OS)](#五、Docker 一键部署(无编译,生产推荐 Anolis OS))

六、常用参数说明

[七、CI 集成示例(Jenkins/GitLab CI)](#七、CI 集成示例(Jenkins/GitLab CI))


一、环境准备

1. 依赖安装

bash 复制代码
# CentOS/Anolis 8/9
yum install git gcc make unzip wget -y

# Ubuntu/Debian
apt update && apt install git gcc make unzip wget -y

2. 下载编译 scanoss-engine

复制代码
# 拉取源码
git clone https://github.com/scanoss/engine.git
cd engine

# 编译引擎二进制文件
make

编译完成后目录下出现 scanoss-engine 可执行文件。

二、下载开源指纹库 OSSKB(核心数据库)

bash 复制代码
# 创建库存放目录
mkdir -p ~/.scanoss/ldb
cd ~/.scanoss/ldb

# 下载最新轻量指纹库(国内下载慢可加代理)
wget https://scanoss.com/files/ldb/scanoss-latest.ldb.zip
unzip scanoss-latest.ldb.zip

三、基础扫描命令

方式 1:直接扫描本地代码目录(最简)

bash 复制代码
# 回到engine编译目录
cd ~/engine

# 语法:./scanoss-engine -wfp 输出指纹文件 -scan 代码目录
./scanoss-engine -wfp output.wfp -scan /你的项目源码路径

执行完毕生成 output.wfp 指纹文件。

方式 2:指纹比对库,输出扫描结果 json

bash 复制代码
./scanoss-engine -ldb ~/.scanoss/ldb -wfp output.wfp -out scan_result.json

四、配套 scanoss-py 工具(推荐,简化全流程)

engine 仅底层内核,日常扫描、导出 SBOM 用 python 封装工具更方便

bash 复制代码
# 安装scanoss-py
pip install scanoss

# 一键扫描项目,直接输出结果(内置调用scanoss-engine)
scanoss /你的源码目录 --output sbom_result.json --format spdx

五、Docker 一键部署(无编译,生产推荐 Anolis OS)

无需本地编译引擎,直接容器运行

bash 复制代码
# 拉取官方镜像
docker pull scanoss/scanoss-engine

# 启动容器扫描本地代码
docker run -v /本地源码目录:/src -v ~/.scanoss/ldb:/ldb scanoss/scanoss-engine \
  -ldb /ldb -scan /src -out /src/scan_report.json

六、常用参数说明

复制代码
-wfp      指定指纹文件路径
-scan     待扫描源码目录
-ldb      指纹数据库目录
-out      输出报告json路径
-quiet    静默输出,屏蔽日志
-threads  扫描并发线程数,例:-threads 8

七、CI 集成示例(Jenkins/GitLab CI)

bash 复制代码
# 流水线步骤命令
scanoss ./ --format cyclonedx --output bom.json
# 检测高风险开源组件,阻断流水线
grep -i "GPL" bom.json && exit 1
相关推荐
爱和冰阔落3 小时前
【Linux网络】TCP 半包粘包怎么解决?从长度报头、JSON 拆包到网络计算器完整实战
linux·运维·网络·tcp/ip
say_fall4 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
ö Constancy5 小时前
一台电脑的硬件组成与作用:按功能分类详解(Windows 与 Linux 视角)
linux·windows·电脑
江湖有缘5 小时前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
无奈笑天下14 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla17 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
火云代理17 小时前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
威嵌神州18 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
Decay__19 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
java_logo19 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像