我可以用 evince 打开 pdf 文件,但无法在浏览器中打开任何链接。
我找到了这个几年前的链接:
在 evince 文档查看器中单击的超链接无法打开,有什么解决方法吗?
但是我的 /etc/apparmor.d/abstractions/ubuntu-helpers 文件不包含提到的引用“/usr/lib*/{,*/} Pixr,”
# Lenient profile that is intended to be used when 'Ux' is desired but
# does not provide enough environment sanitizing. This effectively is an
# open profile that blacklists certain known dangerous files and also
# does not allow any capabilities. For example, it will not allow 'm' on files
# owned be the user invoking the program. While this provides some additional
# protection, please use with care as applications running under this profile
# are effectively running without any AppArmor protection. Use this profile
# only if the process absolutely must be run (effectively) unconfined.
#
# Usage:
# Because this abstraction defines the sanitized_helper profile, it must only
# be #included once. Therefore this abstraction should typically not be
# included in other abstractions so as to avoid parser errors regarding
# multiple definitions.
#
# Limitations:
# 1. This does not work for root owned processes, because of the way we use
# owner matching in the sanitized helper. We could do a better job with
# this to support root, but it would make the policy harder to understand
# and going unconfined as root is not desirable any way.
#
# 2. For this sanitized_helper to work, the program running in the sanitized
# environment must open symlinks directly in order for AppArmor to mediate
# it. This is confirmed to work with:
# - compiled code which can load shared libraries
# - python imports
# It is known not to work with:
# - perl includes
# 3. Sanitizing ruby and java
#
# Use at your own risk. This profile was developed as an interim workaround for
# LP: #851986 until AppArmor utilizes proper environment filtering.
profile sanitized_helper {
#include <abstractions/base>
#include <abstractions/X>
# Allow all networking
network inet,
network inet6,
# Allow all DBus communications
#include <abstractions/dbus-session-strict>
#include <abstractions/dbus-strict>
dbus,
# Needed for Google Chrome
ptrace (trace) peer=**//sanitized_helper,
# Allow exec of anything, but under this profile. Allow transition
# to other profiles if they exist.
/{usr/,usr/local/,}{bin,sbin}/* Pixr,
# Allow exec of libexec applications in /usr/lib* and /usr/local/lib*
/usr/{,local/}lib*/{,**/}* Pixr,
# Allow exec of software-center scripts. We may need to allow wider
# permissions for /usr/share, but for now just do this. (LP: #972367)
/usr/share/software-center/* Pixr,
# Allow exec of texlive font build scripts (LP: #1010909)
/usr/share/texlive/texmf{,-dist}/web2c/{,**/}* Pixr,
# 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,
/usr/lib/chromium{,-browser}/chrome-sandbox PUxr,
/opt/google/chrome{,-beta,-unstable}/chrome-sandbox PUxr,
/opt/google/chrome{,-beta,-unstable}/google-chrome Pixr,
/opt/google/chrome{,-beta,-unstable}/chrome Pixr,
/opt/google/chrome{,-beta,-unstable}/{,**/}lib*.so{,.*} m,
# Full access
/ r,
/** rwkl,
/{,usr/,usr/local/}lib{,32,64}/{,**/}*.so{,.*} m,
# Dangerous files
audit deny owner /**/* m, # compiled libraries
audit deny owner /**/*.py* r, # python imports
}
任何想法?
答案1
我喜欢 evince,它非常适合作为偶尔文档的快速查看器,但如果你进行任何类型的文档收集和组织,那么我建议你下载口径并使用其内置的电子书阅读器。 calibre 是跨平台和 FOSS,可以帮助您建立一个图书库(包括 PDF、ePub、html 和许多特殊格式),并帮助将这些图书传输到具有其特性的众多其他设备。
这可能超出了您的需要,但值得尝试。
https://calibre-ebook.com/download_linux
回到查看器,它通常从 calibre 调用,但可以作为独立程序打开
/opt/calibre/bin/ebook-viewer
您甚至可以将其添加为工具栏上的收藏夹。
因此,我的解决方案不是尝试修复损坏的 evince 安装(我试过但没有成功)以打开 PDF 中的超链接,而是将您的阅读提升到下一步,并享受其他轻量级、更强大的阅读工具和其他格式,如 ePub。