Ошибка LXC в Ubuntu Precise 12.04, не могу найти apparmor, это работало нормально в 11.10

1

Я получаю эту ошибку, используя 12.04. Когда я бегу sudo lxc-execute -n foo -f lxc.example.conf ls, я получаю

/usr/lib/lxc/lxc-init: error while loading shared libraries: libapparmor.so.1: cannot open shared object file: No such file or directory

Есть идеи, как решить эту проблему? Я установил libapparmor-dev и до сих пор не повезло.

Трэвис Ридер
источник
Файл на самом деле существует? Если нет, скачайте и поместите его туда ...
soandos

Ответы:

0

Библиотека находится в пакете libapparmor1:

% dpkg -S /usr/lib/libapparmor.so.1
libapparmor1: /usr/lib/libapparmor.so.1

И это на самом деле зависимость от lxc-init, которая находится в пакете lxc:

% dpkg -S /usr/lib/lxc/lxc-init
lxc: /usr/lib/lxc/lxc-init

% dpkg -s lxc | grep Depends
Depends: upstart-job, libapparmor1 (>= 2.6~devel), libc6 (>= 2.14), libcap2 (>= 2.10), apparmor, bridge-utils, dnsmasq-base, iptables, rsync

У вас сломана установка? Это может помочь:

apt-get update
apt-get install -f
Густаво Нимейер
источник
0

Поэтому после некоторой игры я попытался скопировать libapparmor.so.1 на моей хост-машине в гостевой контейнер, и, похоже, это сработало. Так что проблема на самом деле не была на хост-машине, на которой я пытался запустить lxc-execute. В конце для нашего сценария сборки я теперь устанавливаю libapparmor-dev в файловую систему контейнера:

chroot $JAIL /bin/sh -c "apt-get -yf install libapparmor-dev"

После этого я могу запустить lxc-execute для этого контейнера. $ JAIL - это каталог, в котором он находится.

А для дальнейшего чтения я нашел пост о том, почему apparmor теперь является зависимостью: http://s3hh.wordpress.com/2012/05/03/lxc-in-precise-and-beyond/

Трэвис Ридер
источник