为什么以 sudo 身份运行需要 LIBGL_ALWAYS_INDIRECT?

为什么以 sudo 身份运行需要 LIBGL_ALWAYS_INDIRECT?

我想我明白 LIBGL_ALWAYS_INDIRECT 的作用,根据这个解释:LIBGL_ALWAYS_INDIRECT=1 实际上做了什么?

但是我无法理解何时/为何需要它?

就我而言,我有一个自制的 dotnet 核心应用程序(使用阿瓦洛尼亚框架),当不作为 sudo 运行时,它在 WSL2 Linux (Ubuntu Distro) 上工作正常,但当作为 sudo 运行时,它显示窗口框架而不显示任何内容。但是指定 LIBGL_ALWAYS_INDIRECT=1 可以解决问题。那么为什么只有在作为 sudo 运行时才需要指定 LIBGL_ALWAYS_INDIRECT 呢?

总结一下:

命令行 作品?
./myapp 是的
LIBGL_ALWAYS_INDIRECT=1 ./myapp 是的
须藤 ./myapp
须藤 LIBGL_ALWAYS_INDIRECT=1 ./myapp 是的

sudo -E/-H 似乎没有什么区别。 WSL发行版是Ubuntu 22.04,它似乎使用wayland。

相关内容