Ubuntu 16.04安装MATLAB R2021b完整流程与常见错误排查指南

发布时间:2026/10/21 0:11:52
Ubuntu 16.04安装MATLAB R2021b完整流程与常见错误排查指南
ubuntu16.0下matlab2021b版本详细安装步骤写这篇东西的起因是前段时间换了台旧工作站系统是Ubuntu 16.04日常做数据分析、跑算法验证都得用MATLAB。一开始天真地以为装上就能跑结果从挂载镜像到启动桌面踩了整整一下午的坑。网上搜到的安装教程大多是老版本或者CentOS的专门针对Ubuntu 16.04加R2021b这套组合的完整记录反而不多。所以把这次实操过程从头到尾整理一遍包括我踩过的坑、改过的权限、补过的依赖库给同样环境的朋友一份可以照着做的参考。这篇内容适合这几类人刚接触Linux、第一次在Ubuntu上装MATLAB的新手需要从旧版本迁移到R2021b的老用户以及要给实验室或多台同配置机器批量安装、想少走弯路的运维同学。整个过程大概半小时能完成但如果你之前没装过建议留出半天时间因为有几个坑真的会让你怀疑人生。1. 安装前的准备工作1.1 环境信息确认动手之前一定要确认自己的环境很多安装失败都是因为环境和安装包不匹配。我这次用的系统是Ubuntu 16.04.7 LTS64位内核版本4.15。MATLAB R2021b官方支持的最低Glibc版本是2.17而Ubuntu 16.04自带的是2.23所以系统层面是满足的。但要注意R2021b是最后一个支持Ubuntu 16.04的大版本——后续的R2022a开始官方支持列表里就移除了16.04。如果你的系统也是16.04想装新版本这条路是走不通的。需要准备的东西有这几样MATLAB R2021b的Linux安装镜像一般是几个ISO文件命名类似R2021b_Linux.iso总大小约20GB包含主镜像和若干个分卷安装密钥File Installation Key正版用户从官网获取License文件如果你们实验室或公司用的是网络许可证需要先拿到License Server的地址和端口如果是本地单机版则要有license.lic文件磁盘空间完整安装大概需要29GB建议预留35GB以上因为安装过程中会有临时文件占用内存官方要求最少4GB但建议8GB以上因为MATLAB启动和运行时的内存开销不小检查磁盘空间可以使用df -h确认挂载点有足够空间。检查CPU架构使用uname -m输出应该是x86_64。1.2 系统依赖库检查这是最容易被忽略的一步。MATLAB本质上是Java应用加一堆原生库的组合运行时依赖很多系统库。Ubuntu 16.04的默认安装往往缺少其中一部分特别是桌面版。我建议先执行一次依赖库完整性检查ldd /usr/local/MATLAB/R2021b/bin/glnxa64/MATLAB | grep not found如果输出为空说明依赖完整。如果列出了libXXX.so not found那就需要单独安装对应的库。常见的缺失库是libXss.so.1、libXext.so.6、libXt.so.6这些X11相关的图形库。不过这个检查得等MATLAB装完才有意义安装之前你需要确保系统里已经准备好了基础编译环境和图形库sudo apt-get update sudo apt-get install -y build-essential gcc g gfortran sudo apt-get install -y libx11-dev libxext-dev libxt-dev libxmu-dev libxss-dev sudo apt-get install -y libc6-dev libstdc6 sudo apt-get install -y xorg-dev这些包是MATLAB运行时的基础依赖。如果不装后续可能出现MATLAB能启动但无法打开图形界面、或者一运行就段错误的情况。1.3 挂载ISO镜像的几种方式MATLAB的Linux安装包是以ISO镜像形式分发的。在Ubuntu 16.04下有几种挂载方式方式一使用mount命令直接挂载sudo mkdir -p /mnt/matlab_iso sudo mount -o loop R2021b_Linux.iso /mnt/matlab_iso这种方式的缺点是如果你的安装包是多个分卷ISO需要逐个挂载、逐个拷贝比较繁琐。方式二使用归档管理器直接解压mkdir ~/matlab_installer cd ~/matlab_installer 7z x R2021b_Linux.iso如果系统没装p7zip需要先执行sudo apt-get install -y p7zip-full。解压的好处是后续安装可以随意切换目录不需要保持ISO挂载状态。缺点是占用额外磁盘空间。方式三如果下载的是已经解压好的文件夹这一步就可以跳过了。我个人推荐方式一或方式二都行。方式二相对灵活因为安装过程中安装器可能会要求切换分卷如果是挂载ISO的方式需要反复执行mount/umount比较麻烦。解压到本地就省事很多。1.4 安装目录规划安装目录规划是我之前一直忽略但后来发现很重要的事情。MATLAB默认安装到/usr/local/MATLAB/R2021b这个路径是官方推荐的因为所有用户都能访问也符合FHS文件系统标准。我个人建议直接使用默认路径原因有三官方的Mex编译器、Toolbox工具箱配置都默认指向这个路径用默认位置可以减少后续配置工作所有用户都能直接运行MATLAB不需要每个用户单独配置后续更新补丁时官方文档中的路径示例都基于默认位置但有一点要注意/usr/local目录需要root权限才能写入。所以如果你希望安装后不用每次启动都输密码、或者你的账号有sudo权限但不想频繁输密码可以考虑安装到用户目录下比如~/MATLAB/R2021b。但这样做的代价是其他用户无法直接使用而且某些工具箱的文件权限可能出问题。所以我的建议是单用户使用就装到home目录多用户使用就装到/usr/local。如果装到/usr/local安装完记得用chown修改权限或者把用户加入matlab用户组避免每次都以sudo方式启动MATLAB。2. 核心安装流程与配置2.1 安装器启动与图形界面设置准备工作做完后正式进入安装环节。如果你是通过SSH远程安装需要确保X11转发已开启并且本地有X Server比如Windows下的MobaXterm、Xming或者macOS下的XQuartz。SSH连接时加上-X参数ssh -X userserver然后启动安装器cd /mnt/matlab_iso sudo ./install或者如果你不想要图形界面MATLAB也支持纯命令行安装模式sudo ./install -mode silent -inputFile installer_input.txt这个后面会讲到。图形界面安装最直观但我建议即使是图形界面也先把一些关键的选项搞清楚因为有些选项一旦选错后面不好改。安装器启动后它会自动检测Java环境。R2021b自带了所需的Java运行时所以一般不会因为Java问题卡住。如果看到Java相关的报错多半是系统缺少某个库回到第一步检查依赖库。2.2 登录验证与License类型选择安装向导第一步会让你登录MathWorks账号或者使用文件安装密钥。这里有一个重要区别如果你选择登录MathWorks账户方式安装器会联网验证你的许可证要求目标机器能访问外网而且安装完成后首次启动MATLAB也需要联网激活。如果你选择使用文件安装密钥方式安装全程不需要联网适合内网机器。你需要输入25位的File Installation Key。对于激活方式的选择我的建议是如果你在实验室或公司有网络许可证服务器Network License选择使用网络许可证后续只需要配置License Server地址一般是端口主机名格式比如27000license-server如果是个人单机使用选择使用文件安装密钥安装完成后把license.lic放到指定位置这一步最容易出错的是Network License的配置。MATLAB启动时读取license.lic文件如果文件里写的是SERVER行和DAEMON行那就是网络许可证如果写的是INCREMENT行那就是单机许可证。格式不能搞混否则启动会直接报许可证错误。2.3 产品选择与磁盘空间确认到了产品选择界面它会列出所有可安装的工具箱。默认是全选但真的不建议全选——很多工具箱你可能一辈子都用不上而且每个工具箱都会占用几百MB到几个GB的空间。我建议按需选择。做数据分析就装这些MATLAB必选Simulink如果做仿真Symbolic Math ToolboxStatistics and Machine Learning ToolboxOptimization ToolboxCurve Fitting ToolboxSignal Processing ToolboxImage Processing ToolboxParallel Computing Toolbox如果有多个核或GPU做深度学习的话还需要Deep Learning ToolboxGPU Coder如果要用GPU加速确定选择后安装器会显示所需磁盘空间。如果提示空间不足回退调整或者清理磁盘。在确认安装前安装器会列出目标目录的可用空间务必核对。2.4 静默安装模式非交互安装如果你需要在多台机器上重复安装图形界面逐台操作实在太低效了。R2021b支持使用installer_input.txt配置文件进行静默安装。先创建一个配置文件内容类似如下destinationFolder/usr/local/MATLAB/R2021b fileInstallationKeyXXXXX-XXXXX-XXXXX-XXXXX-XXXXX agreeToLicenseyes licensePath/path/to/license.lic productsMATLAB Simulink Symbolic_Math_Toolbox installedProducts/usr/local/MATLAB/R2021b注意products参数需要填写内部产品名不是显示名。比如Symbolic Math Toolbox的内部名是Symbolic_Math_Toolbox。如果填错安装器会报错或忽略。然后执行sudo ./install -mode silent -inputFile installer_input.txt静默安装的好处是不需要X11转发也不需要盯着屏幕。缺点是没有进度条看起来像卡住了实际上它在后台跑。一个判断方法是用top或ps查看进程看是否有install进程和java进程在CPU占用。我实测下来完整安装所有产品在普通工作站上大约需要20到40分钟视磁盘速度和机器性能而定。安装到90%左右时安装器会执行postinstall脚本配置Mex编译器和启动脚本这个阶段CPU会明显升高属正常现象。2.5 分卷镜像的处理如果你的安装包是多个ISO分卷比如R2021b_Linux.iso、R2021b_Linux_2.iso安装过程中安装器会在装到某个产品时提示插入下一张分卷。如果是挂载ISO的方式此时你需要找到安装器中显示的设备路径通常形如/dev/loop0然后sudo umount /mnt/matlab_iso sudo mount -o loop R2021b_Linux_2.iso /mnt/matlab_iso然后点击安装器中的继续。如果是解压方式直接把所有分卷解压到同一个目录下安装器就能自动识别不需要手动切换。因此从操作便利性考虑我强烈建议把分卷都解压到统一目录再安装。多占用一点磁盘空间换来的是省心。3. 安装后的系统配置与启动优化3.1 创建快捷启动方式安装完成后MATLAB的可执行文件位于/usr/local/MATLAB/R2021b/bin/matlab。直接用完整路径启动当然可以但每次输一长串路径太麻烦。推荐创建软链接sudo ln -s /usr/local/MATLAB/R2021b/bin/matlab /usr/local/bin/matlab这样在任何终端窗口输入matlab就能启动。另外很多Linux桌面环境支持在应用菜单中显示MATLAB图标。R2021b安装时通常会自动创建matlab.desktop文件但有时候桌面环境版本问题导致不显示。可以手动创建sudo nano /usr/share/applications/matlab.desktop内容如下[Desktop Entry] NameMATLAB R2021b CommentMATLAB Exec/usr/local/MATLAB/R2021b/bin/matlab -desktop Icon/usr/local/MATLAB/R2021b/toolbox/nnet/resource/matlab_icon.png Terminalfalse TypeApplication CategoriesDevelopment;Science;Math;保存后刷新桌面缓存即可。注意Icon路径在不同版本可能不同找不到图标文件就用find /usr/local/MATLAB -name *.png | head -5查一下实际路径。3.2 License文件放置与权限这是最容易出错的位置。License文件应该放在/usr/local/MATLAB/R2021b/licenses/文件命名通常为license.lic。如果你的安装过程没有自动放置需要手动拷贝并设置权限sudo cp license.lic /usr/local/MATLAB/R2021b/licenses/license.lic sudo chown root:root /usr/local/MATLAB/R2021b/licenses/license.lic sudo chmod 444 /usr/local/MATLAB/R2021b/licenses/license.lic权限设成444是因为MATLAB只需要读它不需要写。如果license文件在非标准位置也可以设置环境变量MLM_LICENSE_FILE指向它export MLM_LICENSE_FILE/path/to/license.lic但环境变量方式每次启动都得设置不如放到标准位置一劳永逸。如果用Network Licenselicense.lic里包含服务器地址。3.3 首次启动与桌面环境适配首次启动MATLAB时它会创建用户配置文件目录~/.matlab/R2021b包含Preferences、History、Cache等。如果这个目录创建失败或者权限不对MATLAB会闪退或停在启动画面。一个常见问题是如果你之前用sudo方式启动过MATLAB~/.matlab的owner可能变成了root导致普通用户启动时无权写入。解决办法sudo chown -R $USER:$USER ~/.matlab另外R2021b在Ubuntu 16.04上首次启动可能出现界面字体渲染问题。这不影响功能但看起来很难受。可以在MATLAB启动后在Preferences里调整字体或设置环境变量_JAVA_OPTIONS来改善export _JAVA_OPTIONS-Dawt.useSystemAAFontSettingson -Dswing.aatexttrue3.4 启动配置参数优化这里分享一些我实测有效的启动参数写在~/.matlab/R2021b/matlab_startup_plugins/imtool里的是运行时配置但我们可以在启动命令中直接加参数。常用启动参数matlab -nodesktop -nosplash -nodisplay这三个参数组合适合纯命令行环境使用MATLAB将启动为命令行模式不加载图形界面。在SSH远程操作脚本时非常有用。matlab -softwareopengl如果显卡驱动有问题导致OpenGL渲染崩溃加上这个参数强制使用软件OpenGL渲染虽然性能低一些但能保证界面正常显示。matlab -c /path/to/license.lic指定License文件路径这在我们前面设置的标准路径无效时可以兜底。还有一个提升启动速度的技巧。在~/.matlab/R2021b/matlab.prf文件中可以调整JavaHeapSize参数默认256MB建议改大一些JavaHeapSize1073741824单位是字节1GB就是1073741824。Java堆内存越大处理复杂界面和大型工具时越流畅。4. 常见问题与排查技巧4.1 典型安装错误与解决方案我整理了这次安装和帮同学装的过程中遇到的高频问题按出现频率排序问题现象根本原因解决方案安装器启动时报libX11.so.6缺失缺少X11运行库apt-get install libx11-6安装过程卡在Configuring阶段磁盘空间不足或权限问题查磁盘余量检查目标目录可写权限启动MATLAB出现License Manager Error -8License服务器不可达或MAC地址绑定检查网络连通性确认License文件的SERVER行启动后界面空白/花屏OpenGL驱动问题使用-softwareopengl启动MATLAB崩溃并提示Segmentation fault系统库版本冲突执行ldd检查依赖补装对应库启动很慢或CPU占用100%Java堆内存过小调大JavaHeapSize或关闭开启动画处理器加速指令集不兼容CPU太老不支持AVX这属于硬件限制无解只能换版本4.2 License Manager Error -8 深度排查这个错误我遇到最多所以单独拿出来说。License Manager Error -8的意思是MATLAB尝试连接License服务器失败。排查步骤第一步确认license文件内容正确cat /usr/local/MATLAB/R2021b/licenses/license.lic如果你用的是网络License应该看到类似SERVER yourserver 1234567890abc 27000 USE_SERVER其中yourserver是服务器主机名1234567890abc是主机ID27000是端口。第二步测试端口连通性telnet yourserver 27000如果连接失败可能是防火墙拦了端口。检查UFW状态sudo ufw status如果有过滤规则放行端口sudo ufw allow 27000/tcp第三步确认时间同步。License服务器对时间敏感如果客户端与服务器时间偏差超过一定范围通常几分钟License校验就会失败。执行ntpdate -u pool.ntp.org这里需要说明的是很多实验室内部网络的License服务器和客户端的系统时间如果相差太大MATLAB就报错。同步时间后重启test。4.3 启动闪退问题另一种常见情况是MATLAB启动画面一闪而过然后掉回Shell。这种情况大多是缺少图形库或Java库。先用命令行模式测试/usr/local/MATLAB/R2021b/bin/matlab -nodisplay -nodesktop如果命令行模式能进入MATLAB提示符说明核心没问题问题出在图形界面。此时检查图形相关库ldd /usr/local/MATLAB/R2021b/bin/glnxa64/libmwmclbase.so | grep not found把缺的库补齐。Ubuntu 16.04最常见的缺失库是libXt.so.6和libXss.so.1分别由libxt6和libxss1提供sudo apt-get install libxt6 libxss14.4 Toolbox工具箱不可用问题有时候MATLAB能正常启动但输入ver查看已安装工具箱时某些工具箱显示Not available。这通常是因为安装时选择了对应工具箱但首次启动时没有完成工具箱路径注册。解决办法是手动执行addpath(genpath(/usr/local/MATLAB/R2021b/toolbox/xxx))然后保存路径savepath但更好的方法是在MATLAB的startup.m文件中加入这些路径这样每次启动自动加载。关于savepath有一个需要注意的地方如果使用sudo matlab启动保存的路径会写到root的路径定义文件普通用户登录时读取不到导致工具箱仍然显示不可用。因此必须用普通用户身份运行MATLAB并执行savepath。4.5 定期维护建议安装不是一劳永逸的Linux环境更新库版本后可能会破坏MATLAB的运行时依赖。我遇到过一次系统更新了libssl后MATLAB启动时警告SSL版本不兼容虽然还能用但部分工具箱的网络功能报错。建议注意几点不要轻易升级系统自带的Glibc这个库的破坏力最大系统更新时跳过MATLAB依赖的库更新或者在更新后重新执行ldd检查重要项目开始前先跑一个简单的矩阵运算确认环境正常另外MATLAB R2021b本身有更新补丁可以通过MathWorks Update Tool在线更新。但在Ubuntu 16.04上在线更新有时会因为网络证书问题失败。如果更新失败不影响现有功能不用强求。5. 体验补充与后续扩展5.1 安装后的验证清单装完不是结束我建议按下面清单快速验证安装是否完整在终端输入matlab -nosplash -nodesktop确认命令行能启动在MATLAB命令行输入ver确认版本号是R2021b输入license(test)确认许可证有效输入mex -setup确认C编译器配置正常输入plot(rand(10,1))如果是命令行模式则不会出图需要-desktop模式下测试输入gpuDevice如果你有NVIDIA显卡并装了CUDA确认GPU功能可用第6步对深度学习用户尤其重要。MATLAB R2021b支持GPU加速但需要匹配的CUDA版本。R2021b对应CUDA 11.2如果你的显卡驱动过新或过旧可能出现CUDA driver version is insufficient错误。5.2 与Python环境的互操作配置很多数据分析和机器学习项目的实际流程是Python做数据预处理MATLAB做算法验证。如果同时在用Anaconda或系统Python建议在MATLAB中配置Python环境pyenv(Version, /usr/bin/python3)R2021b支持Python 3.8及以下版本不支持Python 3.9。这是个容易踩的坑系统自带的Python可能是3.5Ubuntu 16.04默认而Anaconda装的是3.9MATLAB在pyenv时直接报错说版本不支持。解决办法是单独装一个Python 3.8的conda环境给MATLAB用conda create -n matlab_py python3.8然后pyenv(Version, /home/user/anaconda3/envs/matlab_py/bin/python3)这样可以避免版本冲突还能同时用numpy、pandas这些库做数据交互。5.3 磁盘空间回收与备份安装完MATLAB后安装目录里有archives和support文件夹里面是安装包的缓存。这些文件可以删掉能省出不少空间。sudo rm -rf /usr/local/MATLAB/R2021b/archives但有个前提如果你以后想添加工具箱组件没有这些归档文件可能需要重新挂载镜像才行。所以我建议等确认所有要用的工具箱都装全了再删。备份方面MATLAB的配置都在~/.matlab/R2021b把这个目录拷贝到新机器就能迁移大部分设置cp -r ~/.matlab/R2021b ~/matlab_backup/License文件则单独拷贝因为不同机器的MAC地址会影响License绑定。5.4 其他版本共存的情况如果你机器上已经装了旧版本MATLAB比如R2016a或R2019bR2021b可以共存安装在独立目录就行。/usr/local/MATLAB/R2019b和/usr/local/MATLAB/R2021b互不干扰。启动时用哪个路径就是哪个版本。但要注意默认命令问题。如果建立软链接/usr/local/bin/matlab指向R2021b旧版本的matlab命令就找不到了。建议分别建链接sudo ln -s /usr/local/MATLAB/R2021b/bin/matlab /usr/local/bin/matlab2021b sudo ln -s /usr/local/MATLAB/R2019b/bin/matlab /usr/local/bin/matlab2019b每次按需调用。5.5 个人实测心得最后分享几个特定于这台Ubuntu 16.04机器的实测感受。机器是双显卡配置独显驱动在安装前没装好导致MATLAB首次启动时OpenGL渲染有问题——界面上命令窗口和编辑器的边框不断闪烁。当时不知道有-softwareopengl这个参数折腾了很久。如果你遇到类似问题先跑一下glxinfo | grep renderer看系统用的什么渲染器如果是llvmpipe软件渲染那就说明显卡驱动没加载。这种情况下MATLAB的体验会差建议先解决显卡驱动再启动MATLAB。另外Ubuntu 16.04对高DPI屏幕的支持很差MATLAB界面在2K屏上显示得特别小。这个版本的系统在缩放支持上确实比较弱需要在MATLAB的Preferences里手动调字体大小。这个问题在Ubuntu 18.04和20.04上几乎不存在所以如果你有条件升级系统建议优先升级。内存方面R2021b在16.04上默认的Java堆只有256MB编辑器中打开多个大型脚本就会开始卡顿。按前面说的调成1GB能明显改善但前提是系统内存不小于8GB。总的来说Ubuntu 16.04加MATLAB R2021b这套组合能正常工作只是需要多花点心思在依赖库和图形环境适配上面。这套安装和排错流程对于Ubuntu 18.04和20.04同样适用差异主要在系统自带库版本不同需要装的依赖包少一些。按照这篇记录的步骤走一遍应该能顺利完成安装。