このエラーは、インストーラー実行時にユーザーアカウントの環境変数の一部が root に渡されないことに起因しています。原因となる2つの変数として、インストールにどの画面で起動するかを指示する DISPLAY 変数と、その画面にプログラムを表示する権限をユーザーに与える XAUTHORITY があります。
これらの変数を設定できない場合は、IT 部門に問い合わせるか、アクセス許可のあるフォルダーに MATLAB をインストールしてください。
この問題には、次の 2 つの症状があります。
- エラーメッセージなし、または空白画面
- エラーメッセージあり
エラーメッセージがない場合や空白の画面
特に MATLAB R2021b 以降で MathWorks インストーラを root として実行しているときにエラー メッセージが表示されない場合は、X サーバーにアクセスできないことが原因である可能性があります。回避策として、以下をお試しください。
- ターミナルを起動します。
- ターミナルに次のように入力して、root ユーザーが実行中の X サーバーにアクセスできるようにします。
xhost +SI:localuser:root
- 上記のコマンドを実行した後、インストーラ "sudo ./install"を実行します。
- インストーラーファイルを /opt/ に移動します。
- インストーラーフォルダの所有権を root に与えますコマンド例:chown -R root:root matlab_R2023a_glnxa64
- そのフォルダから root としてインストーラを実行します。
エラーメッセージが表示される場合
XAUTHORITY
一部のディストリビューションでは、他のユーザーが所有する X サーバー で他ユーザーがウィンドウを起動できません。XAUTHORITY 環境変数は、そのディスプレイで X アプリケーション を開始するために必要なシステム上のキーの位置を指します。ディストリビューションに応じて、このキーは別の場所に配置されます。XAUTHORITY に関連するエラーは、次のように表示されるか、エラーメッセージがまったく表示されないことがあります。
ERROR: No protocol specified Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':2' as the value of the DISPLAY variable.
これを回避する最も簡単な方法は、このマシン上のすべてのユーザーが、このディスプレイでプログラムを起動できるようにすることです。
xhost + localhost
このマシンにリモートで接続している場合は、代わりに以下を実行してください。
xhost +
これにより、リモートユーザーはこのディスプレイでプログラムを起動することもできます。MATLAB をインストールした後、これらの制限を次のいずれかに置き換えることができます。
xhost - localhost
または
xhost -
DISPLAY
DISPLAY 環境変数は、どのディスプレイで開始するかをプログラムに指示します。それに問題がある場合、次のようなエラーが表示されます。
ERROR: Error: Installation cannot proceed. You may either:1. Set an X11 display, and restart the install process2. Use the silent install feature by specifying the -mode silent option
または
ERROR: Exception in thread "main" com.google.inject.ProvisionException: Guice provision errors:1) Error injecting constructor, java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment at com.mathworks.instutil.wizard.JEditorPaneHyperlinkHandler.<init>(JEditorPaneHyperlinkHandler.java:57) while locating com.mathworks.instutil.wizard.JEditorPaneHyperlinkHandler while locating com.mathworks.instutil.wizard.HyperlinkHandler for parameter 5 at com.mathworks.wizard.ui.components.SwingComponentFactoryImpl.<init>(SwingComponentFactoryImpl.java:111)
これを解決するには、root の DISPLAY 変数を、ご使用のユーザーアカウントに設定された値に一時的に設定します。
ユーザーアカウントとして以下を実行します。
printenv | grep DISPLAY
これにより、表示環境変数が表示されます。これは後で使用するために覚えておいてください。次に、以下を入力します。
su
export <DISPLAY>
ここの変数 <DISPLAY> は、printenv コマンドの DISPLAY 変数の値です。
これらの提案のいずれも機能せず、インターネットに接続している場合は、MATLAB パッケージマネージャーを使用して MathWorks 製品をインストールしてみてください。その手順と追加の詳細は以下にあります。
MATLAB Package Manager