我想构建和打包一个特定的 Go 程序。与我从上游获得的相比,Ubuntu 18.04 和 Debian 9.5(实际上是 PVE 5.2)提供的上述程序的打包版本都相当旧。
为我的构建正确获取依赖项不是问题,构建 Debian 软件包也不是问题(去过那里,做过)。
我需要知道的是如何为我的包分配一个版本——它不会发布给其他任何人——这样如果包维护者发布了比我的包更新的版本,它将被安装并替换我的自己的软件包(一种这样的情况可能是 Ubuntu 的do-release-upgrade
)。
有没有办法在不破坏内部版本比较的情况下以这种方式“标记”一个包(dpkg --compare-versions
)?
我知道反向移植通常包含bpo
在包名称中(或者是版本?),但是很难找到所有类似“标签”的完整列表,所以我在想也许已经有一种方法可以实现这一点并且避免冲突。所以主要目标是遵守规则,同时获得我能得到的最新版本。
由于您正在打包新的上游版本,我会推荐一个版本的表单
其中 1.0 是上游版本。这里的思路如下:
0ubuntu
在此处看到);bpo
backports,deb
用于 Debian 稳定更新......);如果您随后需要提供仅包含打包修复的较新软件包,则您会遇到 +1。如果您打包更新的上游版本,您将酌情调整上游版本并再次从 +1 开始。
如果相同的上游或更新的上游最终被“正式”打包,它将是您本地版本的有效升级候选者:如果它是 Ubuntu 软件包,1.0-0ubuntu... 将在 1.0-0~ 之后排序,如果是 Debian 软件包,1.0-1 将排在 1.0-0 之后。