Это рекомендует использовать PPA. Это легче, чем управление ручной установкой. Не устанавливайте программу из простого архива, если не действительно необходимого.
Если бы Вы предпочитаете устанавливать двоичный файл отдельно (единственное серьезное основание состояло бы в том, если нет никакого PPA с версией, Вы хотите), самый легкий способ сделать это доступным состоит в том, чтобы создать символьную ссылку в /usr/local/bin
. Этот каталог для исполняемых файлов, которые предназначаются для любого в системе для выполнения и которые не идут с распределением. Это обычно прежде /usr/bin
в PATH
, таким образом, если у Вас есть оба /usr/bin/thunderbird
и /usr/local/bin/thunderbird
и Вы вводите thunderbird
, затем тот в /usr/local/bin
выполняется.
Не распаковывайте .tar.bz2
в /usr/lib
. Вообще говоря, никогда вручную измените файл в /bin
, /lib
, /sbin
или /usr
, кроме под /usr/local
. Эти места резервируются для диспетчера пакетов. Обычное место для помещения программ, установленных путем распаковки архива, /opt
или /usr/local/opt
. Необходимо поэтому распаковать архив под opt
. Затем создайте символьную ссылку на исполняемый файл:
ln -s /opt/thunderbird-3.1.20/thunderbird /usr/local/bin/thunderbird
Если Вы хотите вызвать Thunderbird от оболочки, которую Вы запустили прежде, чем создать символьную ссылку, Вы, возможно, должны сказать оболочке очищать свой кэш пути с командой hash -r
.
Можно смонтироваться как rootfs squashfs изображение, но это было бы только для чтения.
mount: warning: /var/lib/lxc/busy2/rootfs/ seems to be mounted read-only.
У Вас должен быть другой слой по squashfs, например, aufs.
Эта масса техники используется в Slax.
Можно повторить это просто вручную. Заставьте истинный lxc сконфигурироваться, чем монтируют Ваше изображение squashfs к rootfs dir aufs слоем.
# sudo mount -t aufs -o br:/rw_branch:/ro_branch none /aufs
Мой эксперимент с busybox возвращает True:
# mount -o loop -t squashfs /var/busy/busy_rootfs.squashfs /var/busy/squashfs-mnt/
mount: warning: /var/busy/squashfs-mnt/ seems to be mounted read-only.
# mount -t aufs -o br:/var/busy/aufs-root/:/var/busy/squashfs-mnt/ none /var/lib/lxc/busy2/rootfs
# lxc-start --name busy2
udhcpc (v1.20.2) started
Sending discover...
Sending select for 10.0.3.105...
Lease of 10.0.3.105 obtained, lease time 3600
Please press Enter to activate this console.
BusyBox v1.20.2 (Ubuntu 1:1.20.0-8ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/ # ls
ls
bin etc lib mnt root selinux usr
dev home lib64 proc sbin tmp var
/ # touch root.file
touch root.file
/ # ls -latr root.file
ls -latr root.file
-rw-r--r-- 1 root root 0 Aug 23 12:38 root.file
Взгляд от хоста:
# ls -latr /var/busy/aufs-root/
total 24
drwxr-xr-x 3 root root 4096 Aug 23 12:15 var
drwx------ 2 root root 4096 Aug 23 12:25 .wh..wh.plnk
drwx------ 2 root root 4096 Aug 23 12:25 .wh..wh.orph
-r--r--r-- 1 root root 0 Aug 23 12:25 .wh..wh.aufs
drwxr-xr-x 6 root root 4096 Aug 23 12:30 ..
drwxr-xr-x 2 root root 4096 Aug 23 12:38 dev
-rw-r--r-- 1 root root 0 Aug 23 12:38 root.file
drwxr-xr-x 6 root root 4096 Aug 23 12:39 .
У меня есть рабочая установка с некоторыми контейнерами squashfs, особенно в целях безопасности
Для запуска просто добавьте
lxc.rootfs = loop:/var/lib/lxc/yourcontainer/rootfs.squashfs
в ваш конфигурационный файл.
Интересно, что я вижу сообщения dmesg вроде
[218687.113742] EXT4-fs (loop0): VFS: Can't find ext4 filesystem
[218687.118615] FAT-fs (loop0): invalid media value (0x00)
[218687.120368] FAT-fs (loop0): Can't find a valid FAT filesystem
... которых я не могу избежать, потому что нет опции lxc.rootfs.type
. Но эти сообщения не являются ошибками - все работает, как ожидалось.
Остальное - обычные проблемы с read-only-root: Файлы, в которые система хочет писать (например, resolv.conf и журналы). Возможно, вы захотите связать их симлинком с томом tmpfs.
Я не пробовал монтировать другой squashfs в подпункт этого контейнера, но обычное связывающее монтирование каталога хоста работает как ожидалось.