我正在阅读有关 PPA 之外的软件包分发的资料,发现 Snap/Flatpak/等是新的热潮。
我主要打包一些库软件,例如,拉帕克或者一些 Python 包。据我所知,Snap 以可执行文件和守护进程为中心。
Snaps 是否可以安装共享/动态库/usr/lib
?我在哪里可以找到相关文档?
答案1
您可以将库作为共享部分发布,也可以推送将库作为内容界面提供的快照。
共享部分
Snap 的组成包括部分。如果 snap 依赖于库,则可以将其定义为部件。部件可以共享,目前在维基百科,但计划建立更加精致的零件注册表。
因此,不应将库作为 snap 发布到 Ubuntu Store,而应将其发布到共享部件 wiki。然后,当 snap 想要使用该库(比如 lapack)时,它只需要在 snapcraft.yaml 文件的某个部分中添加以下内容:
after: [lapack]
该库将被捆绑在 snap 中,安装 snap 后它将位于 附近的某个地方/snap/my-snap/current/usr/lib
。
内容界面
还有另一种方法可以让你的库可供其他 snap 使用。你可以将你的库编写为一个 snap,它提供内容界面。然后其他 snap 可以使用该内容,这意味着它们将能够访问提供商共享的库。需要注意的是,该接口只会自动连接到来自同一发布者的 snap,如果您想使用第三方提供的内容,则需要手动干预。
这是 ubuntu-app-platform 库与默认 Ubuntu Personal 应用程序共享的方式:https://insights.ubuntu.com/2017/01/26/using-the-ubuntu-app-platform-content-interface-in-app-snaps-2/
回答你的最后一个问题,Snapshot 无法安装文件/usr/lib
。