如何允许 flatpak 中的 GUI 应用程序运行 CLI 工具?

rug*_*ugk 8 flatpak

我能以某种方式让一个flatpak中运行的GUI应用程序允许访问,并在执行二进制/bin分别/var/bin

即使我允许完全系统访问 ( --filesystem=host) 它甚至无法在那里看到/找到文件。

我的用例是执行shellcheck.

rug*_*ugk 8

有不同的方法:

  • 如果您flatpak具有host访问权限,你可以如运行/usr/local/bin/example/var/run/host/usr/local/bin/example。即/usr/local安装到/var/run/host/usr/local.
  • 但是,由于库不在正确的位置等,这仍然可能会失败。因此,您要么需要调整 env 变量使其在那里工作,要么按照下面描述的方式进行。

在 flatpak 之外生成命令

您可以用来flatpak-spawn在不同的环境中运行命令。
但是,通常您希望在主机系统上执行命令,从而突破沙箱。为此,您显然需要削弱 flatpak 的沙箱。只需添加此权限:

flatpak override com.packagename.App --talk-name=org.freedesktop.Flatpak
Run Code Online (Sandbox Code Playgroud)

之后,您可以运行flatpak-spawn --host以从主机运行 flatpak 之外的命令。

现在,要真正在 GUI 中使用它,您希望有一些方法可以更改要在那里运行的二进制文件的路径。这可能会变得复杂,因为您需要传递额外的参数,最终您可能不得不编写小型包装器脚本。
就我而言,我确实做到了,您可以在此处找到它们。它们允许(在我的情况下)Atom(但可能使用任何 IDE)运行shellcheckgpg......