目录
目录README.md

开源操作系统软件仓库依赖关系检测分析工具


项目简介

本项目是一个基于开源操作系统软件仓库的依赖关系检测分析工具,支持RPM包格式解析、依赖关系可视化、跨架构检测等功能。系统采用Flask + Bootstrap + Chart.js技术栈,提供Web可视化界面和智能分析报告。

项目目标

<<<<<<< HEAD

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

  • 构建覆盖软件包、动态库文件和函数接口的全量知识图谱
  • 开发依赖关系分析工具,检测软件包依赖关系的正确性和完备性
  • 提供可视化的分析结果展示,支持分析报告导出
  • 支持跨架构检测和操作系统升级兼容性分析

目录

<<<<<<< HEAD


=======


257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

环境搭建与配置

1. 虚拟机环境准备

  • 推荐:VMware Workstation Pro 或 VirtualBox
  • 操作系统:Ubuntu 22.04 LTS、CentOS 8、openEuler 20.03 LTS/21.03
  • 内存:建议8GB以上
  • 存储:建议100GB以上可用空间

<<<<<<< HEAD

安装步骤

=======

  • 推荐:VMware Workstation Pro 或 VirtualBox
  • 操作系统:Ubuntu 22.04 LTS、CentOS 8、openEuler 20.03 LTS/21.03
  • 内存:建议8GB以上
  • 存储:建议100GB以上可用空间

安装步骤

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

# 下载OpenEuler20.03 ISO镜像
https://www.openeuler.org/zh/download/archive/detail/?version=openEuler%2020.03%20LTS
# 创建虚拟机并安装系统

2. 系统环境配置

<<<<<<< HEAD

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git curl wget vim
sudo apt install -y python3 python3-pip python3-venv
sudo apt install -y libxml2-dev libxslt-dev libffi-dev
sudo apt install -y rpm rpm2cpio cpio rpm-common rpm-build
sudo apt install -y binutils objdump readelf

3. Python环境配置

<<<<<<< HEAD

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

mkdir -p ~/kyxt && cd ~/kyxt
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install flask>=2.3.0 pandas>=2.0.0 numpy>=1.24.0 setuptools>=68.0.0
pip install requests beautifulsoup4 lxml python-docx openpyxl neo4j-driver matplotlib seaborn plotly

数据获取与处理

1. RPM包下载

<<<<<<< HEAD

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

mkdir -p ~/kyxt/data/rpms
cd ~/kyxt/data/rpms
# 配置openKylin软件源
sudo tee /etc/apt/sources.list.d/openkylin.list << EOF
deb https://mirror.openkylin.top/openkylin/ openkylin main
deb https://mirror.openkylin.top/openkylin/ openkylin-security main
deb https://mirror.openkylin.top/openkylin/ openkylin-updates main
EOF
sudo apt update
# 使用脚本下载RPM包
cd ~/kyxt/scripts
python3 fetch_rpms_flat.py

2. RPM包解析

<<<<<<< HEAD

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

python3 extract_so_files.py   # 提取SO文件
python3 extract_symbols.py    # 提取符号信息

3. 数据导出

<<<<<<< HEAD

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

python3 export_to_csv.py      # 生成CSV数据

系统结构与功能

<<<<<<< HEAD

1. 项目结构

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

1. 项目结构

kyxt/
├── app/
│   ├── __init__.py
│   ├── csv_visualization.py      # 主应用模块
│   ├── dependency_analysis.py    # 依赖分析模块
│   ├── visualization_dashboard.py# 可视化模块
│   └── import_to_neo4j.py       # Neo4j导入模块
├── scripts/
│   ├── fetch_rpms_flat.py       # RPM下载脚本
│   ├── extract_so_files.py      # SO文件提取
│   ├── extract_symbols.py       # 符号提取
│   └── export_to_csv.py         # 数据导出
├── templates/
│   └── dashboard.html           # 前端模板
├── static/                      # 静态资源
├── csv/                         # CSV数据文件

2. 后端核心功能

<<<<<<< HEAD

  • Flask Web服务,RESTful API接口
  • 依赖关系检测、循环依赖分析、缺失依赖识别、跨架构依赖分析
  • 数据加载与缓存、统计分析

3. 前端可视化

  • Bootstrap 5 响应式UI

  • Chart.js/D3.js 图表可视化

  • 实时数据更新与交互

  • Flask Web服务,RESTful API接口

  • 依赖关系检测、循环依赖分析、缺失依赖识别、跨架构依赖分析

  • 数据加载与缓存、统计分析

3. 前端可视化

  • Bootstrap 5 响应式UI
  • Chart.js/D3.js 图表可视化
  • 实时数据更新与交互

4. 主要API接口

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

4. 主要API接口

# GET /api/stats                # 返回系统统计信息
# GET /api/packages             # 返回软件包列表
# GET /api/noarch-analysis      # 返回Noarch包分析结果
# GET /api/enhanced-dependencies# 返回增强依赖分析结果
# GET /api/symbols              # 返回符号分析数据
# GET /api/dependencies         # 返回依赖关系数据
# GET /api/libraries            # 返回库分析数据

系统使用说明

<<<<<<< HEAD

1. 启动系统

方式一:可执行文件(推荐) 需要运行源代码中的脚本

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

1. 启动系统

方式一:可执行文件(推荐) 需要运行源代码中的脚本

chmod +x start.sh
./start.sh

<<<<<<< HEAD

方式二:Python源码

=======

方式二:Python源码

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

cd ~/kyxt
source venv/bin/activate
python3 app/csv_visualization.py

2. 访问系统

<<<<<<< HEAD

  • 打开浏览器访问:http://localhost:8080
  • 系统将自动加载数据和图表,支持实时数据更新和交互

3. 主要功能模块

  • 统计卡片区:显示包数量、库数量、符号数量、依赖关系、系统依赖等
  • 依赖分析面板:分析软件包依赖关系,展示依赖关系图表
  • Noarch包分析:分析跨架构包的特性
  • 增强依赖分析:深度分析依赖关系
  • 包列表管理:查看和管理软件包,支持筛选、分页、搜索
  • 可视化图表:饼图、柱状图、折线图、依赖关系网络、符号调用图、架构关系图
  • 实时更新:支持数据和图表的动态刷新
  • 报告导出:支持Word、CSV、JSON、图片等格式导出

4. 常见操作

=======

  • 打开浏览器访问:http://localhost:8080
  • 系统将自动加载数据和图表,支持实时数据更新和交互

3. 主要功能模块

  • 统计卡片区:显示包数量、库数量、符号数量、依赖关系、系统依赖等
  • 依赖分析面板:分析软件包依赖关系,展示依赖关系图表
  • Noarch包分析:分析跨架构包的特性
  • 增强依赖分析:深度分析依赖关系
  • 包列表管理:查看和管理软件包,支持筛选、分页、搜索
  • 可视化图表:饼图、柱状图、折线图、依赖关系网络、符号调用图、架构关系图
  • 实时更新:支持数据和图表的动态刷新
  • 报告导出:支持Word、CSV、JSON、图片等格式导出

4. 常见操作

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

  • 版本/架构/包筛选,图表交互,依赖关系图查看,报告导出

常见问题与技术支持

1. 启动与依赖问题

<<<<<<< HEAD

  • 端口被占用:lsof -i :8080kill -9 <PID>,重启服务
  • 缺失依赖:pip install -r requirements.txt
  • 可执行文件权限:chmod +x ./dist/RPM依赖分析工具

2. 数据加载与格式

  • CSV文件不存在:ls -la csv/python3 scripts/export_to_csv.py
  • 数据格式错误:head -5 csv/packages.csv,重新生成数据

3. 前端显示异常

  • 检查浏览器控制台错误,清除缓存,刷新页面

4. 功能操作问题

  • 筛选器无效、导出无响应,检查日志和文件权限

5. 技术支持与反馈

=======

  • 端口被占用:lsof -i :8080kill -9 <PID>,重启服务
  • 缺失依赖:pip install -r requirements.txt
  • 可执行文件权限:chmod +x ./dist/RPM依赖分析工具

2. 数据加载与格式

  • CSV文件不存在:ls -la csv/python3 scripts/export_to_csv.py
  • 数据格式错误:head -5 csv/packages.csv,重新生成数据

3. 前端显示异常

  • 检查浏览器控制台错误,清除缓存,刷新页面

4. 功能操作问题

  • 筛选器无效、导出无响应,检查日志和文件权限

5. 技术支持与反馈

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67

  • 项目维护者:开发团队
  • 技术支持邮箱:
  • 问题反馈:通过GitHub Issues提交
  • 功能建议:通过GitHub Discussions讨论
  • 文档改进:通过Pull Request贡献
  • 版本更新:查看CHANGELOG.md
  • API变更:查看API文档

参考资料

<<<<<<< HEAD


项目总结

本项目成功构建了一个完整的开源操作系统软件仓库依赖关系检测分析工具,具备如下特点:

  • 支持RPM包格式解析,依赖关系可视化完整
  • 具备跨架构检测能力,支持函数接口调用分析
  • 高性能分析引擎,用户友好的Web界面,实时数据更新,智能报告生成
  • 现代化可视化界面,交互式图表展示,响应式设计,多维度数据分析
  • 详细的Word报告导出,完整的项目文档,清晰的使用指南,全面的故障排除

=======


项目总结

本项目成功构建了一个完整的开源操作系统软件仓库依赖关系检测分析工具,具备如下特点:

  • 支持RPM包格式解析,依赖关系可视化完整
  • 具备跨架构检测能力,支持函数接口调用分析
  • 高性能分析引擎,用户友好的Web界面,实时数据更新,智能报告生成
  • 现代化可视化界面,交互式图表展示,响应式设计,多维度数据分析
  • 详细的Word报告导出,完整的项目文档,清晰的使用指南,全面的故障排除

257a004d2a9a7f2ea98141f6e46a4287f8a4fb67 通过本工具,用户可以高效检测和分析软件包依赖关系,为系统维护和升级提供重要支持。

关于
521.2 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号