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 分钟前
信创终端 POC 测试实战与选型避坑指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理
曦夜日长6 分钟前
Linux系统篇,进程概念(三):进程状态详解、僵尸进程与孤儿进程的深度解析、Slab机制的了解
linux·运维·服务器
liulilittle15 分钟前
为什么采用全局管理缓存及状态:麻将客户端状态管理
服务器·网络·游戏·客户端·异步·mahjong·麻将
wdfk_prog16 分钟前
VMware Ubuntu 虚拟机从 124 GB 压缩到 33 GB
运维·缓存·docker·容器
FlightYe17 分钟前
音视频修炼之编码器(一):AVC、HEVC编码器内部
android·linux·c++·音视频
云栖梦泽21 分钟前
网络设备驱动(1)
linux·arm开发·嵌入式硬件
2601_9663771329 分钟前
等保2.0最新标准新增安全数据处理要求后怎么办?等保一体机数据安全模块来助力
运维·网络·安全·等保一体机
2601_9639067836 分钟前
桌面自动化工具|零代码录制自动化,无需联网本地离线用
运维·自动化
海宇AI37 分钟前
零信任架构实战:基于海宇公安二要素认证即时版构建自动化灵活用工准入网关
运维·人工智能·架构·自动化
Jia ming1 小时前
从打补丁到一行配置:PREEMPT_RT 主线化之后,实时内核到底该怎么配?
linux