问题标签 [snapcraft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1249 浏览

ubuntu - 如何构建运行可执行 jar 的 snap 包?

我有一个可执行的 jar 程序。这是一个JavaFX程序。它在 OpenJDK 8 及更高版本上运行良好。我想在 Ubuntu 的开发者门户中将它作为 snap 包发布。我目前将它打包为 deb 文件,但是,Ubuntu 不接受这些。我需要将其作为快照包提交。

这是我目前的障碍。我对 Snapcraft 完全陌生。我阅读了 http://snapcraft.io上的文档,它很好地概述了终端命令和 snap 包背后的理论。

我似乎仍然无法正确打包我的程序(编码我的 snapcraft.yaml)。我只需要包含的 openjdk-8-jre 依赖项和我的可执行 jar。我创建的 deb 包安装完美,并创建了一个带有图标的桌面文件,以便人们可以从菜单中运行它。有没有办法将它包含在 snap 包中?

感谢您的任何帮助!

0 投票
1 回答
370 浏览

snapcraft - Tcl 在 snap 包中找不到 init.tcl

在常规系统中,如果必须,我可以导出库以阻止 tcl 抱怨找不到 init.tcl。我正在构建一个快照包来分发 tcl。一旦构建和安装,我可以运行 tcl.tclsh(这是维护 snap 命名空间的形式),它会抱怨上述抱怨并停留在 tclsh 提示符中。我可以很好地运行 tcl 脚本。但是,我无法执行另一个名为 wish 的二进制文件。这具有快照名称 tcl.wish。这两个都在同一个快照中,并且有问题的文件 init.tcl 存在于库位置 tcl 抱怨找不到。我相信我需要在 tclsh 执行之前导出必要的库位置,以便它可以找到这个文件。我试过这个,包括这些路径的回声,所以我知道它被执行了。这有效,但仍然没有帮助。我想我只是被不止一件事难住了。我不是 tcl pro 并且 snappy 包是新的并且命令总是在不断发展。我可以使用组织命令将所有二进制文件移动到 /bin 并将所有库移动到 /lib,或者我可以将它们完全按照 tcl 的期望放置。我投票赞成将文件按预期放置。我的问题:

  1. tcl 和 tk 是否有一组明确定义的预期位置?开箱即用的理想设置?
  2. 我可以将 init.tcl 移动到它知道的路径中的位置吗?我避免将这些库路径放在 bashrc 中,因为这只会解决我的情况,但不会解决在他们的机器上安装它的人。运行快照包时应该进行任何路径设置......我认为。

对不起长度。我想明确表示,无论这是否重要,我们都是在一个活泼的环境中处理 tcl。我知道我错过了显而易见的事情,因为 snapcraft 应该将这些文件放在 .debs 告诉它的位置,并且我在计算机上的安装工作得很好。$ export -p 不显示任何 tcl 或 tk

0 投票
1 回答
969 浏览

ubuntu-16.04 - Snapcraft 放置默认配置文件

我正在尝试使用Snapcraft.io构建应用程序版本,并且几乎所有工作都已完成。
Snapcraft 已经编译了源代码,生成了 .snap 文件,包含了所有的依赖,等等。
但是,我被困在如何SNAP_USER_DATA在第一次安装应用程序后初始化文件夹中的一些配置文件。
我不想将文件放在默认的只读路径SNAP中,因为默认参数应该由用户修改,我还需要生成一些额外的文件,比如服务器证书。
所以我需要复制一些文件,并在第一次安装后运行一个脚本。

这可能吗?

谢谢。

0 投票
1 回答
493 浏览

python - 将 python venv 部署为 snap

我们有一个 python(3) venv rest api。在同一个 venv 中,我们还安装并配置了uwsgi运行 api 的应用程序服务器。我们正在寻找一种干净的方式来部署它。

到目前为止,我们正在部署的是一个简单的脚本,它创建 venv 从 pip 安装依赖项,然后运行应用程序。

我想知道使用 snap 是否可以很好地打包所有内容并简单地将它们安装在服务器上。

以这种方式部署 Web api 是否可能或一种好的做法?

谢谢你的时间。

0 投票
0 回答
473 浏览

linux - 如何使用 snapcraft 提取要打包的二进制文件的库依赖项

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

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

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

因此,为了“暂时解决这个问题”,我破解了一个非常蹩脚的 shell 脚本,它在我的二进制文件上执行 ldd 并自行执行此操作。这种“有点”有效,因为现在确实所有必要的库都在图像中,但是程序找不到它们,因为它们中的大多数都有自己的路径并且不在根 lib 文件夹中/usr/lib

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

但是图书馆在那里:

它只是不知道如何找到它。另一方面,鉴于 snapcraft 被宣传为很棒的简单愚蠢的打包工具,我觉得很奇怪,像打包 C++ 二进制文件这样简单的事情会如此复杂。我应该如何正确地做到这一点?

0 投票
1 回答
727 浏览

python - Snapcraft python only packages dependencies, not app?

I have a pretty standard python application, including setup.py and requirements.txt, which installs fine with pip:

I'd like to use snaps to build and deploy the application, and noticed that snapcraft only installs my app's dependencies, but not the app itself. It does build a wheel, but does not install it:

Does anyone know why myAPP is not part of the pip install?

For reference, the snapcraft.yaml is super simple at this stage, but I think should be all that's needed. Snapcraft is v2.27.1 on Ubuntu 16.04

Progress

I checked what packages are installed after building the application:

If I then manually re-run pip install -U myAPP, it does get included into site-packages. Will see if I can repeat the other build steps separately.

0 投票
1 回答
433 浏览

snapcraft - 如何在快照上下文之外从快照应用程序启动外部程序?

在 vala 中,我正在启动这样的基本操作系统设置:

但这失败了,因为我假设该过程以某种方式隔离运行。

有什么想法可以正确启动这个外部程序吗?

0 投票
1 回答
8019 浏览

linux - 使用 snap 安装包后出错

我使用snap包管理器安装包,但我总是遇到同样的错误,即使是简单的 hello world 示例:

运行 withsudo解决了hello程序的问题,但为什么我什至需要这样做sudo

顺便说一句,对于其他软件包(Meshlab、CloudCompare),它也不能使用sudo并给出不同的错误。例如:

snap 版本和 Ubuntu 发行版是:

0 投票
1 回答
1374 浏览

snapcraft - Snapcraft 自定义 LD_LIBRARY_PATH

构建 snap 包时,包装脚本会自动添加$SNAP/usr/libLD_LIBRARY_PATH.

在 docker 上构建我的包时,一些库(在本例中为liblapacklibblas)分别安装在子目录中:$SNAP/usr/lib/lapack$SNAP/usr/lib/libblas

尽管所有依赖项都stage-packages在我的 snapcraft.yaml 中定义,但上面的路径不包含在包装脚本中。

如何强制 snapcraft 自动将所有库的路径添加到包装脚本?

0 投票
1 回答
4180 浏览

alpine - 在 AlpineLinux 上 snapcraft 的可用性

我一直在寻找 snap 包管理系统和 alpine linux 之间的兼容性,但找不到任何相关资源。有没有计划让它在 alpine linux 上可用?在这方面有什么进展吗?