每当我启动 Atom 时,它都会打开两个文件,一个名为:
ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=false
Run Code Online (Sandbox Code Playgroud)
而另一个:
/usr/bin/atom
Run Code Online (Sandbox Code Playgroud)
这真的很烦人,我不明白如何解决它。据我所知,这是某种环境配置错误,但我找不到导致它的原因。
Ita*_*dev 60
我要做几个假设。您在 Ubuntu 上运行并且您已经通过 Snap 安装了 Atom。
如果这些假设是正确的,则问题的原因是来自 Snap 包作者的应用程序菜单项配置错误。
要修复它,您只需要运行以下命令:
sudo sed -i 's/Exec=env BAMF_DESKTOP_FILE_HINT=\/var\/lib\/snapd\/desktop\/applications\/atom_atom.desktop \/snap\/bin\/atom ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=false \/usr\/bin\/atom %F/Exec=env BAMF_DESKTOP_FILE_HINT=\/var\/lib\/snapd\/desktop\/applications\/atom_atom.desktop ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=false \/snap\/bin\/atom %F/' /var/lib/snapd/desktop/applications/atom_atom.desktop
Run Code Online (Sandbox Code Playgroud)
TL;博士{
这是导致问题的原因以及上述命令的作用的详细说明。如果自从编写答案以来文件已更改,这可能很有用。
该错误的实际原因是此菜单项文件:
/var/lib/snapd/desktop/applications/atom_atom.desktop
Run Code Online (Sandbox Code Playgroud)
它有一个拼写错误,在调用atom可执行文件后设置了环境变量应该是什么,导致 Atom 将其视为它应该打开的文件形式的参数。
/var/lib/snapd/desktop/applications/atom_atom.desktop
Run Code Online (Sandbox Code Playgroud)
它应该是:
# ? Executable ? Not an environment variable ? Not an executable
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/atom_atom.desktop /snap/bin/atom ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=false /usr/bin/atom %F
Run Code Online (Sandbox Code Playgroud)
上述解决方案sed用于搜索和替换文件并修复问题。
}
注意:该命令将一直有效,直到 Snap 作者更新菜单项文件 (.desktop) 时,希望问题已得到解决。