Не удается запустить git gui с помощью cygwin на окнах
Я запускал 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)
Кто знает, как это решить?
Ответы
Ответ 1
Изменить: обновлен в марте 2016 года для учета переименованных пакетов и т.д.
Cygwin gitk и git gui требуют X11. Это означает, что вам нужно установить некоторые из пакетов Cygwin X11 и настроить их, чтобы открыть графический интерфейс.
Это должно помочь вам:
- Запустите программу установки Cygwin (снова загрузите соответствующую setup - *. exe, если вам нужно).
- В списке пакетов выберите установку "xinit" в категории X11. Нажмите "Далее", примите все зависимости и установите.
- В меню "Пуск" Windows у вас должна быть новая группа: Cygwin-X. Оттуда запустите XWin Server.
- В вашей оболочке Cygwin запустите
export DISPLAY=:0.0
.
Вам нужно будет повторить шаг 3 каждый раз, когда вы перезагружаете компьютер, и шаг 4 каждый раз, когда вы открываете новую оболочку Cygwin (или просто запускаете echo "export DISPLAY=:0.0" >>~/.profile
, чтобы она запускалась автоматически всякий раз, когда вы создаете новую оболочку).
В комментариях кажется, что некоторые люди получают ошибки, заявляя, что "не удалось подключиться к отображению": 0.0 ". Если вы это поняли, наведите указатель мыши на значок X, который должен появиться на панели задач (вам может понадобиться щелкнуть значок маленького размера, если значок X был скрыт); во всплывающем заголовке должно быть указано что-то вроде" Cygwin/X Server: 1.0 ". Используйте значение": 1.0 "(или все, что вы видите) как значение для DISPLAY
на шаге 4, а не": 0.0", убедившись, что нужно включить двоеточие.
Если у вас возникли другие проблемы с запуском X-сервера, вы, вероятно, обнаружите, что у вас есть файл с именем ~/.xsession-errors
; проверьте содержимое этого для того, что пойдет не так. Также проверьте, есть ли у вас файл ~/.startxwinrc
, и попробуйте удалить его и посмотреть, устраняет ли это проблему.
Для заинтересованного, причина, по которой пакеты X11 не установлены автоматически, заключается в том, что они не технически необходимы: это возможно через несколько запутанные означает использовать другой сервер X11, чем тот, который устанавливается Cygwin при установке пакета "xinit".
Ответ 2
Проведя больше времени, чем я хотел бы признать, мне удалось найти рабочее решение для выполнения gitk
из моей оболочки cygwin. Я не мог получить ни одну из инструкций, чтобы запустить X-сервер для надежной работы, и, в конце концов, решение было довольно простым.
Самое большое предостережение необходимо установить Git для Windows, скачать для него можно здесь.
Теперь для всей выполняемой части gitk
. Git для окон включает в себя папку cmd, которая имеет файл командной строки gitk.cmd
. Это все, что вам нужно вызвать, чтобы открыть gitk
.
$ [path-to-git]/cmd/gitk.cmd
В моей системе путь Git находится в "C:\Program Files (x86)\Git", поэтому команда будет выглядеть так:
$ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
В моем ~/.bash_profile я добавил функцию для обработки этого вызова, которая выглядит так:
gitk() {
"/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
}
Надеюсь, что это поможет кому-то еще попытаться понять эту штуку.
Ответ 3
echo "export DISPLAY=:0.0" >>~/.profile
или
echo "export DISPLAY=:0.0" >>~/.bash_profile
в моем случае
Ответ 4
Избегайте X11 и добавляйте поддержку git gui
для cygwin
Если вы хотите избежать X11 (а кто нет?):
(необязательно) Если вы хотите остаться в 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
Ответ 5
После выполнения 4 шагов, заданных me_and и tititou36, у вас все еще могут быть проблемы с XWin, только после того, как вы запустили XwinServer.
Причина в том, что он полагается на терминал/консоль CygWin, который является хостом, и Xwin умирает, если нет консоли CygWin.
Решение для этого:
Запустите консоль Cygwin. (вы можете сделать это автоматически, поместив команду mintty
в файл .startxwinrc
в свой домашний каталог cygwin.
Ответ 6
Вот что сработало для меня:
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 &
Ответ 7
Основываясь на ответе AndrewD: используйте cygwin git
, но используйте Windows Git gitk
и git gui
. Другими словами, удалите пакеты git -gui и gitk из cygwin (если они установлены). Затем which gitk
должен указывать на файл Windows, а не на cygwin binary в /usr/bin
.