当我在 Linux (Ubuntu) 上使用 sudo 命令从终端运行任何 GUI 应用程序时,应用程序失败并出现 QT 错误,如下所示。
几乎每个应用程序在尝试时都会失败;这是 Firefox 的示例
由于 sudo/root 默认情况下没有 DISPLAY,因此在设置显示时可以参考:以另一个(非 root)用户身份运行 GUI 应用程序
是否可以识别应用程序没有显示并以编程方式设置它?
答案1
你只需sudo
告诉向前将现有的环境变量添加到它作为 root 生成的进程中。请参阅--preserve-env=list
中的选项man sudo
。
另外,firefox
以 root 身份运行,不问任何问题,非常严厉
不,不要那样做。
绝对没有理由以 root 身份运行浏览器,无论你想用这种方式解决什么问题必须可以用不同的方式解决。
对于cmake
和 也同样如此cmake-gui
。软件不应该以 root 身份构建,如果您必须成为 root 才能构建它,则说明出现了问题。即使你有以root身份构建软件(你不需要,但有些软件写得很糟糕),你不要必须以 rootcmake
身份运行cmake-gui
。
因此,sudo 的不良用例。