我想安装php5-imap php5-ldap php5-curl
sudo apt-get install php5-imap php5-ldap php5-curl
我收到此错误:
AppArmor parser error for /etc/apparmor.d/usr.sbin.mysqld in /etc/apparmor.d/usr.sbin.mysqld at line 9: Could not open 'abstractions/mysql'
这个问题该如何解决?
答案1
您缺少文件 abstractions/mysql。当我尝试在重新安装 MySQL 之前完全删除它时,发生了这种情况。我通过用另一台服务器的副本替换该文件解决了此问题。我的文件内容如下所示:
# ------------------------------------------------------------------
#
# Copyright (C) 2002-2006 Novell/SUSE
# Copyright (C) 2013 Christian Boltz
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
# License published by the Free Software Foundation.
#
# ------------------------------------------------------------------
/var/lib/mysql{,d}/mysql{,d}.sock rw,
/{var/,}run/mysql{,d}/mysql{,d}.sock rw,
/usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r,
/usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,
尝试创建文件并添加上述内容:
sudo nano /etc/apparmor.d/abstractions/mysql
答案2
看看 Ubuntu wiki 是否有帮助:https://wiki.ubuntu.com/DebuggingApparmor
具体来说,
调试时,将 apparmor 置于“投诉”模式也很有用。这将允许您的应用程序正常运行,同时 apparmor 报告不在配置文件中的访问。要启用“投诉”模式,请使用:
sudo aa-complain /path/to/bin
其中“/path/to/bin”是二进制文件的绝对路径,如“audit”条目的“profile=...”部分所述。例如:
sudo aa-complain /usr/sbin/slapd
要重新启用强制模式,请改用“aa-enforce”:
sudo aa-enforce /path/to/bin
要禁用配置文件:
sudo touch /etc/apparmor.d/disable/path.to.bin sudo apparmor_parser -R /etc/apparmor.d/path.to.bin
要在 Ubuntu 10.10 及更早版本中禁用配置文件:
sudo touch /etc/apparmor.d/disable/path.to.bin sudo apparmor_parser -R /etc/apparmor.d/path.to.bin
在 11.04 及更高版本中:
sudo aa-disable /etc/apparmor.d/path.to.bin
为了测试目的禁用所有 AppArmor,请使用
apparmor=0
内核命令行进行启动。
答案3
这对我有用:(来源:https://forum.snapcraft.io/t/unable-to-install-snap-from-store-or-locally/4629/15)
首先删除 apparmor 和 snapd(在我的情况下,错误与 snapd 有关,我认为你不必在你的情况下将其删除)
sudo apt-get purge apparmor
sudo apt-get purge apparmor-profiles
sudo apt-get purge apparmor-utils
sudo apt-get remove snapd snapd-confine
现在将它们全部重新安装(同样,您可能不需要安装 snapd):
sudo apt-get install apparmor-utils
sudo apt install apparmor-profiles apparmor-profiles-extra vim-addon-manager
sudo apt install snapd snapd-login-service snap-confine
答案4
这是一个老问题,但也许有人会发现它很有用。
有时应用程序的某些部分会被拆分成不同的包。apparmor 配置文件也是如此。它们被拆分成包apparmor-profiles
和apparmor-profiles-extra
。因此,如果您缺少某些配置文件,请安装apparmor-profiles-extra
。