背景介绍
oepkgs 全称开放软件包服务(Open External Packages Service),是一个为 openEuler 以及其他 Linux 发行版提供软件包服务和容器镜像服务的第三方社区。
oepkgs 社区提供两种开源软件包适配方式,第一种方式开源软件包的源码合入 src-oepkgs 组织仓下面,由 src-oepkgs 的构建服务对软件包进行构建
测试,兼容性测试,并进入 oepkgs 的主体仓库中。另一种方式用户通过网页快速构建软件包,软件包进入个人账户下面的某个仓库中。
开源软件引入oepkgs主仓总体流程
1. 获取到spec文件以及源码文件
2. 在openEuler上进行编译构建
3. 在openEuler上进行兼容性测试
4. 将已经适配好的spec文件以及源码文件存放在src-oepkgs仓库中(建仓流程详见rpm包构建及建仓流程)
1. 软件包spec及源码文件获取
1.1 在一些网站上找到软件包的src.rpm包,解压获取spec文件以及软件包的源码文件:
https://pkgs.org/
https://src.fedoraproject.org/projects/rpms/*
https://koji.fedoraproject.org/koji/packages
www.google.com
www.baidu.com
www.bing.com
以libvirt 4.5.0版本引入为例,在网上寻找src.rpm包的流程如下图所示:
rpm -i http://vault.centos.org/7.9.2009/os/Source/SPackages/libvirt-4.5.0-36.el7.src.rpm
如上图所示的~/rpmbuild/SPECS/
和 ~/rpmbuild/SOURCES/
目录下面分别存放了软件包的spec文件以及软件包的源码文件
2. 在openEuler上进行编译构建:
执行命令,安装构建工具:
yum install -y dnf-plugins-core rpm-build
执行命令,安装软件包的依赖包
# yum-builddep -y ~/rpmbuild/SPECS/*.spec
yum-builddep -y ~/rpmbuild/SPECS/libvirt.spec
执行命令,对软件包进行编译构建
# rpmbuild -ba ~/rpmbuild/SPECS/*.spec
rpmbuild -ba ~/rpmbuild/SPECS/libvirt.spec
编译构建通过就会在 ~/rpmbuild/RPMS/ 目录下面生成 rpm包
ls ~/rpmbuild/RPMS/*
3. 在openEuler上进行兼容性测试
执行命令,测试软件包的安装、卸载
yum localinstall ~/rpmbuild/RPMS/x86_64/*
yum remove *
执行命令,测试软件包的服务启停
systemctl start *
systemctl stop *