/bin
我可以以某种方式允许在 flatpak 中运行的 GUI 应用程序允许分别访问和执行二进制文件/var/bin
吗?
即使我允许完全系统访问(--filesystem=host
),它甚至无法在那里看到/找到文件。
我的用例是执行shellcheck
.
/bin
我可以以某种方式允许在 flatpak 中运行的 GUI 应用程序允许分别访问和执行二进制文件/var/bin
吗?
即使我允许完全系统访问(--filesystem=host
),它甚至无法在那里看到/找到文件。
我的用例是执行shellcheck
.
有不同的方法:
host
访问,你可以例如运行/usr/local/bin/example
./var/run/host/usr/local/bin/example
即/usr/local
安装到/var/run/host/usr/local
.在 flatpak 之外生成命令
您可以使用
flatpak-spawn
在不同的环境中运行命令。但是,通常您希望在主机系统上执行命令,从而突破沙箱。为此,您显然需要削弱 flatpak 的沙盒。只需添加此权限:
之后,您可以
flatpak-spawn --host
从主机运行以在 flatpak 之外运行命令。现在,要真正在 GUI 中使用它,您希望有一些方法可以更改要在其中运行的二进制文件的路径。这可能会变得复杂,因为您需要传递额外的参数,最终您可能不得不编写小型包装脚本。
就我而言,我确实做到了,你可以在这里找到它们。它们允许(在我的情况下)Atom(但任何 IDE 都可能)运行
shellcheck
或gpg
......您可以使用 org.freedesktop.Flatpak.Development Dbus 接口的 HostCommand 方法:https ://github.com/flatpak/flatpak/blob/master/data/org.freedesktop.Flatpak.xml#L43
使用 Python 的示例:https ://stackoverflow.com/questions/39494813/pass-file-descriptor-via-a-dbus-function-call-from-python-aka-call-flatpaks-ho