在 Ubuntu 上使用 checkinstall 将 deb 文件构建安装到基于 Debian 的 docker 容器中

s.k*_*s.k 1 ubuntu debian dpkg checkinstall deb

我在我的Ubuntu 22.04笔记本电脑上编译了一个C++软件,并用于checkinstall安装它。这会构建相应的.deb文件,这很好。

但现在我想将该.deb文件安装到基于“Debian GNU/Linux 11 (bullseye)”的 docker 容器中,并dpkg显示此错误:

# dpkg --install mypackage-8.0.0_20221030-1_amd64.deb 
dpkg-deb: error: archive 'mypackage-8.0.0_20221030-1_amd64.deb' uses unknown compression for member 'control.tar.zst', giving up
dpkg: error processing archive mypackage-8.0.0_20221030-1_amd64.deb (--install):
 dpkg-deb --control subprocess returned error exit status 2
Errors were encountered while processing:
 mypackage-8.0.0_20221030-1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

如何将此.deb文件安装到我的容器中,而无需再次编译软件(这意味着将所有 C++ 构建工具安装到我的容器中,这是我想避免的......)?

Ste*_*itt 6

dpkg在 Debian 中,\xe2\x80\x99t 不支持zstd压缩。为了能够在 Debian 中提取您的软件包,您需要将其转换:

\n\n

dpkg这将生成一个 Debian\xe2\x80\x99s至少可以尝试处理的包。由于您的软件包是在 Ubuntu 22.04 上构建的,因此您\xe2\x80\x99 很容易遇到依赖性问题。

\n

为了获得最佳结果,您确实应该在要运行该包的平台上构建该包。就您而言,这意味着要么用作ubuntu:22.04您的容器\xe2\x80\x99s 基础映像,要么在 Debian 11 容器中重建您的软件包。

\n