
目录
[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