debootstrap chroot x11 を開くことができず、0 プロトコルなしエラーが表示されます。

debootstrap chroot x11 を開くことができず、0 プロトコルなしエラーが表示されます。

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

関連情報