当我在 Evince 中单击 PDF 文档中的链接时,它不起作用。相反,我只看到光标变成了一个旋转器,并且终端中出现了一条消息:
env: ‘/snap/bin/firefox’: Permission denied
我发现最接近的是以下针对 evince 本身的错误报告https://gitlab.gnome.org/GNOME/evince/-/issues/1090
这表明问题出在 AppArmor 配置文件中,它不允许 Evince 在主目录中运行程序。
我该如何解决这个问题?
我使用 Ubuntu 21.10,并从 Snaps 安装了 Firefox
2023 年 11 月更新该错误已在 Ubuntu 23.10 中修复。有关错误讨论,请参阅https://bugs.launchpad.net/ubuntu/+source/evince/+bug/1794064
答案1
此问题env: ‘/snap/bin/firefox’: Permission denied
或通过终端启动的env: ‘/snap/bin/chromium’: Permission denied
问题evince
可以追溯到apparmor
。正在执行tail -f /var/log/syslog | grep -i apparmor
(从这里),你可能会发现有如下一行apparmor="DENIED" operation="exec" name="/usr/bin/snap" profile="/usr/bin/evince" comm="env"
。
这个问题可以通过调整配置/etc/apparmor.d/usr.bin.evince
文件或者修改抽象来修复(/etc/apparmor.d/abstractions/ubuntu-helpers
例如/etc/apparmor.d/abstractions/ubuntu-browsers
这里或者那里)。
对我来说,一个彻底的改变是有效的,但可能会导致安全问题,那就是禁用apparmor
它。它写道evince
sudo ln -s /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable/usr.bin.evince
那里这样sudo service apparmor restart
就可以进行更改,但是就我的情况而言,需要完全重启计算机。
编辑:一个不太激进的举动可能是在块的/usr/bin/snap Ux,
末尾添加一行(见/usr/bin/evince {...}
/etc/apparmor.d/usr.bin.evince
这里)并使用 重新启动服务sudo service apparmor restart
。不过,这可能仍然不是完全安全的。
答案2
尝试从 APT 卸载 Evince 并从 Snap 安装它:
sudo apt remote evince
sudo snap install evince
您可能需要注销并重新登录。您可能还需要重新配置文件类型关联。
这是在错误报告讨论。显然,目前,您需要 APT 的 Evince 和浏览器,或者 snap 的两者。