Why can't I install MATLAB with the root account in Linux when the installer works for my user account?

108 views (last 30 days)
When I try to run the install script as root on Linux, why am I unable to install MATLAB? I can start the installer normally on my user account.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 25 Feb 2025
Edited: MathWorks Support Team on 25 Feb 2025
This error is related to some of the environment variables from your user account not being passed to root when running the installer. There are 2 specific variables that will cause this, your DISPLAY variable, which will tell the install what screen to start on and XAUTHORITY which gives user permissions to display programs to that screen.
If you are unable to set these variables, please either speak to your IT department for assistance, or install MATLAB to a folder for which you have permissions.
This issue comes in two forms:
  • With no error message or a blank screen
  • With error messages
  • With no error message or blank screen
    If no error message appears when running the MathWorks installer as root, particularly with MATLAB R2021b and later, it may be an issue with an inability to access the X Server. As a workaround, please try the following: 
    • Launch Terminal
    • Type the following in the terminal to allow the root user to access the running X server:
    xhost +SI:localuser:root
    • After running the command above try running the installer "sudo ./install"
    If this does not work, try the following:
    1. Move the installer folder to /opt/
    2. Give root ownership of the installer folder (for example: chown -R root:root matlab_R20XXx_glnxa64), replacing XXx with the specific release of the installer folder.
    3. Run the installer from this folder as root
    With error messages

    Authorization required, No graphics display found.

    This indicates that the user / root user does not have access to the graphical interface for the installer.  The full error message would show up like this after running the command "sudo ./install" 
    Authorization required, but no authorization protocol specified
    No graphics display found.  Unable to start application in GUI mode.  Consider relaunching the app in a graphical environment.
    The solution to this error would be to grant access for the user / root user access: 
    xhost +SI:localuser:root

    XAUTHORITY 

    On some distributions, other users are prevented from starting windows on X servers owned by other users. The XAUTHORITY environment variable points to the location of a key on your system that is required to start X applications on that display. Depending on your distribution, this key will be located in different locations. An error relating to XAUTHORITY may appear like the following or with no error message at all:
    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.
    The simplest way to get around this is to allow all users on this machine to start programs on this display:
    xhost + localhost
    If you are connecting to this machine remotely, run the below instead:
    xhost +
    This will also allow remote users to start programs on this display. After installing MATLAB, you may want to replace these restrictions with either:
    xhost - localhost
    Or
    xhost -

    DISPLAY

    The DISPLAY environment variable tells program what display they should be started on. You will receive an error such as the below:
    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
    Or
    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)
    To resolve this, you can temporarily set the DISPLAY variable for root to the value that is set for your user account.
    Run the below as your user account:
    printenv | grep DISPLAY
    This will show your display environment variable. Remember this for later. Now enter the below:
    suexport <DISPLAY>
    Where <DISPLAY> is the value of the DISPLAY variable from the printenv command.
    If none of these suggestions work and you have an internet connection, try using MATLAB Package Manager to install MathWorks Products. The instructions and additional details for it can be found below.
    MATLAB Package Manager

    More Answers (0)

    Categories

    Find more on Introduction to Installation and Licensing in Help Center and File Exchange

    Tags

    No tags entered yet.

    Products

    Community Treasure Hunt

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

    Start Hunting!