Как исправить AppArmor `не удалось открыть` ошибка при установке php+mysql?

Я хочу установить 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'

Как можно решить эту проблему?

4 ответа

Вам не хватает файла 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

Посмотрите, поможет ли вики Ubuntu: https://wiki.ubuntu.com/DebuggingApparmor

В частности,

При отладке также может быть полезно перевести apparmor в режим "жалоб". Это позволит вашему приложению нормально функционировать, пока apparmor сообщает о доступах, которых нет в профиле. Чтобы включить режим "Жалоба", используйте:

sudo aa-complain /path/to/bin

где "/ path / to / bin" - это абсолютный путь к двоичному файлу, как указано в части "profile =..." записи "Audit". Например:

sudo aa-complain /usr/sbin/slapd

Чтобы снова включить принудительный режим, используйте вместо этого "aa-force":

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 в командной строке ядра.

Это сработало для меня:(источник: 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 

Это старый вопрос, но, возможно, кто-то найдет его полезным.

Иногда части приложения делятся на отдельные пакеты. То же самое касается профилей apparmor. Они разбиты на пакеты apparmor-profiles а также apparmor-profiles-extra, Итак, если у вас отсутствуют некоторые профили, установите apparmor-profiles-extra,

Другие вопросы по тегам