![AppArmor 导致 Firefox 出现段错误](https://linux22.com/image/91365/AppArmor%20%E5%AF%BC%E8%87%B4%20Firefox%20%E5%87%BA%E7%8E%B0%E6%AE%B5%E9%94%99%E8%AF%AF.png)
我意识到这可能是一个糟糕的问题,但我被困住了。经过大量谷歌搜索后,我正在努力解决这个问题。我一直在尝试让 AppArmor 在 Debian 上运行。我一直按照以下指示进行操作https://wiki.debian.org/AppArmor/HowToUse。
部分指令告诉我要做的
sudo perl -pi -e 's,GRUB_CMDLINE_LINUX="(.*)"$,GRUB_CMDLINE_LINUX="$1 apparmor=1 security=apparmor",' /etc/default/grub
sudo update-grub
sudo reboot
因为我不明白perl
我在虚拟机中执行此操作的命令,现在我无法使用 Firefox,甚至在安全模式下也无法使用。我遇到段错误。
Fontconfig error: Cannot load default config file
(firefox:3875): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'
Crash Annotation GraphicsCriticalError: |[0][GFX1]: no fonts - init: 1 fonts: 0 loader: 0 (t=0.206719) [GFX1]: no fonts - init: 1 fonts: 0 loader: 0
[3875] ###!!! ABORT: unable to find a usable font (Sans): file /tmp/buildd/firefox-47.0.1/gfx/thebes/gfxTextRun.cpp, line 1875
[3875] ###!!! ABORT: unable to find a usable font (Sans): file /tmp/buildd/firefox-47.0.1/gfx/thebes/gfxTextRun.cpp, line 1875
Segmentation fault
apt-cache policy apparmor
apparmor:
Installed: 2.9.0-3
Candidate: 2.9.0-3
Version table:
2.10.95-4~bpo8+2 0
100 http://ftp.uk.debian.org/debian/ jessie-backports/main amd64 Packages
*** 2.9.0-3 0
500 http://ftp.uk.debian.org/debian/ jessie/main amd64 Packages
500 http://mirror.bytemark.co.uk/debian/ jessie/main amd64 Packages
100 /var/lib/dpkg/status
/etc/fonts/fonts.conf 上的 ls -l 返回以下内容:
-rw-r--r-- 1 root root 5533 Nov 23 2014 /etc/fonts/fonts.conf
我尝试使用命令导出字体配置路径
export FONTCONFIG_PATH=/etc/fonts
但这没有帮助。
我知道这是在寻找一种不存在的字体,因为我检查了路径,但现在我陷入了僵局,没有想法,无法从谷歌找到更多帮助。
答案1
我已经设法解决了这个问题。我这样做的方法是编辑 /etc/default/grub 并将 GRUB_CMDLINE_LINUX 从
GRUB_CMDLINE_LINUX=" apparmor=1 security=apparmor"
到
GRUB_CMDLINE_LINUX=""
然后运行后问题就解决了sudo update grub
。sudo reboot
然而,这阻止了 apparmor 的工作,因为它给出了错误:
apparmor.common.AppArmorException: 'Warning: unable to find a suitable fs in /proc/mounts, is it mounted?\nUse --subdomainfs to override.\n'
不过,我再次使用 debian 指南中的命令成功解决了这个问题。
sudo perl -pi -e 's,GRUB_CMDLINE_LINUX="(.*)"$,GRUB_CMDLINE_LINUX="$1 apparmor=1 security=apparmor",' /etc/default/grub
sudo update-grub
sudo reboot
重新启动后,我尝试启动 Firefox,没有收到任何错误,现在一切正常。然而,在我的电脑上尝试后,我又开始遇到段错误问题,并且此修复不起作用。但在比较了apparmor配置文件之后/etc/apparmor.d
我发现配置文件规则是不同的。
电脑段错误规则:
# Last Modified: Tue Aug 2 11:32:25 2016
#include <tunables/global>
/usr/lib/firefox/firefox {
#include <abstractions/base>
/usr/bin/firefox r,
}
工作电脑规则:
# Last Modified: Tue Aug 2 11:32:25 2016
#include <tunables/global>
/usr/bin/firefox {
#include <abstractions/base>
#include <abstractions/bash>
/bin/dash ix,
/usr/bin/firefox r,
}
我将#include <abstractions/bash>
和添加/bin/dash ix,
到配置文件中,然后将路径更改为/usr/bin/firefox
,现在问题在重新启动后得到解决。