以前はcygwinコンソールでgit guiを問題なく起動していましたが、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)
これを解決する方法を知っている人はいますか?
Edit:名前が変更されたパッケージなどを考慮して2016年3月に更新されました。
Cygwinのgitkおよびgit guiにはX11が必要です。これは、Cygwin X11パッケージの一部をインストールし、GUIを開くことができるようにセットアップする必要があることを意味します。
これにより、起動して実行できます。
export DISPLAY=:0.0
を実行します。コンピューターを再起動するたびにステップ3を繰り返し、新しいCygwinシェルを開くたびにステップ4を繰り返す必要があります(または、新しいシェルを作成するたびにecho "export DISPLAY=:0.0" >>~/.profile
を実行するだけで自動的に実行されます)。
コメントでは、「「0.0」を表示するために接続できませんでした」というエラーが発生しているようです。その場合は、システムトレイに表示されるはずのXの上にマウスを置きます(Xアイコンが非表示になっている場合は、小さなアップアイコンをクリックする必要があります)。ポップアップタイトルには、「Cygwin/X Server:1.0」などのように表示されます。 「:0.0」ではなく、手順4でDISPLAY
の値としてその「:1.0」(または表示されているもの)を使用し、コロンを含めるようにしてください。
Xサーバーの起動中に他の問題がある場合は、おそらく~/.xsession-errors
というファイルがあることに気付くでしょう。何が間違っているのか、その内容を確認してください。また、~/.startxwinrc
ファイルがあるかどうかを確認し、それを削除して問題が解決するかどうかを確認してください。
興味のある人のために、X11パッケージが自動的にインストールされない理由は、それらが 技術的には必要ではない であるためです。 「xinit」パッケージ。
認めようと思った以上の時間を費やした後、cygwin Shellからgitk
を実行する実用的なソリューションを見つけることができました。 Xサーバーを起動して信頼性の高い動作をさせるための指示を得ることができませんでした。最終的に、ソリューションは非常に簡単でした。
最大の注意点は、Git for Windowsをインストールする必要があることです。そのためのダウンロードは here にあります。
実行中のgitk
部分全体について。 Git for windowsには、gitk.cmd
windowsコマンドファイルがある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"
}
これがこの作品を理解しようとする他の誰かを助けることを願っています。
X11を避け、_git gui
_サポートをcygwinに追加します
X11を避けたい場合(だれがそうしませんか?):
C:\Program Files (x86)\Git\Git Bash
を開きますgit gui
_を実行します(オプション)cygwinにとどまって_git gui
_を起動したい場合は、_~/.bashrc
_に関数を追加します。唯一の注意点は、do not関数に名前を付ける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
_
echo "export DISPLAY=:0.0" >>~/.profile
または
echo "export DISPLAY=:0.0" >>~/.bash_profile
私の場合
Me_andおよびtititou36で指定された4つの手順を実行した後、XwinServerを起動した直後にXWinの問題が発生する場合があります。
その理由は、ホストであるCygWinターミナル/コンソールに依存しているため、CygWinコンソールがないとXwinが停止するためです。
これに対する解決策は次のとおりです。
Cygwinコンソールを開始します。 (mintty
コマンドをファイルに挿入することにより、自動的に開始することができます.startxwinrc
cygwinホームディレクトリの下。
ここに私のために働いたものがあります:
cat >> ~/.bash_profile <<< "export DISPLAY=:0.0"
Cygwinパッケージマネージャーから、次の操作を行います。
xorg-server
およびいくつかのxorgフォント、特にxorg-x11-fonts-Type1
をインストールします
次に、git gui
が使用するWindowsフォントフォルダーへのリンクを作成します
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
を使用します。つまり、cygwin(インストールされている場合)からgit-guiおよびgitkパッケージをアンインストールします。 which gitk
は、/usr/bin
のcygwinバイナリではなく、Windowsファイルを指す必要があります。