web-dev-qa-db-ja.com

Linux用のCygwin / XおよびWindowsサブシステム

機能しているXorgウィンドウ環境を含む、機能しているCygwinが私のWindows 10デバイス(Surface 3、重要な場合)にインストールされています。 Linux用のWindowsサブシステムについても実験を始めたばかりです。 WSLからGUIアプリケーションを実行するためのアドバイスは、別のXサーバーをインストールすることです。通常はXmingが推奨されますが、Cygwinが機能しないはずの提案は見ていません。

ただし、単純な方法は失敗します。

WSL $ export DISPLAY=:0
WSL $ emacs &
Display :0 unavailable, simulating -nw

ネットワーキングの問題かもしれないと思った

WSL $ telnet localhost 6000
Trying 127.0.0.1...
telnet: Unable to connect to remote Host: Connection refused
WSL $ /sbin/ifconfig
Warning: cannot open /proc/net/dev (No such file or directory). Limited output.
WSL $ # there was no output at all, actually

...しかし、リモートマシンへのsshは正常に機能し、Xserverは前回デバッグしたときから、ポート6000でのリッスンを停止しているようです。

実行してみましたcygwin $ xhost +localhostxhostが現在そこにインストールされていないことを発見するためだけです。これは次に試すことになるかもしれませんし、野生のガチョウの追跡かもしれません--- xhost(または少なくとも裸のxhost +was前回Xサーバーをデバッグしたときはほとんどお勧めできませんでした。

WSLがCygwin Xサーバーを使用できないようにする根本的な欠陥はありますか?そうでない場合、どうすればよいですか?

14
rob

Cygwin/XにTCPをリッスンするように指示する必要があります。デフォルトではTCPをリッスンしません。これを行うには、オプション-listen tcpをXLaunchに渡します。これを行うと、それは本当にうまくいきます。私は実際にはXmingよりCygwin/Xを好みます。詳細は マニュアル をご覧ください。


Cygwin/Xを起動するために使用しているショートカットを見つけます。 (ユーザーごとのスタートアップショートカットはC:\Users\<you>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupにありますが、システム全体のスタートアップショートカットはC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUpにあります。このリンクの[プロパティ]を開き、ターゲットを

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin"

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin -- -listen tcp"

xauthをサポートするには、CygwinのホームディレクトリからWSLのホームディレクトリに~/.Xauthorityをコピーする必要があります。

または、xauthを無効にする場合は、Cygwinの/usr/bin/startxwinを編集して、上部近くの適切な行をenable_xauth=0に変更します。

15

Xサーバーはstartxで起動する必要があります。 X Windowsをインストールしていない場合は、Cygwin setup.exeをクリックし、すべてのX Windowsシステムとウィンドウマネージャーを選択します。

0
Chloe