将$HOME
中的D1
文件夹替换为指向已安装驱动器上的内容的符号链接时,会出现以下错误:
(evince:28717): Gtk-WARNING **: 13:21:16.921: Theme parsing error:
gtk.css:1:0: Failed to import:
Error opening file $HOME/.themes/Flat-Remix-GTK-Dark-Solid/gtk-3.0/gtk.css: Permission denied
(evince:31282): Gtk-WARNING **: 13:32:54.277:
Error loading theme icon 'dialog-password' for stock:
Icon 'dialog-password' not present in theme Flat-Remix-Dark
结果是一个完全不可见的图形用户界面,就像描述的这里一样。
GitHub问题中提供的解决方案已经用新版本解决了,还值得一提的是,Evince是通过Apt安装的,而不是Snap。
如果我用.themes
文件夹中来自$HOME
的内容替换符号链接,GUI就会返回。该文件夹是一个符号链接,似乎没有影响任何其他应用程序,我已经看过了。
发布于 2019-10-29 16:22:25
因此,经过一次疯狂的追逐,我终于在文斯的GitLab上找到了GitLab。问题是文件位于AppArmor未批准的位置,因此Evince被阻止访问它们。
为了解决这个问题,并继续对.themes
和.icons
文件夹使用符号链接,快速回答将以下行添加到/etc/apparmor.d/usr.bin.evince
中:
owner {path-to-icons-folder}/.icons/** r,
owner {path-to-themes-folder}/.themes/** r,
较长的答案是:
首先对文件/usr/apparmor.d/usr.bin.evince
进行备份
安装仪表-实用程序:
sudo apt install apparmor-utils
运行AppArmor的扫描实用程序:
sudo aa-genprof /usr/bin/evince
在该实用程序运行时,尝试使用另一个终端窗口中的Evince打开PDF文件:
evince {name-of-your-pdf.pdf}
现在返回到原来的终端窗口,按s
键进行“扫描”。该实用工具将扫描日志,以查找AppArmor拒绝对Evince的权限尝试,并询问您是否愿意允许Evince在将来访问这些权限。接受这些建议。
现在,如果您再次尝试运行Evince,您将注意到大量新的权限错误。您可以继续添加这些内容,直到错误不再显示为止,但是我更喜欢我的配置文件稍微不那么凌乱,所以我建议编辑/usr/apparmor.d/usr.bin.evince
文件。找到扫描过程中添加的两个条目,然后编辑它们并将文件URL更改为:
owner {path-to-icons-folder}/.icons/** r,
owner {path-to-themes-folder}/.themes/** r,
请注意,这将为文件夹和子目录中的所有文件提供Evince权限,这可能会更改这些文件,因此可以将范围保持在较小的范围内。
保存文件后,告诉AppArmor实用程序再扫描一次。这就是AppArmor的配置被更新的原因。现在,Evince应该拥有所需的权限,并在所有方面展示它的GUI --当您下次打开PDF时,这是令人惊叹的荣耀。
https://askubuntu.com/questions/1184743
复制相似问题