[software development] 推荐open build service打包,并浅谈一点
Tofloor
poster avatar
depend
deepin
2023-08-16 19:29
Author

浅谈如何认识open build service的,最近在研究软件打包分发和发布的相关知识,发现了很多hub,类如flatpak、aur、snap相关的hub,又了解了很多打包的规则文件,PKGBUILD、debian的Control加rule、rpm的.spec文件等。

当软件分发需要打包的时候苦于没有其他架构的机器和对红帽系列打包的了解。于是发现了openSuse提供的open build service

然后惊奇的发现,open build service能够打debian的包,并且提供了多种架构,那么就解决了我们苦于没有机器的问题

槽点:

新的版本需要压缩源文件、压缩debian文件夹。然后再写一个与control文件非常类似的.dsc文件,参考

https://build.opensuse.org/package/show/home:liuminghang/fantascene-debian

这个规则贼离谱的事如果对ffmpeg mpv等有依赖,对debian12 debian10的依赖不一样

image.png

avcodec这个更新机制就是大写的离谱。debian10是avcodec58 debian12是avcodec59,就会出现这样

所以我建了多个仓库编译debian10 12等等

还有个槽点:

更新的时候dsc也需要更新,因为需要写文件的md5码和名称,不过,又不是不能用。

当然他本来是red hat系列的,估计支持debian肯定没有rpm好,rpm打包需要.change文件和.spec文件,和rpm本地差不多,

有个地方就是我因为不了解,所以发现了fedora和open suse有很多包的依赖可以说大不相同,各走各的阳关道那种,比如一个库叫libXXX,另外一个就是XXX之类的,所以一般不太兼容,只有另外建立仓库写对应的规则。

总结:能够帮你在线打包,并且可以分发

举例:

https://software.opensuse.org//download.html?project=home%3Aliuminghang&package=fantascene-dynamic-wallpaper

去玩了就知道了,而且感觉在这个网站下载包并不慢,可以作为分发的一个点,替代网盘分发

并且提供个人源形式,你在上面更新了包,源里面也可以更新,且各个发行版独立,大概率不存在冲突问题

image.png

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
2023-08-16 21:02
#1

https://build.deepin.com/

Reply View the author
depend
deepin
2023-08-16 21:35
#2
神末shenmo

https://build.deepin.com/

joy ,一模一样,哈哈

Reply View the author
depend
deepin
2023-08-16 21:36
#3
神末shenmo

https://build.deepin.com/

没有注册

Reply View the author
kero990
deepin
2024-05-07 10:52
#4

我上次也发现obs了,主因是github actions不能编译非x86架构,而obs可以

不过我研究了一天也没搞明白怎么编译。它似乎需要标准debian源码包才能编译成deb

常见的开源项目,比如autoconf的,configure--make的,cmake的,qmake的我都不知道咋编译。

Reply View the author
depend
deepin
2024-05-07 16:39
#5
kero990

我上次也发现obs了,主因是github actions不能编译非x86架构,而obs可以

不过我研究了一天也没搞明白怎么编译。它似乎需要标准debian源码包才能编译成deb

常见的开源项目,比如autoconf的,configure--make的,cmake的,qmake的我都不知道咋编译。

只要满足dpkg-buildpackage -b -us -uc能编译,然后写上对应的spec(rpm包管理系统),debian包类别的是dsc文件

写起来和control文件类似,
image.png

Reply View the author
傻狍子
deepin
2024-08-09 09:28
#6

楼主您好,我现在只有x86的机器,但是我想编译x86架构和arm架构的软件包,可以做到吗用OBS,官网文档有这部分说明吗?

Reply View the author
depend
deepin
2024-08-09 15:24
#7
傻狍子

楼主您好,我现在只有x86的机器,但是我想编译x86架构和arm架构的软件包,可以做到吗用OBS,官网文档有这部分说明吗?

可以,obs是他自己的虚拟机,和你自己的机器没关系,你只需要提供编译的代码和按照规则写好你的dsc文件即可,dsc和control类似,你可以先把你的源文件放到上面,慢慢该dsc,因为每一次变动,都会开启虚拟机编译和报错信息,提示你该处理哪些

Reply View the author
depend
deepin
2024-08-09 15:26
#8
傻狍子

楼主您好,我现在只有x86的机器,但是我想编译x86架构和arm架构的软件包,可以做到吗用OBS,官网文档有这部分说明吗?

image.png

Reply View the author
depend
deepin
2024-08-09 15:27
#9
depend

image.png

这是我最常用的脚本,就是压缩,然后把两个压缩包的md5列出

image.png

Reply View the author