cannot open display:の解決方法【2025年最新版】

cannot open display:の解決方法【2025年最新版】

エラーの概要・症状

このエラーメッセージ「cannot open display:」は、主にGUIを必要とするアプリケーションを実行しようとした際に発生します。特に、X11(X Window System)を使用しているLinuxシステムにおいて、グラフィカルなアプリケーションが表示されない場合に見られます。このエラーは、リモート接続やSSHでのセッション中に、Xサーバーとの接続が正しく行われていないことが原因です。

ユーザーは、アプリケーションを起動しようとすると、次のようなエラーメッセージに直面する場合があります。例えば、 npm testjestコマンドを実行するときに、表示されることがあります。これにより、アプリケーションを使用できず、開発やテストが行えなくなるため、非常に困ります。

このエラーが発生することで、ユーザーは開発環境の設定や、アプリケーションの実行に支障をきたし、時間を浪費することになりかねません。特に、リモートサーバーで作業する際には、このエラーが頻繁に発生します。

このエラーが発生する原因

「cannot open display:」エラーの主な原因は以下の通りです。

  1. Xサーバーが起動していない: GUIアプリケーションはXサーバーに依存しており、Xサーバーが動作していない場合は、表示が行えません。
  • XサーバーはLinuxのグラフィカル環境を提供するもので、通常はデスクトップ環境とともに起動します。リモート接続を行う場合、Xサーバーが適切に設定されている必要があります。
  1. DISPLAY環境変数が設定されていない: Xアプリケーションは、どのXサーバーに接続するかを知るためにDISPLAY変数を利用します。これが誤っているか、設定されていないとエラーが発生します。
  • 通常、DISPLAY環境変数はlocalhost:0127.0.0.1:0といった形式になります。
  1. SSH接続時のX11フォワーディングの設定不備: リモートサーバーにSSH接続を行う際、X11フォワーディングが適切に設定されていないと、表示が行えません。SSH接続時に-Xオプションを使用する必要があります。
  • これは、SSHサーバー側の設定(/etc/ssh/sshd_config)でもX11Forwarding yesが必要です。
  1. ファイアウォールやセキュリティ設定: Xサーバーへのアクセスを制限するファイアウォールやセキュリティポリシーが存在することも原因です。
  • 特にリモート接続の場合、ポート6000番(Xサーバーが使用するポート)が開いている必要があります。
  1. ユーザー権限の不足: Xサーバーに接続するための適切な権限がない場合も、エラーが発生します。特に、特定のユーザーに対してXサーバーからのアクセスが許可されていない場合です。
  • この場合、xhostコマンドを使用してアクセスを許可することができます。

解決方法1(最も効果的)

手順1-1(具体的なステップ)

  1. Xサーバーが起動していることを確認: startxコマンドを使ってXサーバーを起動します。もしすでに起動している場合は、次のステップに進みます。
  2. DISPLAY環境変数の設定: ターミナルで以下のコマンドを実行して、DISPLAY変数が正しく設定されているか確認します。

   echo $DISPLAY

もし空であれば、次のコマンドで設定します。

コメント

タイトルとURLをコピーしました