gedit
Ubuntu 12.04 Serverを実行しているAmazon EC2インスタンスに接続されているWindowsのSSHターミナルから実行しようとしていますが、このエラーが表示されます。
Cannot open display:
どうすれば修正できますか?
gedit
Ubuntu 12.04 Serverを実行しているAmazon EC2インスタンスに接続されているWindowsのSSHターミナルから実行しようとしていますが、このエラーが表示されます。
Cannot open display:
どうすれば修正できますか?
回答:
サイドでWindowsを使用しているため、WindowsでローカルXサーバーを実行するSSHクライアントが必要です。これにより、画面上のサーバーからグラフィカルアプリケーションをリモートで実行できます。
経験から、この機能が組み込まれた無料のMobaXTermをお勧めします。ダウンロードして試してください:
エラーが発生した場合、それは X サーバーへのX転送を許可するための最小サーバーイメージがセットアップされていない場合があるためです。その場合は、コメントしてください。解決のお手伝いをいたします。Ubuntu / Debianを実行する多くの最小限のVPSでこれを実行しました。
sshを使用して、自宅のPC(マシンと呼びましょう)からサーバー(サーバーと呼びましょう)に接続していますか?マシンを介してサーバー上のグラフィカルウィンドウでプログラムを起動したいですか?それが正しい場合は、必ず読んでください。
プログラムを呼び出して起動しますgedit
が、プロセスはすべて同じです。グラフィカルウィンドウを表示する場所に応じて、右の見出しにスキップします。
リモートマシンでgeditのウィンドウを表示して使用したいが、サーバーで起動したい場合、シェルセッションは次のようになります。
user@remote-machine:~$ ssh -X user@server
Last login: Tue Aug 14 13:47:04 2012 from clientXX
*******************************************************************************
M O T D (Message Of The Day)
*******************************************************************************
user@server:~$ gedit .bash_aliases
** (gedit:7851): WARNING **: Could not load theme icon gtk-home: Icon 'gtk-home' not present in theme
(gedit:7851): Gtk-WARNING **: Attempting to store changes
警告を気にしないでください、それらは正常です-geditウィンドウは、サーバー上で表示されるように、リモートマシンの画面にポップアップ表示されます。秘Theはssh -X
、Xトンネリングを有効にし、DISPLAY
変数を右に設定する「-X」オプションを使用することです。
これは、X11をサポートするSSHクライアントを使用しており、サーバーでXサーバーが実行されていることを前提としています(GUIを使用せずにXサーバーを実行しない場合もあります)。特にWindowsでは、ほとんどのWindowsターミナルプログラムにはXがないため、これは問題になる可能性があります。izxが述べたように、MobaXTermはX-Serverを備えたWindows用の多くのSSHクライアントの1つです。
ただし、X11がないサーバーの場合は、インストールする必要があります。
次のようにgeditを呼び出して、サーバーの画面でインスタンスを開始することもできます。
ssh user@server
DISPLAY=:0.0 gedit
:0.0
ただし、正しいXスクリーンに表示する代わりに、正しい値に置き換える必要があります(複数のスクリーンがサーバーに接続されている場合、またはその構成がやや特殊な場合にのみ重要です)。
ここで動作しない最も一般的なシナリオは、サーバーにX11-Serverがなく、モニターが接続されていないか、グラフィカルユーザーインターフェイスがなく、これを読んでいない場合です:D。
私はこのには専門家だが、私はそれがうまくいくと思う方法は、各物理画面こと、すなわち、個々のコンピュータに接続されている各モニターでの形で実行されている番号を取得し0.0
、1.0
、2.0
、...
この番号は、X-Window-System(別名X11)によって割り当てられます。これは、Unity、Gnome、KDEなどが構築できるネットワークと基本的なグラフィカルインターフェイスを提供するレイヤーです。
for x in /tmp/.X11-unix/X*; do echo ":${x##*X}"; done
問題のマシンで実行することにより、特定のマシンのディスプレイの数と使用中の数字を確認できます。DISPLAY
変数をに応じて設定することにより、同じネットワーク内の任意のマシンからホスト画面を使用できますDISPLAY=hostname:0.0
。-X
オプションを提供する場合、Sshは賢明な方法でこれを行います。
*注意:このforループよりも良い方法があると思います。
シェルテキストエディターを使用します。vi
、vim
、nano
そしてemacs
最も一般的であり、それらの少なくとも一方がインストールされ、運用されます。それらのうちnano
、最も簡単で最も自明です。
for
ループを少し変更しました:0
:0.0
。表示アドレスのみを表示するようになりました。あなたがそれがあなたの望むものではないと思うなら、元に戻してください..
基本的に、SSHを介して端末があり、GeditはGUIプログラムです。con-f-useの答えは、Linux GUIクライアントセッションから機能するようにします。
他のオプションは、nano、Vi、または他の多くのような非GUIエディターを使用することです。