如何为旧操作系统重新打包 deb 包?

如何为旧操作系统重新打包 deb 包?

我知道如何提取包,进行一些小的更改,然后重新打包它。我想知道如果您要重新打包 deb 软件包以使其与旧操作系统版本兼容,是否需要做一些特殊的事情。

例如,我想在 Ubuntu 12 上升级 xyz 软件包,但 xyz 软件包仅在 Ubuntu 14 上可用。我可以修改控制文件将 Utopic Unicorn 更改为 Precise Pangolin 吗?

答案1

如果您想从较新的系统获取软件包并安装在较旧的系统上,您将获得未满足的依赖项。您可以在 部分检查控制文件中的依赖关系Depends:。您可以尝试通过升级来解决依赖关系,但这样做可能会破坏依赖于旧版本的其他应用程序。如果您能设法获得它们,您可以重建软件包或尝试从源代码安装此软件包。

答案2

如果包中已经编译了代码,则大多数情况下您需要重新构建它。

关于如何做到这一点的简短摘要:

为此,请下载来源在 Ubuntu 14.04 或 14.10(无论您所说的“Ubuntu 14”是什么意思)上打包apt-get source -d packagename并复制下载的文件,一个.dsc,通常一个.debian.tar.xz.debian.tar.gz(有时仍然是一个.diff.gz),通常一个.orig.tar.gz到具有较旧 Ubuntu 版本的计算机上(我假设 Ubuntu 12.04 自12.10 不再支持)。

dpkg-source -x file.dsc在那里,使用复制的文件(如包中的以下工具dpkg-dev)解压源包.dsc并更改到创建的目录。

然后检查是否安装了所有构建依赖项dpkg-checkbuilddeps,如有必要,安装缺少的依赖项。

(可选)运行dch --bpo以添加适当的变更日志条目和版本号,具体取决于向后移植的正确程度。

然后运行dpkg-buildpackage -b重建包。

相关内容