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
相关推荐
敲代码还房贷18 小时前
VMware17 + Ubuntu22.04 共享 完整步骤
linux·python·ubuntu
SakitamaX18 小时前
pod管理及其相关实验
运维·kubernetes
King of fraud18 小时前
Linux 下 MySQL 基础操作:创建用户、数据库与权限管理实战
linux·数据库·mysql
Harm灬小海18 小时前
2026 年主流 AI+DevOps 平台调研分析报告
运维·人工智能·devops
DevOps老兵19 小时前
Kubernetes生产运维02:只会get pods还不够,kubectl排障工具箱怎么组合使用
运维·容器·kubernetes·kubectl·devops·故障排查·sre
进击的_鹏19 小时前
从零开始的 Redis 学习
服务器·数据库·c++·redis·缓存
实心儿儿19 小时前
Linux —— 传输层协议TCP
linux·服务器·tcp/ip
祖力5519 小时前
Linux应用软件编程:目录IO与framebuffer
linux·运维·算法·framebuffer·目录io
词却19 小时前
Linux基础:常用基本命令与软件包管理
linux
4311媒体网20 小时前
帝国CMS网站自定义搭建技巧
服务器·开发语言·前端