Flatpak Intellij Idea - 颠覆可执行文件的问题

Flatpak Intellij Idea - problem with subversion executable

在 Clear Linux 上使用 flatpak 安装 Intellij Idea 后,我无法使其 运行 svn 可执行。 我将 ---filesystem=host 添加到 flatpak 权限并尝试将可执行路径设置为 /run/host/usr/bin/svn 但没有成功(路径是 available/exists,尽管 Intellij 一直抱怨)

svn 命令通常可从系统终端获得。 当我尝试通过 Intellij Idea 内置终端执行 运行 /run/host/usr/bin/svn 命令时,出现库不可用的错误:

sh-5.0$/run/host/usr/bin/svn /run/host/usr/bin/svn:加载共享库时出错:libsvn_client-1.so.0:无法打开共享对象文件:没有这样的文件或目录

我也试过设置 flatpak-spawn。以下命令在 Intellij Idea 内置终端中运行良好:

/usr/bin/flatpak-spawn --host /usr/bin/svn,虽然当设置为 svn 可执行文件的路径时仍然给我 Intellij Idea 错误: "The path to Subversion executable is probably wrong"

有人可以帮忙让它工作吗?

TLDR:您可能需要将 svn 的路径添加到您的 IntelliJ 终端路径中。

详情: 看起来你遇到了路径问题。我有一个类似的问题 运行ning kubectl 运行ning PyCharm 从 Pop_Os.

上的 flatpak 安装

如果我尝试 运行 kubectl,我会看到以下内容:

我在 /usr/local/bin 中安装了 kubectl。这是我的 'normal' 终端的屏幕截图。

在 PyCharm 终端中,此位置安装在 /运行/host/usr/local/bin/ 下。

如果我在 PyCharm 终端查看我的路径,它不在那里。

所以我会将 /运行/host/usr/local/bin/ 添加到我的路径,然后我可以 运行 kubectl:

为了确保它始终出现,我需要将 PATH 添加到终端设置中:

我现在可以执行 /usr/local/bin 目录中的任何命令。

我找到了一个非常丑陋的解决方案来处理 JetBrains 系列的 SVN,它确实回答了这个问题。但是以一种非常迂回的方式。不幸的是,Alex Nelson 的解决方案对我不起作用。

您会认为 Flatpak 会附带一个有效的 SVN,因为它实际上是程序预期要求的一部分...

在终端中,您可以运行

cd ..
/usr/bin/flatpak-spawn --host vim ./svn

然后按 i 进入输入模式,然后将以下内容粘贴到打开的文本文件中(基本上它所做的是创建一个可执行文件并将其传递给 flatpak-spawn 调用):

#!/bin/bash

/usr/bin/flatpak-spawn --host /usr/bin/svn $@

从 vim 保存并退出(ESC,然后 :wq!)。使其可执行:

chmod +x svn

然后在 IntelliJ 的菜单中,将“svn 路径”设置为

/home/<yourusername>/IdeaProjects/svn

它对我尝试过的一切都有效...希望这能帮助其他正在为此苦苦挣扎的人。

我正在使用与 caluga 类似的解决方案。

#!/bin/sh
cd
exec /usr/bin/env -- flatpak-spawn --host /usr/bin/env -- svn "$@"
  • exec 使其替换包装脚本进程,以便包装脚本进程可以结束。
  • 我正在使用 /bin/sh 而不是 /bin/bash,因为不需要 bash 功能。
  • 使用 /usr/bin/env,但如果 PATH 设置正确,则可能不需要。
  • 如果参数中有空格,请记住引用“$@”。

我将它放在 ~/.local/bin 中并在 IntelliJ 设置中用它的绝对路径引用它(设置 -> 版本控制 -> Subversion -> Subversion 可执行文件的路径)。

我也 运行 遇到问题,IntelliJ 说 /app/idea-IC 路径不存在。发现 flatpak 之外的东西(即 svnenv)试图将目录更改为调用包装器脚本的工作目录(在 flatpak 内部)。使用 cd 允许包装器脚本更改为既存在于 flatpak 内部又存在于主机上的目录。

Fedora Silverblue 或工具箱用户可能希望在他们的工具箱中使用开发工具,在这种情况下,您可以这样做:

#!/bin/sh
cd
exec /usr/bin/env -- flatpak-spawn --host toolbox run svn "$@"