【发布时间】:2017-11-22 19:54:44
【问题描述】:
我正在为我的项目构建一个 snap 包,我有一个我只想编译的库。即只有/configure && make
不是:/configure && make && make install
当我在 Ubuntu snap 中搜索它的文档时,我发现:https://snapcraft.io/docs/reference/plugins/autotools
但我找不到任何可以跳过make install 部分的内容。谁能建议我怎么做?在make install 之后可能是一种肮脏的方式,我将添加一个shell 脚本来递归删除make install 生成的文件,然后继续进行应用程序代码编译。但我认为应该有一个很好的方法来做到这一点。
所以请让我知道当我运行snapcraft 来构建快照包时是否有任何方法可以跳过这个make install。
【问题讨论】:
-
我对snap不太熟悉,但是我做过很多其他格式的打包,你的建议听起来很可疑。通过跳过
make install,您希望完成什么?在这种情况下,您认为包装中会包含什么?因为我的第一个猜测是“什么都没有”。 -
我只想编译它,我会将编译后的库与我的代码链接,然后我会安装它。我也不想安装库二进制文件。这就是我想要达到的目标。 lib 的 make install 会将库二进制文件安装到特定文件夹中,该文件夹也打包到该快照中。我不想那样做。希望我能够解释“可疑”部分
-
您似乎在针对系统工作。将库(-ies)构建为 shared 库是很自然的,即使它们专用于您正在打包的应用程序,并动态链接它们。在这种情况下,您确实需要打包库二进制文件。该模型通常很常见,并且似乎是 snap 的特别目标。
-
如果您要静态链接应用程序,则不需要 snap。它与大多数其他打包格式的主要区别在于它将依赖项(即共享库)与需要它们的应用程序一起打包。
-
@JohnBollinger 反对系统?并不真地。我不希望该库成为共享库。我只想将我的应用程序作为一个 snap 应用程序编译和发布。我可以通过肮脏的黑客来做到这一点。但我想以更好的方式做到这一点。我只是想知道如何通过 snap 方式完成。
标签: ubuntu autotools snapcraft