你如何使用snapcraft拉出你想要打包的二进制文件的依赖关系

时间:2016-10-22 22:10:30

标签: linux snapcraft

我正在尝试新的linux打包工具http://snapcraft.io/create/

它确实有一些文档,但它不是很成熟,并不包含所有内容。

我要做的是为我的二进制文件生成一个使用Qt框架编译的包,因此它依赖于.so文件的加载。我无法在文档中找到任何方法来说服snapcraft拉出所有这些依赖项并将它们添加到程序层次结构(已安装的squashfs)。

因此,为了“暂时修复”,我攻击了一个非常蹩脚的shell脚本,它在我的二进制文件上执行ldd并自行完成。这种“有点”有效,因为现在确实所有必需的库都在图像中,但是程序找不到它们,因为它们中的大多数都有自己的路径而不在根lib文件夹中/usr/lib

我尝试启动程序时遇到的错误示例是:

/snap/huggle/x1/usr/bin/huggle: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

但图书馆在那里:

/snap/huggle/x1/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1

它根本不知道如何找到它。另一方面,鉴于snapcraft被宣传为令人敬畏的简单愚蠢的打包工具,我觉得很奇怪包装C ++二进制文件这么简单的东西会非常复杂。我该怎么做呢?

0 个答案:

没有答案