编辑了@terdon 的回答。
在我的 Ubuntu 电脑上:
如果我通过连接服务器ssh -X my_server
,那么我就可以启动一个程序。
然后我使用sudo -i
成为 root,但无法启动同一个程序。
错误:
由于身份验证错误,X11 连接被拒绝。qt.qpa.xcb:无法连接到显示器 localhost:18.0 qt.qpa.plugin:无法在“”中加载 Qt 平台插件“xcb”,即使找到了它。此应用程序无法启动,因为无法初始化任何 Qt 平台插件。重新安装应用程序可能会解决此问题。
可用的平台插件有:eglfs、linuxfb、minimal、minimalegl、offscreen、vnc、xcb。
已中止(核心转储)
我有一个视窗虚拟机和摩巴Xterm。它向我显示了 X 服务器使用的地址。
如果我按照上面的方法操作,也会遇到同样的问题。但我可以打字,export DISPLAY=172.30.4.66:0.0
而且一切正常。
echo $DISPLAY
然后给我输入的地址。
我怎样才能在我的 Ubuntu 计算机上获取这些地址?
通过输入echo $DISPLAY
我得到:0
。并且export DISPLAY=<my ip>:0
不起作用。
“x11-xserver-utils”未安装(有没有 xhost)。
答案1
首先,你永远不需要sudo su
,为什么要使用两个程序,一个程序就可以了?只需运行sudo -i
。其次,你为什么需要这个?如果你想以 root 身份运行该程序,只需运行sudo programName
。接下来,这与获取 IP 无关(顺便说一句,混淆你的 IP 是没有意义的:172.30.4.66 是你家庭网络上的内部地址,它不是你的公共 IP),而是允许访问。
如果您确实希望 root 能够在 X 会话中启动图形程序,则需要运行xhost +
以允许所有用户访问。因此,只需运行xhost +
然后尝试启动即可。如果这不起作用,请使用输出更新您的问题。