我需要在chroot
(或容器)中运行旧版本的应用程序并允许 DBus 与主机系统交互。由于严重的依赖性问题,我无法在主机系统上安装此应用程序。
有关应用程序的完整详细信息:
- 要容器化的应用程序是 GNOME Evolution 版本 3.2.3(来自 Ubuntu 12.04 LTS)
- 主机系统是 Ubuntu伴侣16.04 LTS,它将运行反向移植
indicator-datetime-gtk2
,通过 D-BUS 与容器化的 Evolution 进行通信。
我希望通过schroot
绑定安装或 LXC/LXD 在技术上可以实现这一点。
我应该如何设置这样的配置?
答案1
查看以下指南,了解如何
- 使用旧版本的 Ubuntu(例如 12.04 或 14.04)创建一个系统容器,然后
- 设置它,以便您可以从该系统容器内运行 GUI 程序并在主机上获取输出
该指南有一个在 Ubuntu 12.04 系统容器中运行一些旧的 Tcl/Tk 实用程序的示例。
答案2
有一个indicator-datetime
16.04 版本哪个可能为您工作。16.10 版本的开发似乎停滞了,但它可能在 18.04 下为您工作。
答案3
在 Ubuntu MATE 16.04 LTS 上使用 GNOME Evolution 时遇到困难indicator-datetime-gtk2
(来自 Ubuntu 12.04 LTS)
MATE DE 1.12.1 在 Ubuntu 16.04 LTS 上使用 GTK2,因此 本身indicator-datetime-gtk2
可能从 Ubuntu 12.04 LTS 移植并显示在 中mate-indicator-applet
,但由于 API 发生严重变化,与现代 GNOME Evolution 的集成将无法实现。
通常基于 GTK3indicator-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 面板:
- 选择一个空面板首次启动时
- 右键单击面板,选择添加新商品
- 搜索指标插件并添加
- 将 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'
它提供了美观的自动隐藏同步日历指示器: