我曾经发射 Git GUI在我的 Cygwin 控制台中没有任何问题,但是自从我更新了 Cygwin 之后,我收到了以下错误消息:
$ git gui
Application initialization failed: no display name and no $DISPLAY environment variable
Error in startup script: invalid command name "tk_messageBox"
while executing
"tk_messageBox -icon error -type ok -title "git-gui: fatal error" -message $err"
invoked from within
"if {[catch {package require Tcl 8.4} err]
|| [catch {package require Tk 8.4} err]
} {
catch {wm withdraw .}
tk_messageBox \
-icon error \
-typ..."
(file "/usr/lib/git-core/git-gui" line 34)
我该如何解决这个问题?
最佳答案
Cygwin 的 gitk 和 Git GUI 需要 X11。这意味着您需要安装一些 Cygwin X11 软件包并设置它们才能打开 GUI。
这应该让您启动并运行:
- 再次运行 Cygwin 安装程序(如果需要,请再次下载相关的 setup-*.exe)。
- 在软件包列表中,选择安装 X11 类别下的“xinit”。单击下一步,接受所有依赖项,然后安装。
- 在 Windows 开始菜单中,您应该有一个新组:Cygwin-X。从那里运行 XWin 服务器。
- 在您的 Cygwin shell 中,运行
export DISPLAY=:0.0
。
每次重新启动计算机时都需要重复第 3 步,每次打开新的 Cygwin shell 时都需要重复第 4 步(或者只运行 echo "export DISPLAY=:0.0">>~/.profile
让它在您创建新 shell 时自动运行)。
在评论中,似乎有些人收到错误消息“无法连接显示“:0.0””。如果你明白了,将鼠标悬停在本应出现在系统托盘中的 X 上(如果 X 图标已被 stash ,你可能需要单击向上的小图标); pop 窗口标题应显示类似“Cygwin/X Server:1.0”的内容。在第 4 步中使用“:1.0”(或您看到的任何内容)作为 DISPLAY
的值,而不是“:0.0”,确保包含冒号。
如果您在启动 X 服务器时遇到任何其他问题,您可能会发现您有一个名为 ~/.xsession-errors
的文件;查看其中的内容,了解出了什么问题。还要检查您是否有 ~/.startxwinrc
文件,然后尝试删除它并查看是否可以解决问题。
感兴趣的是,X11 包没有自动安装的原因是它们是 not technically needed : 有可能通过一些复杂的方式使用与安装“xinit”包时 Cygwin 安装的 X11 服务器不同的 X11 服务器。
关于git - 无法在 Windows 上使用 Cygwin 启动 Git GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9393462/