我正在尝试新的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 ++二进制文件这么简单的东西会非常复杂。我该怎么做呢?