インストーラーがユー​ザーアカウントで動作​するときに、Linu​xにrootアカウン​トでMATLABをイ​ンストールできないの​はなぜですか?

6 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2023 年 6 月 27 日
編集済み: MathWorks Support Team 2023 年 7 月 6 日
Linuxで root アカウントとしてインストールスクリプトを実行しようとすると、インストーラーを起動できないのはなぜですか? ユーザーアカウントではインストーラーを正常に起動できます。

採用された回答

MathWorks Support Team
MathWorks Support Team 2023 年 7 月 6 日
編集済み: MathWorks Support Team 2023 年 7 月 6 日
このエラーは、インストーラー実行時にユーザーアカウントの環境変数の一部が root に渡されないことに起因しています。原因となる2つの変数として、インストールにどの画面で起動するかを指示する DISPLAY 変数と、その画面にプログラムを表示する権限をユーザーに与える XAUTHORITY があります。
これらの変数を設定できない場合は、IT 部門に問い合わせるか、アクセス許可のあるフォルダーに MATLAB をインストールしてください。
この問題には、次の 2 つの症状があります。
  • エラーメッセージなし、または空白画面
  • エラーメッセージあり
エラーメッセージがない場合や空白の画面
特に MATLAB R2021b 以降で MathWorks インストーラを root として実行しているときにエラー メッセージが表示されない場合は、X サーバーにアクセスできないことが原因である可能性があります。回避策として、以下をお試しください。
  • ターミナルを起動します。
  • ターミナルに次のように入力して、root ユーザーが実行中の X サーバーにアクセスできるようにします。
xhost +SI:localuser:root
  • 上記のコマンドを実行した後、インストーラ "sudo ./install"を実行します。
これが機能しない場合は、次のことを試してください。
  1. インストーラーファイルを /opt/ に移動します。
  2. インストーラーフォルダの所有権を root に与えます
    コマンド例:chown -R root:root matlab_R2023a_glnxa64
  3. そのフォルダから 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

その他の回答 (0 件)

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!