我在我的Ubuntu22.04笔记本电脑上编译了一个C++软件,并使用checkinstall来安装它。这个文件构建了相应的.deb文件,这很好。
但是现在我想将这个.deb文件安装到一个基于"Debian /Linux11(斗牛眼)“的码头容器中,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我如何在不必再次编译软件的情况下将这个.deb文件安装到我的容器中(这意味着将所有C++构建工具安装到我的容器中,这是我想要避免的……)?
发布于 2022-10-30 14:13:50
dpkg in Debian 不支持zstd压缩.为了能够在Debian中提取您的包,您需要转换它:
这将产生Debian的dpkg至少可以尝试处理的包。因为您的包是在Ubuntu22.04上构建的,所以很容易遇到依赖问题。
为了获得最好的结果,您应该在要运行它的平台上构建包。在您的示例中,这意味着要么使用ubuntu:22.04作为容器的基本映像,要么在Debian 11容器中重新构建包。
https://unix.stackexchange.com/questions/723013
复制相似问题