ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Ubuntu 20.04安装MATLAB R2023b完整指南与高频故障排查

Ubuntu 20.04安装MATLAB R2023b完整指南与高频故障排查 做Linux环境下的科研和开发这十来年我装过的MATLAB版本两只手数不过来从R2015b一路装到R2024a踩坑踩到闭着眼都能背出来。前两天刚在Ubuntu 20.04上给一台新到的工作站部署MATLAB R2023b果然又遇到一堆问题——许可证激活失败、启动闪退、OpenGL渲染崩溃、中文乱码一个都没落下。装完之后我干脆把这次的排查过程完整梳理了一遍想着应该能帮到正在被同一个过程折磨的人。这篇文章适用于以下几类读者第一次在Ubuntu上装MATLAB的新手从Windows切换过来不知道Linux安装逻辑差异的老用户以及需要在无图形界面的服务器上做静默部署的运维同学。我尽量把每一个坑都讲到“为什么会这样”和“具体怎么处理”而不是简单甩一句“敲这个命令就行了”。1. 安装前的准备工作与环境预检1.1 为什么R2023b在Ubuntu 20.04上经常出问题先搞清楚一个底层逻辑MATLAB在Linux下的安装方式和Windows下差别很大。Windows版是一个setup.exe双击跑完本质上是个标准的Windows安装程序依赖的运行时环境基本都自带了。而Linux版是给一个光盘镜像ISO里面是一个自解压的安装器二进制文件install它依赖系统里一堆X11图形库、GL库、JVM和csh等组件。Ubuntu 20.04默认是相当“干净”的很多运行库默认不装。而MATLAB R2023b的系统要求里明确列出了对Linux发行版的验证矩阵但官方文档写得比较克制不会告诉你这台机器上还缺哪个库导致装到一半就崩。于是问题就来了不是MATLAB本身安装流程复杂而是它和Linux系统库之间的依赖关系没处理好。我个人的切身体会是凡是遇到“安装器刚启动就退出”“安装过程中进度条跳一下就没了”“安装完成后bin/matlab一执行就Segmentation fault”这一类问题八成不是MATLAB安装包损坏而是系统缺库。所以在真正开始装之前先把环境检查一遍比出了错再去查日志省力得多。1.2 磁盘空间、权限和依赖库三项预检先看磁盘空间。R2023b完整安装大概需要25GB左右如果还要装Simulink全系工具箱、Stateflow、自动驾驶工具箱这种大户建议至少留出35GB以上。这个空间不仅仅是安装本身占用安装器在工作时会在目标盘写临时文件空间不够会直接报错。检查方式很简单df -h /usr/local目标安装目录我习惯放在/usr/local/MATLAB这个目录需要root权限来写入。安装时直接用sudo运行安装器就行不用提前chmod它会自己处理目录权限。如果你想装在用户目录下比如~/matlab那就不需要sudo但我不推荐这么干因为后续添加桌面快捷方式、做系统级PATH软链都会麻烦一点。然后是依赖库。下面这个命令是我在新机器上默认都会敲一遍的“基础全家桶”sudo apt update sudo apt install -y build-essential ca-certificates \ libxt6 libxmu6 libxpm4 libxi6 libgomp1 libselinux1 \ libglu1-mesa libgles2 mesa-utils \ xterm csh unzip zip解释一下这些包各自管什么libxt6、libxmu6、libxpm4、libxi6是一组X11图形界面的底层库安装器界面和MATLAB桌面本身的渲染都依赖它们libgomp1是OpenMP运行时R2023b里并行计算相关功能会用到libselinux1是SELinux的运行时库部分启动脚本会动态加载它少了就报libselinux.so.1: cannot open shared object fileglu和mesa-utils负责OpenGL相关的支持。还有Java运行环境。R2023b自带的MATLAB桌面基于Java 11构建虽然安装包里捆绑了对应的JRE但某些情况下系统会抢着用默认Java导致启动界面卡在“初始化Java”或者按钮渲染异常。为了省心我建议顺手装一个OpenJDK 11sudo apt install -y openjdk-11-jre注意别装太新的Java版本比如Java 17或21。虽然能跑但偶尔会遇到奇怪的类加载问题没必要给自己找麻烦。1.3 镜像准备与挂载方式的选择拿到安装包通常是.iso文件有时下载下来是压缩包需要先解压。安装方式有几种直接解压ISO到目录再执行或者挂载为loop设备。我个人强烈推荐挂载方式因为ISO是只读的防止安装过程中误改文件而且不用额外占用一份磁盘空间解压ISO到硬盘相当于复制了一份接近11GB的文件出来。挂载命令如下sudo mkdir -p /mnt/matlab sudo mount -o loop MATLAB_R2023b_Linux.iso /mnt/matlab这里有个小细节——mount -o loop需要root权限但挂载完成后普通用户是可以读取和执行里面文件的。如果你用的是无桌面环境的服务器又想远程图形化安装可以通过SSH X11转发或者VNC来做不过那样网络延迟会比较影响体验。后面第4部分我会单独讲完全无GUI环境下怎么用静默安装模式那种方式其实才是服务器部署的正解。2. 核心安装步骤与关键参数拆解2.1 GUI安装流程与目录选择挂载好之后进入镜像目录用root权限启动安装器cd /mnt/matlab sudo ./install如果你的系统缺了某些图形库安装器可能会直接打不开或者打开之后窗口一片空白。这时先退出来回头把1.2节里的依赖包装齐再重新启动安装器。安装向导整体逻辑跟Windows版差不多无非就是几步接受许可协议、选择许可证类型、登录MathWorks账号或输入文件安装密钥File Installation Key简称FIK、选择安装目录、勾选工具箱。这里我建议几个实操上的选择安装目录默认是/usr/local/MATLAB/R2023b不要改到一个带空格的路径下后续写启动脚本和软链时会很痛苦。工具箱选择不要盲目全选。很多工具箱体积巨大而且安装时间跟工具箱数量有直接关系。如果只是做算法验证选MATLAB本体加Simulink、Signal Processing Toolbox、Statistics and Machine Learning Toolbox、Curve Fitting Toolbox就够了做深度学习的加上Deep Learning Toolbox和Parallel Computing Toolbox。安装方式选择“离线安装”时安装器会要求你提供license.lic文件这是后续激活的关键选择“在线安装”则需要登录MathWorks账号并联网同步许可证。安装过程大概15到40分钟取决于机器性能和选了多少东西。这期间最好别动机器尤其别开大内存应用安装器内存不够会直接崩溃。2.2 许可证激活方式与常见误解R2023b的许可证激活是整个安装流程里最容易卡住的一环。先理清两种主流的激活路径第一种是在线激活。安装时登录MathWorks账号安装器会自动拉取你账号下绑定的许可证。这种方式适合有正式License的校园用户或商业用户并且在安装时确保机器能访问外网。激活后你在任何一台机器上登录同一账号都能同步激活。优点是方便缺点是如果你所在的内网环境禁止访问MathWorks服务器或者代理配置有问题会一直卡在“正在联系许可证服务器”这个提示上。第二种是文件激活离线。你需要事先在账户官网的License Center里针对自己电脑的MAC地址生成一个license.lic文件。用文件激活时安装器会要求你把这个文件路径填进去。很多新手在这里栽跟头是因为生成License时填的MAC地址和最终实际运行MATLAB的网卡MAC不一致。要查当前机器的MAC地址ip link注意如果你的机器上有多个网卡有线、无线、虚拟机虚拟网卡等要以安装激活时填的那个网卡为准。而且有个坑安装了Docker或虚拟机软件后系统会多出docker0、vmnet8之类的虚拟网卡有些人填License时用的是虚拟网卡的MAC结果重启后IP变了或者服务顺序变了MATLAB就提示许可证无效。解决办法是在生成License时尽量选择物理网卡的MAC如果已经生成了错误的只能去License Center重新生成一份覆盖旧的。另外一个很容易被忽略的细节是系统时间同步。许可证文件本身带有有效期如果你的系统时间比实际时间快或慢了几小时比如装完双系统之后Windows和Ubuntu的时间互相干扰激活时会直接报“许可证过期或尚未生效”。用NTP同步一下再启动MATLABsudo timedatectl set-ntp true这个时间问题在我处理过的案例里至少占了20%务必检查。2.3 创建启动脚本与桌面快捷方式安装完成后MATLAB的可执行文件在/usr/local/MATLAB/R2023b/bin/matlab。但直接敲matlab是找不到命令的因为/usr/local/MATLAB/R2023b/bin不在系统PATH里。这里有两种做法我推荐先做全局软链sudo ln -s /usr/local/MATLAB/R2023b/bin/matlab /usr/local/bin/matlab做完之后在任何目录敲matlab都能启动。注意软链不是复制后续升级或卸载时删除源目录后软链就失效了记得清理。然后是桌面快捷方式。创建~/.local/share/applications/matlab.desktop这个文件[Desktop Entry] NameMATLAB R2023b CommentMATLAB R2023b Exec/usr/local/MATLAB/R2023b/bin/matlab -desktop Icon/usr/local/MATLAB/R2023b/bin/glnxa64/matlab_icon.png Terminalfalse TypeApplication CategoriesDevelopment;Science;保存后运行update-desktop-database ~/.local/share/applications或者在GNOME里直接搜“MATLAB”就能看到图标了。如果图标不显示多半是Icon路径写错了检查一下matlab_icon.png的实际位置就好。3. 安装后的高频故障与排查全记录3.1 启动闪退与libselinux缺失装完后第一次启动MATLAB最经典的问题是窗口闪现一下然后整个进程退出或者终端里看到类似这样的报错matlab: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory原因很简单MATLAB启动时会调用系统里的一些共享库但Ubuntu 20.04的桌面版默认没有装libselinux1。这个库平时看起来不起眼很多常规软件根本不依赖它所以不会有人预先装它。解决办法就是装依赖sudo apt install -y libselinux1装完再启动。类似的还有libgomp.so.1、libXt.so.6缺失等等报错格式基本一样缺什么就补什么直接用apt install搜对应包名即可。如果报错提了libc.so.6之类的核心库版本问题那多半不是缺库而是你的系统版本太老导致的GLIBC版本不兼容——这种情况基本只能升级系统没有太好的绕路方案。3.2 OpenGL渲染崩溃与软件渲染切换MATLAB R2023b的桌面和绘图窗口大量依赖OpenGL。在Ubuntu 20.04上常见两个问题一是启动后绘图窗口一打开就闪退二是图形界面卡成PPT拖拽时严重撕裂。先看看你的OpenGL状态。在MATLAB里运行opengl info它会输出当前使用的渲染模式、显卡型号和驱动版本。如果输出里出现的不是你的显卡厂商NVIDIA/AMD/Intel而是llvmpipe说明系统没有启用硬件加速MATLAB实际在通过CPU模拟OpenGL渲染这时候绘图性能极差。排查顺序是这样的先确认显卡驱动是否装好。很多人的Ubuntu 20.04是双系统或虚拟机NVIDIA显卡默认用的是nouveau开源驱动性能和兼容性都一般。先查当前驱动nvidia-smi如果提示command not found说明NVIDIA驱动压根没装。装驱动的方式推荐用系统自带的ubuntu-driverssudo ubuntu-drivers autoinstall或者手动指定版本sudo apt install -y nvidia-driver-535这里有个提醒除非你很清楚自己在做什么不然不要从NVIDIA官网下载.run文件手动装驱动。在Ubuntu 20.04上手动装驱动非常容易踩坑轻则需要重装系统重则直接进不了图形界面。用apt装的驱动虽然版本可能不是最新但和内核模块的兼容性是有保障的。装了驱动且硬件支持没问题之后如果MATLAB还是有渲染异常可以强制走软件渲染来排除问题matlab -softwareopengl加上这个参数后MATLAB会忽略GPU用OpenGL软件渲染。这在比较老的工作站或者远程桌面场景下反而更稳定。但要注意用了软件渲染Simulink等模块的实时渲染性能会下降如果只是画图分析还可以接受。3.3 界面字体发虚、中文乱码或空白块这是另一个高频问题。Ubuntu默认缺少微软雅黑、宋体这类中文字体MATLAB的编辑器、命令行窗口如果设置了中文编码的注释或变量名会出现方块字或乱码。而界面字体发虚则多半是高分屏HiDPI下MATLAB没有正确识别缩放比例。字体问题最直接的办法是补装中文字体sudo apt install -y fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei装完字体之后重启MATLAB。如果编辑器里中文还是乱码检查Preferences预设里的语言设置和字体设置把编辑器字体指到Noto Sans CJK SC或者WenQuanYi Micro Hei。对于高分屏缩放MATLAB R2023b在GNOME桌面下的缩放处理其实已经比旧版好很多但偶尔还是会遇到工具栏图标和文字偏小的情况。解决办法是修改启动脚本的环境变量在~/.bashrc里加上export MATLAB_USE_USERWORKSPACE1这只是设置MATLAB首次启动时默认工作路径为用户目录。针对HiDPI还有一个参数是让Qt绘制界面时强制走高DPI缩放export QT_AUTO_SCREEN_SCALE_FACTOR1具体效果因桌面环境而异建议自己试一下哪个组合最舒服。另外如果你通过ssh -X远程跑MATLAB界面显示异常是X11转发的常见问题。这时字体、渲染、窗口仿伪等都会变得“很奇怪”别花太多时间在调参数上直接改用VNC或者NoMachine连接服务器会清爽得多。3.4 并行计算与GPU检测不到R2023b有个我很烦的问题装完Parallel Computing Toolbox之后gpuDevice经常检测不到显卡。这个问题的根源通常是MATLAB自带的CUDA和系统实际安装的显卡驱动不匹配。查一下MATLAB识别到的CUDA版本gpuDevice如果提示不支持或无法初始化先确认系统的CUDA驱动版本。nvidia-smi顶部会显示CUDA Version。R2023b对CUDA的官方支持已到12.x如果你装了13.x的驱动MATLAB可能不兼容。这种情况不必卸载驱动直接在启动MATLAB之前指定一个已知兼容的CUDA库路径即可。比较省事的办法是装CUDA 11.8配套工具包sudo apt install -y nvidia-cuda-toolkit这会把CUDA运行时装好然后MATLAB再跑gpuDevice大概率就正常了。如果还不行大概率是你主板BIOS里开启了核显优先模式导致系统默认把核显作为计算设备MATLAB自然找不到独立显卡。这种属于硬件层面的优先级问题需要在BIOS里把独显改成Preferred或Discrete模式具体菜单名称因主板厂商不同有差异。3.5 启动速度极慢与卡在Logo界面很多新用户的机器装完R2023b启动要等一分钟以上卡在MATLAB的Logo界面半天不动。这个问题需要分两层看。第一层是首次启动会做大量的Java类缓存、路径初始化、许可证校验慢是正常的。第二次启动如果还超级慢就要考虑是不是许可证校验时网络超时导致的。前面提到用文件激活的License如果填的网卡信息不准确每次启动MATLAB都会尝试向许可证服务器请求校验在网络不可达的情况下这个超时过程可能会拖十几秒甚至更久。排查方法很简单启动前把网线拔了或者断网看启动速度是否明显提升。如果是的话说明License配置有问题重新去License Center生成一份正确的文件。第二层是MATLAB会加载用户目录下的一大堆路径。如果你之前在~/.matlab里配置过大量自定义搜索路径每次启动都要扫描这些目录。可以使用pathtool把不必要的路径移掉或者用-c参数指定一个专门的许可证文件绕开复杂校验matlab -c /usr/local/MATLAB/R2023b/licenses/license.lic实测这样能少几秒钟启动时间不算很多但在服务器上跑批量任务时会显得更干净。4. 无图形界面服务器的静默安装方案4.1 准备installer_input.txt与许可文件如果你手上是一台没有显示器的服务器比如机房里的计算节点运行图形化安装向导不太现实。MATLAB支持完全静默安装核心是准备一个installer_input.txt配置文件。这个文件控制整个安装过程的所有参数模板在ISO镜像里的installer_input.txt可以参照但建议自己新建一个避免注释干扰。我的配置文件通常长这样destinationFolder/usr/local/MATLAB/R2023b fileInstallationKeyxxxxx-xxxxx-xxxxx-xxxxx-xxxxx agreeToLicenseyes modesilent licensePath/home/user/matlab_license.lic参数解释destinationFolder安装目标绝对路径。fileInstallationKey文件安装密钥FIK。这个在MathWorks官网的License Center里针对你的许可证可以查到是5组5位字符用连字符分隔。agreeToLicenseyes必须显式设为yes否则静默安装会卡在同意许可协议这步。modesilent静默模式的核心开关。licensePath指向license.lic文件的绝对路径。这里要特别提醒绝不要把mode写成silent就又加-inputFile却漏掉其它参数。配置文件的每一行都必须和实际安装需求匹配任何一项缺失或格式错误安装器不会给任何提示而是直接以非零码退出。4.2 静默安装执行与日志分析配置文件准备好之后执行cd /mnt/matlab sudo ./install -inputFile /path/to/installer_input.txt执行完看退出码。如果没有任何输出直接回到命令行有可能是成功了但也有可能是失败了。所以建议执行时重定向日志sudo ./install -inputFile /path/to/installer_input.txt -log /tmp/matlab_install.log安装完之后查看日志尾部tail -50 /tmp/matlab_install.log看到MATLAB installation completed successfully之类的字样才算完。如果日志里提到permission denied检查目标目录的写权限提到Invalid file installation key检查FIK是否粘贴完整且没有多余空格。还有个容易忽略的问题静默安装用的是root权限但安装生成的某些配置文件和启动脚本的属主会变成root。如果之后有非root用户想运行MATLAB可能因为无法写入用户目录报错。稳妥的做法是装完后用root把/usr/local/MATLAB/R2023b下的关键配置目录权限放开或者在服务器上统一用同一个账号运行计算任务。4.3 无界面模式运行MATLAB脚本在服务器上跑MATLAB很少需要打开桌面界面常见的用法是跑.m脚本或函数。无界面模式有两种-nodisplay和-batch。-nodisplay适合交互式调脚本但依然会加载Java桌面组件启动稍慢matlab -nodisplay -nosplash -r run(myscript.m); exit-batch是R2019a之后推荐的模式运行完自动退出标准输出会打印脚本里的fprintf和disp结果matlab -batch myscript这两种模式在服务器场景下都够用。注意-nojvm参数能进一步省内存但很多工具箱包括绘图函数在纯无Java环境下不可用除非跑的是纯数学计算否则不建议加。如果服务器内存有限还可以通过-r参数限制MATLAB工作区的可用内存策略——在脚本里用maxNumCompThreads控制并行线程数避免一个任务把整台机器的核都占满maxNumCompThreads(8);这在多人共享服务器时尤其重要既不影响别人干活也避免自己的任务被OOM杀掉。5. 常见问题速查表与避坑建议5.1 问题现象、原因与解决方案对照表我把这些年遇到的Ubuntu 20.04安装MATLAB R2023b的问题做了一个速查表方便大家遇到类似情况快速定位方向。问题现象常见原因解决办法安装器启动立刻退出缺X11图形库装libxt6 libxmu6 libxpm4 libxi6安装过程报permission denied目标目录无写权限用sudo执行安装器启动报libselinux.so.1缺失缺SELinux运行时sudo apt install libselinux1启动报libgomp.so.1缺失缺OpenMP运行时sudo apt install libgomp1打开绘图窗口闪退OpenGL驱动/渲染问题更新显卡驱动或matlab -softwareopengl启动卡Logo数十秒许可证网络校验超时确认License文件用-c指定本地Lic激活提示许可证无效MAC地址不匹配或系统时间错误重新生成license.lic同步系统时间中文注释或界面乱码缺失中文字体sudo apt install fonts-noto-cjkSimulink运行特别慢使用了软件OpenGL渲染修复显卡驱动后取消-softwareopenglgpuDevice检测不到CUDA版本与驱动不匹配装nvidia-cuda-toolkit或升级驱动桌面图标不显示图标路径错误或desktop文件权限问题核对Icon路径chmod x文件窗口在高分屏下发虚Qt缩放策略不对设置QT_AUTO_SCREEN_SCALE_FACTOR1安装日志出现GFX init failed服务器无显示器或无GPU用-nodisplay或-batch模式运行这张表里的很多内容前面已经展开讲了这里是给已经踩了坑、正在到处搜关键词的同学一个快速定位入口。5.2 安装后的空间清理与备份建议安装包ISO本身11GB左右挂载安装完成后不要急着删ISO可以先确认一遍matlab启动正常。确认无误后卸载ISO并删除文件能腾出不少空间sudo umount /mnt/matlab rm -rf MATLAB_R2023b_Linux.iso另外安装过程中可能会在/tmp下生成临时文件比如Java的安装过程缓存如果安装后/tmp占用异常可以重启清空或者手动清理。注意清理前确认没有正在运行的安装进程。关于备份我个人的习惯是安装完成后复制一份license.lic文件到/etc/matlab_license_backup.lic防止之后误删用户目录导致License文件丢失。虽然可以在License Center重新下载但生成新文件又要重新填MAC很烦。备份一个总没错。5.3 实用小技巧换图标、自动打开工作目录、默认字体最后分享几个提升日常使用体验的小技巧。首先是默认启动路径。每次打开MATLAB都停在/home/username而你实际的工作目录可能经常是/data/project可以在启动脚本里加个自动化处理alias matlabmatlab -sd /data/project这样每次启动直接进入指定工作目录少两次鼠标点击。第二个技巧是修改打开新脚本时的默认字体和行宽。在~/.matlab/R2023b下有个matlab.prf文件里面可以调编辑器的字体归属、字号、Tab宽度等。不建议手动改这个文件容易改出问题更推荐在MATLAB里执行savepath.slreq或者通过预设面板调整但有经验的用户可以知道有这么一个配置文件存在方便在重装后做批量配置。第三个技巧是针对经常用Simulink的人。R2023b的Simulink加载速度是个老大难问题其实可以在启动时加参数预加载Simulink减少进入后的等待matlab -r load_system(my_model);这样打开MATLAB后模型已经在内存里不用每次手动点击加载。小项目不明显大型Simulink模型会让体验好很多。6. 写在最后的一点实际体会装MATLAB这件事Windows上可能半小时就能搞定Linux上折腾一整天也不稀奇。说实话整个过程最气人的不是安装包本身有多大而是明明按着教程一步步来了却总是败在一些系统环境的小细节上。我踩过的最深的一个坑是给一台双网卡服务器激活License时填了eth0的MAC结果重启一次网卡顺序变了MATLAB直接罢工后来一查才知道Linux下网卡命名eth0变成ens33是会随内核识别顺序变化的这个教训我记到现在。现在我的流程已经固定下来了先装依赖再挂ISO用installer_input.txt静默安装装完立刻验证License和gpuDevice最后快照备份系统。整个过程半小时内能完成。如果你在安装过程中遇到上面没提到的问题先别急着重装系统去/root/.matlab或用户目录下的java.log里翻一下详细日志大多数线索都藏在里面。希望这篇记录能帮你少走点弯路。
返回列表