我有一个 C++ 二进制应用程序,我将它打包到我的 Ubuntu 20.04 上的“deb”包中。这个“deb”包有几个我定义的依赖项:
$ dpkg -I my-package-1.0.0.deb
new Debian package, version 2.0.
...
Package: my-package
Version: 1.0.0
Architecture: amd64
Depends: libfreetype6,libgcc-s1,libgl1,libglew2.1,libglvnd0,libglx0,...
...
这个包运行良好,除非我尝试在 Ubuntu 18.04 上安装它:
$ sudo dpkg -i my-package-1.0.0.deb
Selecting previously unselected package my-package.
(Reading database ... 198305 files and directories currently installed.)
Preparing to unpack my-package-1.0.0.deb ...
Unpacking my-package (1.0.0) ...
dpkg: dependency problems prevent configuration of my-package:
my-package depends on libgcc-s1; however:
Package libgcc-s1 is not installed.
my-package depends on libglew2.1; however:
Package libglew2.1 is not installed.
这些错误包(libgcc-s1、libglew2.1)在 Ubuntu 18.04 中不存在或存在但版本不同。因此,我有一个普遍的问题:是否可以创建与多个版本的 Ubuntu 兼容的“deb”包?如何 ?或者唯一的解决方案是为每个版本的 Ubuntu(以及每个其他 Linux 发行版)构建一个包?当存在依赖项时,构建“deb”包最常用的策略是什么?