Не удается запустить Git gui с помощью cygwin в windows


я использовал для запуска 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)

кто-нибудь знает, как это решить?

7 64

7 ответов:

Edit: Обновлено в марте 2016 года для учета переименованных пакетов и т. д.

Gitk Cygwin и Git gui требуют X11. Это означает, что вам нужно установить некоторые из пакетов Cygwin X11 и настроить их, чтобы иметь возможность открыть графический интерфейс.

Это должно заставить вас встать и работать:

  1. запустите программу установки Cygwin еще раз (загрузите соответствующий настройки-*.exe опять же, если вам нужно).
  2. в списке пакетов выберите для установки "xinit" в категории X11. Нажмите кнопку Далее, примите все зависимости и установите.
  3. в меню Пуск Windows у вас должна быть новая группа: Cygwin-X. оттуда запустите XWIN Server.
  4. в вашей оболочке Cygwin, run export DISPLAY=:0.0.

вам нужно будет повторять Шаг 3 каждый раз, когда вы перезагружаете компьютер, и Шаг 4 каждый раз, когда вы открываете новую оболочку Cygwin (или просто запустите echo "export DISPLAY=:0.0" >>~/.profile, чтобы он запускался автоматически при создании новой оболочка.)

в комментариях, кажется, некоторые люди получают ошибки, заявив "не удалось подключиться к дисплею": 0.0". Если вы получите это, наведите курсор мыши на X, который должен был появиться в системном трее (вам может потребоваться щелкнуть значок little up, если значок X был скрыт); всплывающее название должно сказать что-то вроде "Cygwin/X Server:1.0". Используйте это": 1.0 "(или все, что вы видите) в качестве значения для DISPLAY в шаге 4, а не ":0.0", обязательно включите двоеточие.

если у вас есть другие проблемы при запуске X-сервера, вы, вероятно, найдете у вас файл с именем ~/.xsession-errors; проверить содержание того, что происходит не так. Также проверьте, есть ли у вас ~/.startxwinrc файл, и попробуйте удалить его и посмотреть, если это устраняет проблему.

для заинтересованных, причина, по которой пакеты X11 не устанавливаются автоматически, заключается в том, что они технически не нужен: можно с помощью несколько запутанных средств использовать другой сервер X11 чем тот, который Cygwin устанавливает при установке пакета "xinit".

потратив больше времени, чем я хотел бы признать, мне удалось найти рабочее решение для выполнения gitk из моей оболочки cygwin. Я не мог получить ни одной инструкции с запуском X-сервера для надежной работы, и в конце концов решение было довольно простым.

самым большим предостережением является необходимость установки Git для Windows, загрузка для этого может быть найдена здесь.

теперь для всего работает gitk часть. Git для windows включает в себя cmd папка, которая имеет gitk.cmd командный файл windows. Это все, что вам нужно позвонить, чтобы gitk открыть.

$ [path-to-git]/cmd/gitk.cmd

в моей системе путь Git находится в "C:\Program Files (x86)\Git" поэтому команда будет выглядеть так:

$ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"

в моем ~/.файл я добавил функцию для обработки этого вызова, который выглядит так:

gitk() {
  "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
}

надеюсь, что это поможет кому-то еще, пытаясь понять эту часть.

echo "export DISPLAY=:0.0" >>~/.profile

или

echo "export DISPLAY=:0.0" >>~/.bash_profile

в моем случае

избегайте X11 и добавить git gui поддержка cygwin

если вы хотите избежать X11 (а кто бы не хотел?):

  1. установить Git для Windows (не cygwin)http://git-scm.com/download/win
  2. Откройте командную оболочку C:\Program Files (x86)\Git\Git Bash
  3. выполнить git gui

(необязательный) если вы хотите остаться в cygwin, чтобы запустить git gui добавить функцию в ваш ~/.bashrc сделать это. Единственный будьте осторожны не имя функции git из-за рекурсии и путаницы с аргументами, а также тот факт, что вы Git для оболочки Windows, также может добавлять ту же функцию при ее запуске. Вы также можете столкнуться с проблемами пути, поэтому будьте осторожны в правильной настройке своих путей.

# call git gui from Git For Windows path with `ggui`
    gg() { 
    command "/cygdrive/c/Program Files (x86)/Git/bin/git" gui  2>/dev/null;


    }

когда вы закончите редактирование .bashrc, обновите настройки:

source ~./bashrc

а потом просто:

gg

после выполнения 4 шагов, заданных me_and и tititou36, вы все еще можете иметь проблемы с XWin просто умереть после запуска XwinServer.

причина в том, что он полагается на терминал/консоль CygWin, который является хостом, и Xwin умирает, если нет консоли CygWin.

решение для этого:

запустите консоль Cygwin. (вы можете сделать это автоматически начать в файле .startxwinrc под вашим домом cygwin справочник.

вот что сработало для меня:

cat >> ~/.bash_profile <<< "export DISPLAY=:0.0"

из диспетчера пакетов cygwin выполните следующие действия:

установить xorg-server и некоторые шрифты xorg,xorg-x11-fonts-Type1 особенно

далее создайте ссылку на папки шрифтов windows для git gui использовать

ln -s /cygdrive/c/Windows/Fonts /usr/share/fonts/win-fonts

закройте терминал cygwin и снова откройте, затем введите

startxwin &> /dev/null &

git gui &

исходя из ответа AndrewD: использовать по Cygwin git, но и использовать Windows в Git gitk и git gui. Другими словами, удалите пакеты Git-gui и gitk из cygwin (если они установлены). Тогда which gitk должен указывать на файл Windows, а не на двоичный файл cygwin в /usr/bin.