问题标签 [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.
ubuntu - 如何使用 SNAP 安装 VSCode?ERROR= snap-confine 具有提升的权限
在 Ubuntu 16 Xenial 上。尝试安装 VSCode 。
看到错误 - 谷歌搜索,发现 snap 可能不适用于某些架构/
....登陆成功
在谷歌搜索了一些之后-在快照上看到了这个答案-论坛https://forum.snapcraft.io/t/snap-confine-has-elevated-permissions-and-is-not-confined-but-should-be-refusing -to-continue-to-avoid-permission-escalation-attacks/5557/6。因此
建议更改 apparmor 配置文件/检查 apparmor 中的snap条目,如下所示。不知道他们应该有什么效果。
我的快照版本如上所示。谢谢
packaging - 自托管快照包?
我正在打包和内部应用程序作为快照,并希望使用我们自己的 Intranet 服务器将其分发给客户。尽管我阅读了 snap 的文档,但它似乎只记录了通过官方 snapcraft.io 渠道进行的分发。有没有办法从 URL 下载快照?
请注意:我不关心这个问题的安全性。我也不是在询问 3rd 方服务器上的私有 snap 存储库。
python - 限制 python popen 子快照容器
我尝试将 python subprocess.Popen 进程配置为我构建的 snap 包。
为了了解snap包的创建,我决定为一个 markdown 编辑器构建一个 snap 容器,它内置在 python 中,我经常使用。我设法创建了一个 snapcraft.yaml 文件,我可以成功地安装和启动编辑器。
然而,编辑器允许用户打开第二个窗口,例如编辑第二个文件。它在内部调用subprocess.Popen(sys.argv[0])
,因此它创建了自己的子进程。
我未能将这个新过程限制在快照本身。
parent 和 child 上的 argv0 都设置为/snap/remarkable-deadolus/x34/bin/remarkable
,我通过创建一些调试输出进行了验证。
新进程找不到一些库,这些库显然是被主进程成功找到的(因为 snap 包安装了它们):
在调查时,我发现一些(环境)变量在主快照进程及其子进程的创建之间似乎有所不同。对父级中的调用print(sys.prefix)
产生/snap/remarkable-deadolus/x33/usr
. 然而它在孩子身上产生/usr
。
所以我的问题是如何将 python snap 程序的子进程限制在 snap 包中?
这是我到目前为止的进展:Deadolus Github Remarkable with snapcraft.yaml file
作为参考,我构建然后运行 snap 包的命令是:
在 snapcraft.yaml 文件中,我通过添加启用了严格限制
python - snapcraft 给出 'ascii' 编解码器无法解码位置 0 中的字节 0xd0:序数不在范围内(128)
我尝试在 snap 包中编译 Qt 5.13,但在启动它时出现以下错误:
我认为这与底层python代码中的一些国际化问题有关,所以试图改变构建顺序,做了很多其他的事情,但每次我们都得到上面的错误。
以下是 snapcraft 文件:
这是我运行时从中得到的输出:
SNAPCRAFT_ENABLE_DEVELOPER_DEBUG=yes SNAPCRAFT_BUILD_ENVIRONMENT_MEMORY=8G snapcraft --debug
(是的,由于编译器在构建 Qt 时崩溃,它需要大约 8GB 的内存)
这是尝试构建包的python脚本的堆栈跟踪:
有没有人对如何使它工作有任何想法?请注意,使用默认基础 (5.9) 附带的 Qtcore18
对我们的应用程序不利,因为在 5.13 中修复了一些错误,因此我们至少需要 5.13。
这个尝试构建的应用程序只是一个 helloworld 应用程序,它与我们得到的错误无关,但 snapcraft 要求它达到错误的阶段。
(如果您尝试对这个文件运行 snapcraft,请小心,Qt 在我的计算机上需要 4 - 5 个小时才能编译)
ubuntu - (google-play-music-desktop-player:8454): Gtk-WARNING **: 10:34:57.633: 无法打开显示: 0
我使用 Ubuntu 18.04。我已经安装了https://snapcraft.io/google-play-music-desktop-player 当我运行它时,系统日志中有错误:
其他 snap 应用程序运行没有任何问题,有人知道如何解决这个问题吗?
更新: 看起来这是一个错误。我向 GitHub 报告了这个问题https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/issues/3738
plugins - 当您为不同的操作系统创建应用程序快照时,snapcraft nodejs 插件如何处理 Node.js 环境?
我试图了解我用来创建 snap node.js 应用程序的 nodejs 插件如何处理 Node.js 环境?此应用程序中的示例:
我定义使用 Node.js v12.13.1 和 Yarn v1.21.1 午餐 snapcraft 命令:
现在我可以在安装了 Node.js v12.2.0 的机器(amd64 Ubuntu 16.04 LTS)上运行命令/服务,但我找不到 node.js env 不在多通道实例中,不在另一台安装了 Ubuntu Core 18 的机器上,我的意思是我不能以 node --version 等方式运行命令,甚至 snap 应用程序也不能运行,既不能命令也不能服务。
我发现在 RaspBerry Pi3 上安装的 Ubuntu Core 18 环境中挖掘的其他问题是:当我在文件夹 /snap//bin 中安装我的带有 nodejs 应用程序的 snap 时,我无法运行 ./node exec!我得到错误:
我的问题是:
- 为什么我得到 ./node 错误?
- my-snap-file.snap 将 Node.js v12.3.1 捆绑在 mysnap 中?
- 我如何测试 node.js 在 multipass 和其他我只安装了 snap 捆绑 node.js 的机器上使用正确的版本?
总价
ubuntu - `DllNotFoundException: libc` 尝试在 snap 包中运行单声道应用程序时
当尝试将单声道应用程序捆绑在 snap 包中时,当应用程序尝试发出简单的 HTTP 请求时,我会收到此异常:
snapcraft.yaml 看起来像这样:
我以这种方式创建快照:
我试图通过将与 libc 相关的包捆绑到 snap 中来解决这个问题,并将它们添加到stage-packages
:
但问题仍然存在。如果我尝试用布局映射这些:
然后我崩溃了:
也许 /usr/lib 映射太多了,但是如果我将其限制为:
然后我仍然得到 DllNotFoundException。
store - 如何在 MxLinux 上修复 snapd.socket no such file or directory 错误?
我一直在尝试使用安装几个应用程序sudo snap install <nameofapp>
但是每当我尝试这个时,我总是会遇到同样的错误:
error: cannot communicate with server: Post http://localhost/v2/snaps/standard-notes: dial unix /run/snapd.socket: connect: no such file or directory
我在 MXLINUX 请帮忙
node.js - 带 Snap 的 Nodejs
我已经从 snapcraft 商店安装了 nodejs -v 13。而且,现在我想删除该节点版本并切换到较低版本。在这里,我想知道如何删除它,因为“sudo apt-get purge nodejs”或“sudo apt-get remove nodejs”似乎不起作用。