# pkg-mapping-lcy **Repository Path**: liulxb/pkg-mapping-lcy ## Basic Information - **Project Name**: pkg-mapping-lcy - **Description**: 构建跨操作系统的软件包映射。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-10-16 - **Last Updated**: 2024-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pkg-mapping-lcy #### 介绍 构建跨操作系统的软件包映射,便于软件包迁移。目前可支持如下操作系统平台: CentOS opensuse openEuler Fedora Debian Ubuntu Archlinux 各个操作系统的不同版本可由用户自行构建映射。部分功能对应的代码可能因为操作系统版本的不同需要用户自行微调。 #### 软件架构 本系统由三个模块构成:数据获取模块、映射构建模块和手工校验(算法优化)模块。 (1)数据获取模块:包括原始软件包源码包和二进制包的下载,和源码包、二进制包的特征抽取。均以脚本形式体现 (1.1)get_package文件夹中为获取不同操作系统平台软件源码包和二进制包的脚本 (1.2)unzip_package文件夹中为解压不同操作系统平台软件源码包和二进制包的脚本 (1.3)feature_extract文件夹中为从源码包和二进制包中抽取软件包特征的脚本 (2)映射构建模块:主要功能代码在package_mapping中。其借助es数据库构建不同操作系统之间软件包的映射。首先将不同操作系统中软件包提取出来的源码包特征和二进制包特征导入ES数据库,然后借助ES的检索功能为源软件包查询目标平台上的对应软件包,返回Top K的候选包。最后使用自定义的匹配算法,从Top K个候选包中筛选出最终结果,期间会计算源软件包和候选软件包之间的相似度得分。这个模块的最终输出是不同平台之间的包映射结果。 (3)手工校验模块:主要功能代码在interact文件中。这个模块的主要功能是通过用户自行组织的测试数据检验现行第二个模块中映射构建算法的准确度,并通过观察错误情况,为修正第二部分的匹配算法提供指导。 #### 安装教程 (1)数据获取模块无需安装(但需要安装python,版本最低为3.6),直接运行相应shell或python脚本即可,需关注数据存储的目录; (2)映射构建模块需要先安装ES数据库和python(版本最低3.6),运行相关python脚本即可,相关输入有提示信息; (3)手工校验模块需要先安装ES数据库和python(版本最低3.6),且需要依赖映射构建模块在ES数据库中的输出;根据使用说明执行python脚本即可。 #### 使用手册 详见User's Manual.md文件。软件包相关设计文档参见 /doc 目录下各文件。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request