Jor*_*are 12 pdf google-chrome evince
正如在论坛中的另一个线程中所指示的那样,我打开了 /usr/share/applications/mimeinfo.cache 文件以检查正确的引用。并注意到这似乎不是问题,甚至有 3 个可选的浏览器可供使用。
x-scheme-handler/http=google-chrome.desktop;chromium-browser.desktop;firefox.desktop;
x-scheme-handler/https=google-chrome.desktop;chromium-browser.desktop;firefox.desktop;
Run Code Online (Sandbox Code Playgroud)
我已经使用终端中的“which”命令检查了程序是否正确命名,如下所示:
$ which google-chrome
$ /usr/bin/google-chrome
Run Code Online (Sandbox Code Playgroud)
所以 google-chrome 应该是第一个选项,但打开 url 的命令似乎并没有到达程序,无论如何都没有到达第二个或第三个选项。
此外,“帮助”菜单中的“在线获取帮助...”命令也不起作用。所以也不是特定文档文件的问题。
我正在运行 Ubuntu 12.04 LTS。如果您需要询问更多相关细节,请这样做。对如何解决这个问题有各种意见会很好,谢谢:-)
更新:我按照要求从终端运行了 evince。
这是我尝试打开链接时得到的:
/opt/google/chrome/google-chrome: line 42: /opt/google/chrome/chrome: Permission denied
/opt/google/chrome/google-chrome: line 42: /opt/google/chrome/chrome: Success
Run Code Online (Sandbox Code Playgroud)
即使我的错误日志不同,我是否应该尝试您建议的修复?
更新:尝试了@maggotbrain 的解决方案和 BINGO,现在我可以更快地学习 pdf 参考文献,感谢兄弟!
上述解决方案都不适合我,但是这确实有效:
查看当前忽略列表中的内容
ls -la /etc/apparmor.d/disable
Run Code Online (Sandbox Code Playgroud)
现在将文档查看器(evince)添加到该列表中
sudo ln -s /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable/usr.bin.evince
Run Code Online (Sandbox Code Playgroud)
参与变革
sudo service apparmor restart
Run Code Online (Sandbox Code Playgroud)
您可能会遇到apparmor 处理外部 URL 的错误。
我在 evince 中打开 URL 的问题导致每当单击 pdf 文档中的 URL 时(在命令行上)生成以下错误:
(evince:32091): EvinceView-CRITICAL **: ev_document_model_set_document: assertion
`EV_IS_DOCUMENT (document)' failed
/usr/lib/chromium-browser/chromium-browser-sandbox: error while loading shared
libraries: libpthread.so.0: failed to map segment from shared object: Permission denied
Run Code Online (Sandbox Code Playgroud)
正如此评论中所建议的,我可以通过执行以下操作来使用 chromium 解决此问题:
将这些行添加到 /etc/apparmor.d/abstractions/ubuntu-helpers 行“/usr/lib*/{,* /} Pixr,”之后:
# From https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/964510/comments/12
# While the chromium and chrome sandboxes are setuid root, they only link
# in limited libraries so glibc's secure execution should be enough to not
# require the santized_helper (ie, LD_PRELOAD will only use standard system
# paths (man ld.so)).
/usr/lib/chromium-browser/chromium-browser-sandbox PUxr,
/opt/google/chrome/chrome-sandbox PUxr,
/opt/google/chrome/google-chrome Pixr,
/opt/google/chrome/chrome Pixr,
/opt/google/chrome/lib*.so{,.*} m,
Run Code Online (Sandbox Code Playgroud)
最后,运行sudo apparmor_parser -T -W -r /etc/apparmor.d/usr.bin.evince