在 Linux 下装 MATLAB,说难也难,说简单也简单。难在坑多:权限、依赖库、license 文件、启动器路径,哪一步不顺就能卡你一下午;简单在只要把流程理顺,照着命令敲就行。这篇就按我自己的实操经验来讲,把整套流程走一遍,顺便把网上很多教程没写明白的“为什么要这么做”也补上,免得你照猫画虎装完还出幺蛾子。
我这两年在 Ubuntu、Debian、Rocky Linux 这些发行版上装过 R2023a、R2024b,也帮人排查过各种“装完启动不了”的问题。以我的感受来说,Linux 装 MATLAB 百分之七十的坑都出在准备阶段——版本匹配、挂载方式、license 文件路径。把这些点理清楚,真正安装过程反而很顺。无论你是学生做课程设计,还是工程师写算法验证,只要能看懂命令行基础,这篇应该就能帮你独立搞定整个安装。
1. 安装前先把版本、系统与硬件盘一遍
1.1 发行版和 MATLAB 版本怎么匹配
热词里有人提到 matlab 2026b,我的看法很直接:你先别纠结版本号,先把系统的 glibc、内核、桌面环境版本查清楚。MATLAB 官方虽然有“系统需求”页面,但实际装起来,很多处于官方支持列表之外的发行版照样能跑;反过来,版本号很新的 MATLAB,在老旧系统上反而会因为缺少新版图形库直接启动失败。也就是说,版本匹配不是“最新配最新”,而是“系统依赖库能满足 MATLAB 运行库的要求”。
具体怎么查?终端里执行下面三条命令:
cat /etc/os-release uname -m ldd --version | head -1第一行看发行版名称和版本,第二行看 CPU 架构,第三行看 glibc 版本。我一般建议 glibc 版本与目标 MATLAB 发布时相隔别超过两三年,否则很容易碰上“装完点开没有反应”的尴尬。比如你在比较老的 Ubuntu 上强行装新版 MATLAB,会碰到一堆缺失库的问题;这时候退回一个旧版本 MATLAB,或者把系统更新,都比硬着头皮手动补库省事。热词里还涉及各类定制 Linux 发行版,更要特别注意:很多预编译环境会改变桌面图形栈的默认行为,安装时优先用官方通用的 Linux 安装包,不要一上来就用发行版自带的修改版安装器。
1.2 磁盘空间、内存和 swap 要提前给够
我常跟朋友说,MATLAB 是一个“装的时候很大、跑的时候更贪空间”的软件。一般完整安装含常用工具箱要占 30GB 左右,如果你只装部分工具箱,也得预留 15GB 以上。建议在df -h /opt和df -h /tmp各看一眼剩余空间,目标安装目录和系统临时目录都至少留出安装包体积两倍以上的空间,因为安装器解压和替换文件时占的空间可能比安装包本身还大。
内存方面,基础启动和写脚本 4GB 够用,但遇到图像处理、Simulink,或者“基于 MATLAB 搭深度学习模型”这类场景,8GB 只是起点。装完是小事,跑起来内存不够就会频繁触发 swap,导致你误以为程序卡死了。如果机器内存本来就小,我的建议是提前配一个 swap 文件,别等安装完再补。创建 swap 的一整套命令如下:
sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab这里有个细节:chmod 600不是走形式,系统对 swap 文件权限有硬性要求,权限太开放会直接拒绝启用。另外,/etc/fstab里那一行保证重启后 swap 能自动挂上,省得你之后开一次机手动启用一次。
2. 下载、校验与挂载:安装介质别乱来
2.1 从官方渠道取安装包,下载完先做校验
Linux 下的 MATLAB 安装包常见格式是 ISO 镜像和 zip 压缩包。我每次都推荐下载 ISO,不是因为 zip 不能用,而是 ISO 方便做完整性校验,也便于挂载后按需浏览里面的文件。下载页面需要登录 MathWorks 账户,选择 Linux 版本时建议选“generic”或对应发行版选项。
下载完成后千万别急着挂载,先做 SHA256 校验:
sha256sum MATLAB_R2024b_Linux.iso然后把输出结果和官网页面上给出的 SHA256 值核对一遍。不要跳过这一步。我以前有次网络波动,ISO 看起来没坏,但安装到 60% 的时候安装器报“找不到安装文件”,排查了半天,最后重新下载才解决。几个字节的损坏你是感觉不出来的,但校验一次只要一分钟,能省下一个下午。
实操心得:如果你下载的安装包放在网盘或者其他中转目录,下载到本地后也要重新校验一次。文件大小对得上不代表内容完整,只有哈希一致才敢放心用。
2.2 挂载 ISO 与解压方式的选择
拿到 ISO 后,在 Ubuntu/Debian 上这样挂载:
sudo mkdir -p /mnt/matlab_iso sudo mount -o loop MATLAB_R2024b_Linux.iso /mnt/matlab_iso-o loop表示用 loop 设备把这个文件当作块设备挂载。常规系统不需要关心它,但一些深度定制的 Linux 内核可能没有默认加载 loop 模块,如果挂载时报failed to setup loop device之类的信息,就去检查内核模块,或者干脆用解压代替挂载:
mkdir ~/matlab-installer tar -xf MATLAB_R2024b_Linux.iso -C ~/matlab-installer如果 tar 解压 ISO 报错或不完整,可以改用7z x,它对 UDF 格式的兼容性更好。镜像和 zip 在安装效果上差别并不大,真正关键的是目录权限:如果你准备把 MATLAB 装到/opt/MATLAB,先确认当前用户有权限写这个目录,或者提前想好后续用sudo调整归属。
很多教程会让你整个安装过程都用sudo,我建议思考一下使用场景。如果你只是个人电脑,sudo安装没问题;但如果是多用户服务器,安装器和授权文件全归 root,后续普通用户启动时经常出现权限问题。个人电脑上装完顺手把 licenses 目录和安装目录的 owner 改一下,能少很多麻烦。
3. 安装过程:图形界面和静默安装怎么选
3.1 图形界面安装适合有完整桌面环境的场景
挂载好安装介质后,进入目录运行:
cd /mnt/matlab_iso sudo ./install安装器是 Java 写的图形界面,启动需要一点时间。它的流程大致是:选择安装文件安装密钥、阅读并同意许可协议、选择安装目录、勾选工具箱、选择激活方式。如果你只在个人电脑上有桌面、能点鼠标,走图形界面最省事。
但我多说一句:安装过程中让你选择“是否添加快捷方式到桌面”这类选项,看起来无害,在 Linux 下生成出来的.desktop文件往往不完整,后续还要手工改 Exec 路径。我个人的经验是,图形界面安装时不要急着勾那些集成选项,装完自己写启动器反而更可控。另外,选择工具箱时别贪多。很多工具箱依赖额外的 Python 和 Java 组件,你之后升级系统时它们会成为一个追不完的依赖包袱。能用到的装上,用不到的以后随时可以补装。
3.2 静默安装:服务器和远程登录的首选方案
如果你是通过 SSH 操作服务器,或者没有可用桌面环境,图形界面只会让你卡在半路。这时候应该用静默安装模式。先在任意目录创建一个installer_input.txt:
destinationFolder=/opt/MATLAB/R2024b fileInstallationKey=xxxxx-xxxxx-xxxxx-xxxxx agreeToLicense=yes licensePath=/opt/MATLAB/licenses/license.lic mode=silent然后执行:
sudo ./install -inputFile installer_input.txt这个文件里每一项都有讲究。destinationFolder是安装目录,建议放在/opt/MATLAB而不是/home/xxx,原因是为了多用户访问规范;fileInstallationKey是安装密钥,在 MathWorks 账户的授权清单里能找到,19 位字母数字,不要填错;agreeToLicense=yes表示你已经审阅过许可协议,写成 no 或缺失都会中断安装;licensePath指向一个需要预先放好的 license 文件,如果用在线激活则不需要这一步。
如果静默安装中报错,输出不会像图形界面那么友好。我建议执行时加-logfile参数把日志导出来:
sudo ./install -inputFile installer_input.txt -logfile /tmp/matlab_install.log看到错误后,先看日志最后 50 行,不要凭感觉乱试。用下面命令快速过滤关键错误:
grep -iE 'error|fatal|warning' /tmp/matlab_install.log | tail -30很多问题在日志里写得明明白白,只是被淹没在大段输出里了。
4. 激活、license 文件和网络许可配置
4.1 单机 license 的放置和权限
安装完 MATLAB 并不等于激活完成。直接运行bin/matlab,大概率会遇到License Manager Error -8这类问题。核心原因通常是 MATLAB 找不到授权文件,或者授权文件对不上当前主机。
单机授权的典型做法是:先查出 hostid,然后在 MathWorks 账户里生成对应该 hostid 的.lic文件。查 hostid 可以用:
/opt/MATLAB/R2024b/bin/glnxa64/lmhostid它会输出类似xxxxxxxxxxxx的十六进制标识。用这个值去账户站点生成 license 文件,然后把文件放到安装目录的licenses/子目录下,权限建议设置为:
chmod 600 /opt/MATLAB/R2024b/licenses/license.lic600权限意味着只有文件所有者和 root 能读写,防止其他用户无意改坏。如果电脑频繁休眠、IP 变化,license 文件一般不受 IP 影响,但换网卡、换主板之后,hostid 变了,就需要重新生成授权文件。这一点比任何“激活技巧”都有用。
4.2 网络许可证服务器与 LM_LICENSE_FILE
很多公司或实验室是多台机器共用一套授权,这时候通常用网络许可证服务器。服务器端安装 License Manager 并配置好license.dat,客户端只设置一个环境变量:
export LM_LICENSE_FILE=27000@license-server-hostname把这行写入客户端的~/.bashrc,或者全局一点,写入/etc/profile.d/matlab.sh。设置完后,MATLAB 启动时会去27000端口找授权服务。这种模式的好处是使用者不需要接触任何授权文件,缺点是整个部门的 license 全压在一台服务上,服务挂了所有人都启动不了。
所以网络许可环境下,我会把 license manager 的启停脚本写好,并让它在系统启动时自动运行。不要图省事用“手动 nohup 跑一下”就完事,服务器重启一次,全部门都要等。如果平时只在一两台机器上用,就不必上网络许可,单机授权文件反而更简单、更好排查。
5. 环境变量、启动器与桌面集成
5.1 PATH 和 MATLAB_ROOT 设置得当很重要
安装完 MATLAB 后,核心启动器路径是/opt/MATLAB/R2024b/bin/matlab。想直接在终端输入matlab回车就能运行,需要把 bin 目录加入 PATH。在~/.bashrc末尾加:
export MATLAB_ROOT=/opt/MATLAB/R2024b export PATH=$MATLAB_ROOT/bin:$PATH设置MATLAB_ROOT有一个额外好处:很多 MATLAB 脚本和自动化程序会从环境变量里找 MATLAB 位置。不设置的话,你写脚本时到处写死路径,后期维护会很痛苦。终端里执行source ~/.bashrc后,直接敲matlab -nodesktop -nodisplay就能验证命令行是否可用。
LD_LIBRARY_PATH这个变量反而要谨慎。MATLAB 自带一批 glibc、libstdc++ 等系统基础库,如果你把系统路径一股脑追加进去再启动 MATLAB,经常会因为加载了错误版本的.so文件直接崩溃。这个变量只有在明确缺某个第三方库时才临时用,而且最好是放在你自己的启动脚本里,不要写进全局。
5.2 给 MATLAB 做一个干净好用的启动器
如果希望从桌面或应用菜单直接点开 MATLAB,建议自己写.desktop文件。不要完全依赖安装器自动生成的版本,因为它的 Exec 路径偶尔会指向不对的地方。在~/.local/share/applications/matlab.desktop新建:
[Desktop Entry] Type=Application Name=MATLAB R2024b Exec=/opt/MATLAB/R2024b/bin/matlab -nosoftwareopengl Icon=/opt/MATLAB/R2024b/bin/glnxa64/MATLAB_icon Terminal=false Categories=Development;Math;其中-nosoftwareopengl是我比较推荐保留的参数。很多 Linux 桌面环境在虚拟机或没有合适 GPU 驱动时,MATLAB 会尝试用硬件 OpenGL 渲染,结果出现白屏或窗口闪烁;加上这个参数后改用软件渲染,只牺牲一点性能,但界面能正常用。如果你在裸机上有完整显卡驱动,可以去掉;拿不准就保留。
终端用户还可以在~/.bashrc里加一个 alias:
alias matlab='/opt/MATLAB/R2024b/bin/matlab -nosoftwareopengl -desktop'这样你在终端输入matlab,既能启动图形界面,又继承了当前 shell 的环境变量和 conda 的 Python 环境。对于需要 Python 和 MATLAB 联调的人,这个 alias 能让你少踩很多环境不通的坑。
6. 高频报错速查:启动、库缺失与卸载清理
6.1 启动失败先分清“缺库”“缺权限”“缺授权”三类原因
最常见的问题是安装后点击或输入 matlab 没反应。这时候不要反复重装,先看启动日志,用一条命令测最小启动:
/opt/MATLAB/R2024b/bin/matlab -nodisplay -nosplash -batch "disp('test')"如果是库缺失,输出会提示缺libxt.so、libXext.so之类的文件名。这种情况可以用发行版包管理器补齐,例如 Debian/Ubuntu 上:
sudo apt install libxt6 libxext6 libx11-6不要把系统上的库一次性全装齐,先看报错信息,缺什么补什么,避免无谓改动系统环境。如果是权限问题,大概率是 license 文件或安装目录的 owner 不对,用ls -la检查一下,再用chown -R调整。如果是授权问题,留意报错里的代码:
| 报错关键字 | 大概率原因 | 处理方向 |
|---|---|---|
| License Manager Error -8 | 授权文件缺失或 hostid 不匹配 | 重新生成 license 文件,放到指定目录 |
| License Manager Error -9 | 授权文件内容与当前环境不一致 | 检查 licenses 目录与启动用户权限 |
| “Cannot find MATLAB executable” | PATH 指向错误 | 重新确认 bin 目录路径 |
这只是一个方向的参考,具体要以日志为准。不过license报错有一半以上都和“授权文件对不对得上当前主机”有关,所以我把重新生成、放置、设置权限这三步列为优先动作。
6.2 字体、OpenGL 和外部环境变量干扰
MATLAB 在 Linux 上偶尔界面出现中文方块或乱码,多半是中文字体缺失。装一下fonts-liberation或fonts-wqy-microhei就能解决大部分显示问题。如果程序内部文字还是不对,去检查系统字体索引,不要强行改 locale。我见过不少人为了显示中文把 locale 改成zh_CN.UTF-8,结果 MATLAB 控制台里英文输出也乱了,属于得不偿失。
如果平时用 conda 或 Python 虚拟环境,很容易遇到LD_LIBRARY_PATH冲突。我处理这类问题时的固定动作是:
unset LD_LIBRARY_PATH matlab如果这样启动正常,说明是外部环境变量干扰,再逐步排查是哪个配置带进来的。这个方法帮我在多台机器上定位过问题,几乎每次都能快速区分“软件问题”和“环境问题”。
6.3 卸载时的干净清理方式
卸载 MATLAB 的命令在安装目录下:
sudo env LD_LIBRARY_PATH= /opt/MATLAB/R2024b/uninstall有些版本需要从安装器里带uninstall参数,思路一样。卸载后还要清理用户目录下的配置:
rm -rf ~/.matlab以及/usr/local下残留的 MATLAB 符号链接。那些历史版本的 startup 脚本不清理干净,会在终端里报一堆 warning,看着不碍事,但会干扰你后续排查新问题。做一个卸载 check-list 比直接删目录更靠谱,我通常会先备份license.lic,确认不再需要后再进入卸载流程。
7. 按经验补几句:升级、维护和团队协作
7.1 版本升级前盯住三个位置
不管你是从 R2023a 升到 R2024b,还是想换到热词里的 2026b 这类新版本,升级前最值得检查的是三个位置:~/.bashrc里的 PATH 和 MATLAB_ROOT、/etc/profile.d/下的全局脚本、~/.local/share/applications/里的桌面启动器。升级完成后,先核对这几处的旧路径有没有被写死。很多人升级后启动不了,不是因为新版本有问题,而是因为旧启动文件还指向老目录。
安装新版本前,我还会把旧版本的工具箱清单导出来,对照着勾选新版本工具箱。顺手把~/.matlab里自己常用脚本的依赖记录一下,这样升级后环境差异导致的问题会少很多。
7.2 多用户环境下的目录规划建议
如果是几台工作站组成的小型算力环境,建议统一安装到/opt/MATLAB,并创建专门的matlab_users用户组。安装完授权文件后,把安装目录和 license 目录的组权限设置为可读可执行:
sudo chown -R root:matlab_users /opt/MATLAB sudo chmod -R 750 /opt/MATLAB /opt/MATLAB/licenses这样普通用户能启动 MATLAB,又不会误改核心文件。配合网络许可证服务器,整体管理成本比每个人单独装一套低得多。最后一次帮实验室配置这种环境时,我顺手把 license 服务写成了 systemd 单元,重启后服务自动拉起,整个学期基本没有再听到“MATLAB 又打不开”的抱怨。
我个人的体会是,Linux 装 MATLAB 真正难的不是敲那几条命令,而是对版本、授权和环境这三件事的理解。下载校验、授权文件提前处理、启动参数合理设置,这三点做扎实,整个安装过程会非常顺。希望这篇内容能让你少走一点弯路,哪怕只帮你省下一个下午也是好的。