由于 $DISPLAY 环境变量未正确设置而出现错误

由于 $DISPLAY 环境变量未正确设置而出现错误

是否可以从仅命令行安装的 Linux 启动到 Microsoft Windows 的 xfreerdp 会话?

我在完整的 Linux 安装中使用的命令是这样的:

$ sudo xfreerdp /v:farm.company.com /d:company.com \
    /u:oshiro /p:oshiro_password /g:rds.company.com

这个命令工作正常。但是,当我从 Linux 的命令行安装运行相同的命令时,我收到以下错误消息:

Please check that the $DISPLAY environment variable is properly set.
freerdp_set_last_error 0x20001
libfreerdp/core/freerdp.c:97: freerdp_pre_connect failed

我的基于 GUI 的 Linux 安装和仅命令行安装的 Linux 都是 Ubuntu 12.04。两个安装都有 xfreerdp 版本 1.2.0-beta1

答案1

我假设 xfreerdp 是一个 GUI 程序(“X 客户端”)。所以在Linux上,你需要一个“X服务器”来运行它。
这就是基于 GUI 的 Linux 机器上所拥有的。
您无法在纯命令行 Linux 本身上运行它。

根据您想要执行的操作,在仅限命令行的 Linux 上运行它并通过网络的其他位置显示 GUI 可能是有意义的。这就是 DISPLAY 的用途。

你可以这样做:

export DISPLAY=guilinuxbox:0.0
xfreerdp ...

(但您需要设置权限才能这样做)

为了说明运行普通 X 服务器时会发生什么(如现在的评论中所讨论的):

这就是普通 X 服务器的样子 - 您将看到具有默认模式的根窗口。还有一个“X”形状的指针:

X11-空根窗口-默认

答案2

  1. su root
  2. xdpyinfo
  3. 找到“显示名称”后面的字符串,例如显示名称:127.0.0.1:1.0(即“1.0”)
  4. export DISPLAY=:1.0

相关内容