Atom Flatpak 在包设置中使用沙盒运行时和可执行文件

Atom Flatpak 在包设置中使用沙盒运行时和可执行文件

我正在使用 Atom 的 flatpak 版本。我想安装一个 PHP 的 linting 包,这样更容易发现代码错误。但是它需要访问 php 二进制文件。

现在,由于这是一个 Flatpak,它是沙盒化的,所以我没有机会/usr/bin在短期内授予它对目录的正确访问权限,但我发现我可以使用名为的 PHP 7.4 的 Flatpak 运行时org.freedesktop.Sdk.Extension.php74,它应该可以满足我的需要。

我唯一剩下的问题是如何将其传递给包?提供给我的设置是一个路径文本字段,我通常会将路径传递给它/usr/bin/php,但我如何调用与之等效的 flatpak?

答案1

因此我找到了一些解决办法,以下就是我的发现。

事实证明php,传递 的正确方法是将其与路径 一起添加/var/run/host/usr/bin/phpX.X,其中X.X是您要使用的 PHP 的特定版本。在我的情况下,它是/var/run/host/usr/bin/php8.0

由于 Flatpak 沙箱/usr以有限的方式挂载目录,为了允许 flatpaks 访问他们可能需要的某些系统二进制文件,仅运行等效文件/usr/bin/php是不够的,需要具有特定版本号的特定二进制文件。

但是,仍然存在一个问题。Flatpak 沙箱本身似乎无法正确挂载东西,我相信这是一个已知问题。PHP二进制文件找不到两个 php 库 -libargon2和。我尝试更改以尝试正确包含它们,但无济于事。libsodiumLD_LIBRARY_PATH

该问题在 PHP 7.1 版中仍然存在。

最后我转向了 Atom 的 Debian 软件包,因为我无法解决这个问题,但是如果这个问题在 Flatpak 沙箱中得到解决,我就会回到那里,上面的解决方案已经足够了。

相关内容