基本上我在远程服务器(我的学校)上使用emacs但是当我从linux登录并输入时emacs,我得到了一个文本模式(终端模式).有没有办法从远程服务器以图形模式启动emacs?
我有一个运行arch linux的raspberry pi连接到电视,并希望通过SSH从我的Ubuntu机器在其他地方运行命令.
我已经尝试运行命令SSH -Y root @并启动xclock作为测试.但是我收到以下错误:
没有指定协议错误:无法打开display :: 0
然后我尝试在arch机器上运行"export DISPLAY =:0",但这并没有解决问题.
我有X运行正常,可以在电视上看到它,我已编辑文件/ etc/ssh/ssh_config以允许X11转发.
谁知道我做错了什么?
非常感谢
我的团队正在为即将开展的项目评估各种IDE.其中一个要求是我们希望从我们的本地Windows计算机登录到一个功能强大的Linux中央服务器(我们之前的项目是在Windows下进行的,并且不能更改它).
我们的方法是使用XRDP,但我们也在寻找在Windows机器上本地使用X11服务器.
我们注意到,当我们尝试在远程Linux机器上运行Qt Creator但是它显示在我们本地机器上运行的X11服务器上时,界面非常不连贯且速度很慢.刷新过于缓慢,无法使工具变得有用.当我们运行Eclipse时,我们没有看到这个问题,最终比通过XRDP访问它时响应更快.
使用Wireshark进行的网络流量分析显示,对于类似的任务(向下滚动一页文本),Qt Creator产生的X11相关网络流量大约是Eclipse的10-100倍.
问题(最后):有谁知道我们如何配置Qt Creator以减少X11流量,从而提高其响应能力?
底层的Linux系统是Kubuntu(带有KDE的Ubuntu).
Qt Creator版本:3.0.0(使用Qt 4.8.1)
PS:这是我关于Stack Overflow的第一篇文章,我对如何提高我的问题的实用性提出了建议.
这篇文章是我上一篇文章的延续:使用R而不是X11,我试图实现对我的建议.所以我以前的命令是:
bsub -XF -n 1 -R "rusage[mem=16]" -We 60 -J <job_array> -o out.log 'script.pl <script arguments>'
Run Code Online (Sandbox Code Playgroud)
我使用-XF是因为我之前的问题中陈述的原因.不使用-XF我收到以下错误:
Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width, :
Run Code Online (Sandbox Code Playgroud)
无法启动设备PNG
现在,我试图实施我提出的建议.这是我没有-XF和使用的新命令xvfb-run.
bsub -n 1 -R "rusage[mem=16]" -We 60 -J <job_array> -o out.log 'xvfb-run script.pl <script arguments>'
Run Code Online (Sandbox Code Playgroud)
因此,从技术上讲,如果xvfb-run不起作用,它应该给我与没有使用时相同的错误-XF,但它给了我一个不同的错误:
Error in axis(side = side, at = at, labels = labels, ...) :
X11 font -adobe-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*, face 1 at size 10 …Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,如果我在远程系统上以守护进程模式启动 Emacs,然后在我的本地系统中运行ssh remotehost emacsclient -c,它会失败,并且由于身份验证错误而导致 X11 连接被拒绝。 然而,诸如此类的事情ssh remotehost xterm工作正常,所以它与 ssh 连接、X 转发等无关。
有问题的两个系统都运行 Ubuntu 18.04 LTS。
可以猜到,问题是 xauth,特别是在阅读了 2010/2011 年提交的问题后,这似乎是由于 GDM 将环境XAUTHORITY变量设置为$XDG_RUNTIME_DIR/gdm/Xauthority(类似于/run/user/1000/gdm/Xauthority)的方式,而传入的 SSH 连接则不然XAUTHORITY在为 SSH 会话设置 xauth cookies 之前设置。
这意味着 ssh xauth cookie 将添加到默认$HOME/.Xauthority文件中。我的 Emacs 守护进程无法看到这些 cookie,因为它正在使用 GDM$XDG_RUNTIME_DIR/gdm/Xauthority文件。
正如我所说,这种差异似乎已经是一个已知问题 8 年多了……没有人解决它吗?疯狂的。我已经编写了一个安装 cookie 的脚本,但必须这样做是相当恶心的。
有没有办法让我的 ssh 会话使用 GDM Xauthority 文件?我已经尝试XAUTHORITY在 shell 设置中进行设置,但显然设置得太晚了,在 SSH 守护程序配置新的 Xauth cookie 之后,因为它仍然放入$HOME/.Xauthority.
支持图形显示的服务器与我遇到的服务器不同.当我尝试打开virtualbox时,我收到此消息.
$ Failed to open the X11 display!
Run Code Online (Sandbox Code Playgroud)
当我尝试startx时,我收到三条错误消息.
$ PAM authentication failed, cannot start X server
$ giving up.
$ xinit: No such file or directory (errno 2): unable to connect to X server
$ xinit: No such process (errno 3): Server error.
Run Code Online (Sandbox Code Playgroud)
我不知道显示变量在哪里,因为我对linux很新.任何直截了当的建议和帮助将不胜感激.
我试图在直接访问X11套接字的docker容器中运行嵌套的X-server Xephyr,但是我得到了奇怪的图形错误,我目前还不明白.
这些内容Dockerfile都是
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get install -qqy xserver-xephyr
# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
Run Code Online (Sandbox Code Playgroud)
建立它与
sudo docker build -t xephyrtest .
Run Code Online (Sandbox Code Playgroud)
并运行它
sudo docker run -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix xephyrtest Xephyr :1
Run Code Online (Sandbox Code Playgroud)
输出以下内容:
Xephyr unable to use SHM XImages
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension …Run Code Online (Sandbox Code Playgroud) 我目前正在运行 Ubuntu 16.04.2,这是一个相当新的安装,足以开始编程。我确实有一张 r9 390 AMD 卡,它的 AMD 驱动程序存在很多问题,但我认为这不是问题。
我使用以下代码片段创建了一个 dockerfile:
FROM ubuntu:16.04
.....
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
WORKDIR /buildls
CMD ["bash"]
RUN apt-get install -y x11-apps
RUN apt-get install -y libcanberra-gtk*
RUN apt-get -y install libglfw3-dev
RUN apt-get -y install libglew-dev
RUN apt-get -y install mesa-utils
.......
Run Code Online (Sandbox Code Playgroud)
构建后,我运行它:
docker run -it `#container process` \
-v /tmp/.X11-unix:/tmp/.X11-unix `#Allows the X11 server to be shared (GUI)` \
-v $(pwd)/volume:/app `#Shares a folder, one …Run Code Online (Sandbox Code Playgroud) 我已经通过MobaXTerm从Win10到RedHat机器建立了SSH连接。我还启用了X11转发,但是当我启动eclipse或gedit或其他任何东西时,应用程序窗口看起来很模糊,即看起来不是很清晰,因为它看起来像是在本机运行。下面是从linux计算机转发时的样子。任何线索如何使它看起来更清晰?
来自我本地 VSCode 的请求如下所示:
Host XXX.XX.XX.XXX
HostName XXX.XX.XX.XXX
ForwardX11Trusted yes
IdentityFile ~/.ssh/Key.pem
User ubuntu
Run Code Online (Sandbox Code Playgroud)
在服务器上,我X11Forwarding yes在/etc/ssh/sshd_config文件中启用
尽管如此,我还是收到了这个错误
qt.qpa.xcb:无法连接到显示:0.0 qt.qpa.plugin:无法在“/home/ubuntu/anaconda3/lib/python3.8/site-packages/cv2/”中加载Qt平台插件“xcb” qt/plugins”,即使它被发现了。该应用程序无法启动,因为无法初始化 Qt 平台插件。重新安装应用程序可能会解决此问题。
可用的平台插件有:xcb、eglfs、minimal、minimalegl、offscreen、vnc。
注意:我使用 VSCode 的集成终端来运行 python 脚本。
x11-forwarding ×10
ssh ×4
x11 ×4
linux ×3
docker ×2
emacs ×1
emacs-server ×1
emacsclient ×1
gdm ×1
gpu ×1
opengl ×1
python ×1
qt ×1
qt-creator ×1
r ×1
raspberry-pi ×1
ssh-tunnel ×1
vmware ×1
xvfb ×1