Можно ли запустить какое-либо приложение в chroot или контейнере, но разрешить взаимодействие DBus с хост-системой?

Мне нужно запустить старую версию приложения в chroot (или контейнере) и разрешить взаимодействие DBus с хост-системой. Я не могу установить это приложение на хост-систему из-за серьезных проблем с зависимостями.

Полная информация о приложениях:

  • приложение, которое должно быть контейнеризовано, - это версия GNOME Evolution 3.2.3 (из Ubuntu 12.04 LTS)
  • , главная система - Ubuntu MATE [ 119] 16.04 LTS, он будет работать с обратным портом indicator-datetime-gtk2, который связывается с контейнерным Evolution через D-BUS.

Я надеюсь, что это технически возможно с помощью schroot bind mounts или LXC / LXD.

Как мне настроить такую ​​конфигурацию?

6
задан 21 May 2019 в 17:40

3 ответа

Ознакомьтесь со следующим руководством о том, как

  1. создать системный контейнер с какой-либо старой версией Ubuntu (например, 12.04 или 14.04), и
  2. настроить его так, чтобы вы может запускать программы с графическим интерфейсом из этого системного контейнера и получать выходные данные на вашем хосте

См. руководство из https://blog.simos.info/how-to-easily-run-graphics -accelerated-gui-apps-in-lxd-container-on-your-ubuntu-desktop / .

В руководстве приведен пример запуска какой-то старой утилиты Tcl / Tk в системном контейнере Ubuntu 12.04 ,

0
ответ дан 21 May 2019 в 17:40

Трудности с использованием indicator-datetime-gtk2 (из Ubuntu 12.04 LTS) на Ubuntu MATE 16.04 LTS с GNOME Evolution

MATE DE 1.12.1 использует GTK2 на Ubuntu 16.04 LTS, поэтому сам indicator-datetime-gtk2 может быть перенесен из Ubuntu 12.04 LTS и показан в mate-indicator-applet, но интеграция с современным GNOME Evolution не будет работать из-за серьезно измененного API.

Обычный GTK3 indicator-datetime или его форк UBports не будет интегрироваться в GTK2 mate-indicator-applet.

Решение DBUS LXC / LXD, по-видимому, не применимо к текущей проблеме. Что-то не так с адресацией шины или наименованием сервиса.

Решение для Ubuntu MATE 16.04 LTS

Я нашел только одно хакерское решение для Ubuntu 16.04 LTS MATE - установить панель Xfce4 и добавить к ней апплет indicator-datetime с помощью:

sudo apt-get install indicator-datetime evolution
sudo apt-get install xfce4-panel xfce4-indicator-plugin --no-install-recommends

] вместе с работающими панелями MATE.

И настройте добавленную панель Xfce4 с помощью следующих параметров:

  1. Выберите Одна пустая панель при первом запуске
  2. Щелкните правой кнопкой мыши на панели выберите Добавить новые элементы
  3. Найдите Плагин индикатора и добавьте его
  4. Переместите панель Xfce4 в верхний правый угол, Блокируйте панель и установите автоматическое скрытие ( Автоматическое скрытие панели: Всегда )

Чтобы на каждой загрузке отображался xfce4-panel добавили его в автозагрузку приложений:

mkdir -p ~/.config/autostart
cat <<EOF > ~/.config/autostart/xfce4-panel.desktop
[Desktop Entry]
Type=Application
Exec=xfce4-panel &
Hidden=false
X-MATE-Autostart-enabled=true
Name=xfce4-panel
EOF

и опционально установите indicator-datetime в 24-часовой формат с помощью:

gsettings set com.canonical.indicator.datetime time-format '24-hour'

, что дает красивый, автоматически скрываемый индикатор календаря синхронизации: [ 1142]

  • календарь скрыт xfce4-panel with indicator-datetime - hidden
  • календарь показывается xfce4-panel with indicator-datetime - shown
  • Открыта GNOME Evolution - GNOME Evolution with event
0
ответ дан 21 May 2019 в 17:40

Существует версия indicator-datetime для 16.04 , которая может работать для вас. Похоже, что разработка остановилась, работая над версией 16.10, однако она может подойти вам до 18.04.

0
ответ дан 21 May 2019 в 17:40

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

Похожие вопросы: