Debian维护者如何实现VCS-Git动态版本控制,无需每次更新编辑仓库文件?
期望工作流程
- 为Debian维护者包创建工具编写
debian/control文件。 - 定期更新GitHub仓库的releases。
- 无需修改
debian/control中的Version:值,让包构建工具在构建时从Git仓库或GitHub releases自动获取版本信息。
Arch Linux无需依赖releases就能轻松实现这个功能;Debian可以做到吗?
详细说明
Arch Linux的包构建方式
在Arch Linux的PKGBUILD文件(用于makepkg工具)中:
- 版本(
pkgver=变量)可通过pkgver()函数动态设置。 - 这实现了包版本的自动化:如果基于Git等版本控制系统,只需要更新仓库就能自动更新AUR包的版本。
Arch能做到,Debian可以吗?
Arch Linux的包版本控制自动化程度很高,PKGBUILD脚本编写完成后无需再修改。那Debian能不能像Arch一样,在包构建时从版本控制系统源自动获取版本?如果可以,具体怎么实现,能做到什么程度?
注意:使用大写DEBIAN/目录、基于dpkg-deb工具的Debian包肯定没法这么做,但使用小写debian/目录、基于dpkg-buildpackage工具的“维护者”结构包,或许可以从Git仓库或GitHub releases获取信息来生成DEBIAN/目录,进而构建包。
这可能需要发布GitHub releases,让dpkg-buildpackage通过debian/watch读取版本信息。
Debian的情况如何?
- Debian有没有类似Arch Linux
PKGBUILD里pkgver()函数的、基于版本控制系统(如Git)的动态版本控制功能?- 能不能通过
debian/control或debian/watch实现? - 或者,实现该功能需要什么文件结构和内容?
- 能不能通过
- 还是说,每次版本控制系统/Git仓库更新发布新版本时,必须手动修改Debian仓库中
DEBIAN/control的Version:字段?
类似问题(针对RPM)
- RPM包构建的VCS-Git版本控制无需每次更新编辑仓库文件
略微相关的问题
- git-buildpackage与dpkg-buildpackage的区别是什么?
内容的提问来源于stack exchange,提问作者Jesse
相关产品推荐
相关产品推荐

