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 и до сих пор не повезло.

2 ответа2

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/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .