在标准 x11 会话旁边的 schroot 中启动 x11 会话

start x11 session in schroot beside the standard x11 session

我最近开始使用 Python3 和 opencv 进行开发。由于 opencv 必须手动编译以获得 Python 3 支持,我使用 schroot 创建了一个单独的开发环境,这对试用很有帮助构建库而不会在此过程中弄乱主机系统。 只要构建工具留在 chroot 的 shell 中,一切都会按预期工作。但是当我在 chroot 环境中启动像 Pycharm 这样的 x11 应用程序时,它可以访问所有内容(我猜是因为它正在使用主机系统的 x11 会话)。如何让我的开发环境完全隔离?

  1. 您可以在 window,

    中使用 XNestXephyr xserver

    首先你必须创建一些授权文件:

    touch $HOME/.Xephyr_auth_1
    Xephyr -auth $HOME/.Xephyr_auth_1_1 :1 &
    xpid=$!
    xauth -f $HOME/.Xephyr_auth_1 generate :1 . trusted
    kill $xpid
    

    然后 运行 你的服务器有适当的选项...

    Xephyr -auth $HOME/.Xephyr_auth_1 -screen 1280x800 :1 &
    xpid=$!
    DISPLAY=:1 XAUTHORITY=$HOME/.Xephyr_auth_1 metacity &
    DISPLAY=:1 XAUTHORITY=$HOME/.Xephyr_auth_1 firefox -profileManager -fullscreen
    

    完成后:

    kill $! $xpid
    
  2. 您可以使用 chvt 命令访问另一个 TTY 和 运行 另一个会话

    1. 从用户的屏幕菜单,转到更改用户和运行另一个会话

    2. 通过使用 Ctrl+Alt+FnFn = F1F6, 或者使用 sudo chvt 1sudo chvt 6,切换到另一个tty,然后登录:

      Login: user
      password: 
      startx -- :1