Evince 显示 PDF 文档并需要字体。
上下文:~/.cache
由管理员符号链接
此处的用户目录分为“干净”部分和“杂乱”部分。我们的想法是,更多地关注“干净”部分(备份等),而较少关注“杂乱”部分。
用户'~/.cache
是混乱部分的符号链接。
症状:启动缓慢
这会导致 evince 启动缓慢:等待 20 秒才出现任何窗口。窗口出现后,一切似乎都很正常。
调查
strace
显示,在前 2 秒内,它多次尝试访问文件,~/.cache/fontconfig
但/var/cache/fontconfig
都失败了EACCESS
- 然后它花费大约 18 秒枚举数据
/usr/share/fonts
~/.cache/fontconfig
可由用户读写,/var/cache/fontconfig
不存在。
解释
类似的问题(例如Evince...(权限被拒绝) - 询问 Ubuntu)强烈建议应用装甲参与。
怎么修?
- 有些邀请为 evince 禁用 AppArmor但感觉不对。
- 其他邀请将 evince 置于 aa-complain 模式这感觉也是不对的。
- 该怎么办?
答案1
/etc/apparmor.d/abstractions/fonts
通过修改以包含如下行可以立即解决这个问题:
/complete/template/path/to/userdirs/*/.cache/fontconfig r,
这适用于所有用户(*
位于用户登录路径的一部分)。
这感觉是对的。是吗?