chrootをインストールした後、x11に接続できません。これは一般的なユースケースだと思いましたが、このユースケースに関する特定の情報が見つかりませんでした。
# debootstrap stable /srv/stable/
...
# chroot /srv/stable/ xeyes
No protocol specified
Error: Can't open display: :0
答え1
まず、x11クライアントは通常ソケットファイルを介してx11サーバーと通信する必要があります。
/tmp/.X11-unix/X0
# mount -o bind /tmp/ /srv/stable/tmp/
第二に、継続的に混乱を経験しているという意味です。xauth
xhost
A.(推奨)chrootのプロセスのuidは、ホストのxauthorityを持つユーザーのuidと一致する必要があります。たとえば、ホストユーザーのユーザー名/グループ名userid/groupidをchroot(通常はuid / gid)に複製できます。 1000/1000)
# chroot /srv/stable groupadd -g $(id -g) $(id -gn) # chroot /srv/stable useradd -u $(id -u) -g $(id -g) $(id -un)
。
あるいは、B、chrootのプロセスのuidは、xauthorityファイルなどの他の方法で認証する必要があります。 chrootはchrootの内部でuid 0として実行されるため、次のようにchrootの外部でuid 0を認証できます。
# xhost +si:localhost:root localhost:root being added to access control list
グラフィックプログラムにx11モニタを使用するための接続と権限が必要です。
# chroot /srv/stable sudo -u $(id -un) xeyes
# chroot /srv/stable xeyes