web-dev-qa-db-ja.com

Windowsでcygwinを使用してgit guiを起動できません

以前は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)

これを解決する方法を知っている人はいますか?

66
Stijn Vanpoucke

Edit:名前が変更されたパッケージなどを考慮して2016年3月に更新されました。

Cygwinのgitkおよびgit guiにはX11が必要です。これは、Cygwin X11パッケージの一部をインストールし、GUIを開くことができるようにセットアップする必要があることを意味します。

これにより、起動して実行できます。

  1. Cygwinインストーラーを再度実行します(必要に応じて、関連する setup-*。exe を再度ダウンロードします)。
  2. パッケージリストで、X11カテゴリの下に「xinit」のインストールを選択します。 [次へ]をクリックし、すべての依存関係を受け入れてインストールします。
  3. Windowsの[スタート]メニューに、新しいグループCygwin-Xが必要です。そこから、XWin Serverを実行します。
  4. Cygwin Shellで、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」パッケージ。

122
me_and

認めようと思った以上の時間を費やした後、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"
}

これがこの作品を理解しようとする他の誰かを助けることを願っています。

9
David Kartik

X11を避け、_git gui_サポートをcygwinに追加します

X11を避けたい場合(だれがそうしませんか?):

  1. Git for Windows(cygwin以外)をインストールします http://git-scm.com/download/win
  2. コマンドシェルC:\Program Files (x86)\Git\Git Bashを開きます
  3. _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
_
6
AndrewD
echo "export DISPLAY=:0.0" >>~/.profile

または

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

私の場合

6
tititou36

Me_andおよびtititou36で指定された4つの手順を実行した後、XwinServerを起動した直後にXWinの問題が発生する場合があります。

その理由は、ホストであるCygWinターミナル/コンソールに依存しているため、CygWinコンソールがないとXwinが停止するためです。

これに対する解決策は次のとおりです。

Cygwinコンソールを開始します。 (minttyコマンドをファイルに挿入することにより、自動的に開始することができます.startxwinrc cygwinホームディレクトリの下。

2
Minnie Shi

ここに私のために働いたものがあります:

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 &

2
smac89

AndrewDの回答に基づく:cygwinのgitを使用しますが、Windows Gitのgitkおよびgit guiを使用します。つまり、cygwin(インストールされている場合)からgit-guiおよびgitkパッケージをアンインストールします。 which gitkは、/usr/binのc​​ygwinバイナリではなく、Windowsファイルを指す必要があります。

0
C-Otto