# requireNet **Repository Path**: zhoufj2022/requireNet ## Basic Information - **Project Name**: requireNet - **Description**: 软件包依赖全景视图后端开发 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-05 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 软件包依赖全景分析系统 一个用于解析RPM软件包依赖关系并提供全景视图的后端系统,支持多操作系统/架构的数据聚合与智能查询。 ## 📦 功能特性 - **多格式解析**:支持解析RPM仓库XML元数据文件 - **跨平台数据**:整合不同操作系统(OpenEuler/Fedora)和架构(x86_64/aarch64/riscv64)的软件包信息 - **智能依赖分析**:自动处理依赖情况和父子包关系 - **高效API服务**:基于FastAPI提供高性能RESTful接口,支持: - 多维度过滤(状态/架构/OS版本) - 依赖关系合并展示 ## 🚀 快速开始 ### 环境要求 - Python 3.10+ - MySQL 8.0+ - pip 25.0+ ### 安装步骤 1. **安装依赖** ```bash pip install -r requirements.txt ``` 2. **数据库配置** ```sql -- 创建数据库用户 CREATE USER 'pkgnet0'@'localhost' IDENTIFIED BY 'passWord'; GRANT ALL PRIVILEGES ON pkgnet.* TO 'pkgnet0'@'localhost'; -- 初始化表结构 mysql -u pkgnet0 -p < createTable.sql ``` 3. **修改配置** 编辑 `config.py` 文件: ```python DB_HOST = "localhost" # 数据库地址 DB_USER = "pkgnet0" # 数据库用户 DB_PASSWORD = "passWord" # 数据库密码 HOST = "0.0.0.0" # API监听地址 PORT = 8000 # API服务端口 ``` ### 数据导入 1. 将RPM元数据XML文件放置于 `data/` 目录 2. 运行解析器: ```bash python rpm_xml_parser.py ``` ### 启动服务 ```bash python main.py ``` 访问 http://HOST:PORT/docs 查看交互式API文档 ## 📡 API接口 ### 查询软件包信息 **端点**:`POST /v1/packages` **请求示例**: ```json { "status": [5], "arch": ["aarch64"], "os": ["OpenEuler:25.03"], "is_merge": true } ``` **响应字段**: | 字段 | 说明 | |---------|-------------------------------| | deps | 依赖包列表(合并后) | | versions| 各OS版本的构建信息 | | merge | 父子包合并关系(is_merge=true时返回)|