1

这里开始,当使用 OpenSUSE Tumbleweed 时,我无法flatpak-builder编译子模块依赖项。在使用 Vala 依赖项 Gee 和 GXml 在 Gnome Builder 中开发控制台应用程序时,我首先注意到了这个问题。

作为测试,我安装了org.gnome.Books.json并发出了以下命令(如此所述):

$ flatpak-builder --repo=repo books-app org.gnome.Books.json 

结果与我在开发自己的应用程序时观察到的相同,致命错误:

Initializing build dir
Committing stage init to cache
Starting build of org.gnome.Books
fuse: failed to exec fusermount: Permission denied

<more stuff>

Cloning into '/home/robin/Projects-CSim/org.gnome.books/.flatpak-builder/build/gnome-online-accounts-1/telepathy-account-widgets'...
Submodule path 'telepathy-account-widgets': checked out '7d944b79961dfb6291110ceb27597a224d329b36'
error: Build directory /home/<user>/Projects/org.gnome.books/.flatpak-builder/rofiles/rofiles-D4R4cZ not initialized, use flatpak build-init
Error: module gnome-online-accounts: module gnome-online-accounts: Child process exited with code 1

实际上,它无法构建第一个子模块。这与我在项目中从 Gnome-Builder 调用时观察到的行为相同;它下载但未能构建第一个子模块 - 在这种情况下它是 libgee-0.8。

我在这里仔细检查了 Flatpak (V0.10.4) 安装,但找不到解决方案。我从文档中了解到调用flatpak-builder应该自动调用flatpak build-init.

这令人担忧,因为 Gnome-Builder 似乎使用 Flatpak 作为默认打包程序。有什么建议么?

4

1 回答 1

1

问题不在于 Flatpak。这是 Flatpak 和fuse之间的冲突。出于某种原因,命令行中的 valac 或 meson 没有发生这种情况,只有 Flatpak。

这里我们找到一个解决方案:

# chmod +x /usr/bin/fusermount

这是 OpenSUSE Tumbleweed 的特性吗?无论如何,在进行此更改后,Flatpak 会按预期构建子模块。壮丽的!

但是,不确定这方面的安全性 - 欢迎提出任何意见。

于 2018-02-23T11:18:18.183 回答