openSUSE Tumbleweed 安装matlab 2025b

版本: openSUSE Tumbleweed 20250912
DE: KDE Plasma 6.4.5
WM: KWin (Wayland)

1. 安装

官网下载的matlab_R2025b_Linux.zip安装程序, 解压后的install程序运行是会出错的. 换另外一种方式, 使用MATLAB Package Manager (MPM)的方式进行安装.

  1. 下载mpm执行文件:
    https://www.mathworks.com/mpm/glnxa64/mpm
    无脑给个执行权限先:
chmod u+x ./mpm
  1. 下载mpm输入文件:
    matlab-dockerfile/mpm-input-files/R2025b/mpm_input_r2025b.txt at main · mathworks-ref-arch/matlab-dockerfile · GitHub

  2. 修改mpm输入文件:

# destinationFolder=

去掉’#', 填入安装目标路径.

接着找到以下一行:

## PRODUCTS

接着下面的每一行都代表一个需要安装的toolbox, 按需选择来安装(去掉最前面的’#'号).

注意一下, 以下两个toolbox是不能选的, 它们是windows平台的包.

#product.Data_Acquisition_Toolbox
#product.Spreadsheet_Link
  1. 执行命令, 等待, 安装完成.
./mpm install --release=R2025b --inputfile mpm_input_r2025b.txt

2. 解决运行问题

--------------------------------------------------------------------------------
          Segmentation violation detected at 2025-09-19 10:38:46 +0800
--------------------------------------------------------------------------------

Configuration:
  Crash Decoding           : Disabled - No sandbox or build area path
  Crash Mode               : continue (default)
  Default Encoding         : UTF-8
  Desktop Environment      : KDE
  GNU C Library            : 2.42 stable
  MATLAB Architecture      : glnxa64
  MATLAB Root              : /mnt/diskA/edatools/MATLAB/R2025b
  MATLAB Version           : 25.2.0.2998904 (R2025b)
  Operating System         : "openSUSE Tumbleweed"
  Process ID               : 62620
  Processor ID             : x86 Family 6 Model 158 Stepping 10, GenuineIntel

Fault Count: 1


Abnormal termination:
Segmentation violation

Current Thread: 'MCR 0 interpret' id 140346629543616

Register State (from fault):
  RAX = 0000000000000000  RBX = 00007fa4feffad88
  RCX = 00007fa51ee46cc0  RDX = 00007fa51ee1e0c0
  RSP = 00007fa4feffacf0  RBP = 00007fa4d6ffded0
  RSI = 0000000000001000  RDI = 0000000000000000

   R8 = 00007fa51ee44f20   R9 = 00007fa51ee44fa0
  R10 = 00007fa51ee45130  R11 = 00007fa51ee45138
  R12 = 0000000000000000  R13 = 00007fa4feffad10
  R14 = 00007fa4feffad20  R15 = 0000000000000000

  RIP = 00007fa4d70418d8  EFL = 0000000000010246

   CS = 0033   FS = 0000   GS = 0000

Stack Trace (from fault):
[  0] 0x00007fa4d70418d8 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so+02365656 lc_new_job+00000216
[  1] 0x00007fa4d6f5cc1f /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so+01428511
[  2] 0x00007fa4d6f5d6a5 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so+01431205
[  3] 0x00007fa4d6fc6ee4 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so+01863396
[  4] 0x00007fa4d6f5fac6 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so+01440454
[  5] 0x00007fa4d6f5e4ed /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so+01434861
[  6] 0x00007fa4d6f8ebb0 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/matlab_startup_plugins/lmgrimpl/libmwlmgrimpl.so+01633200
[  7] 0x00007fa4d62e53a7 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/authz/licensing/product/matlab_impl/mwlicensingproductmatlab.so+00160679
[  8] 0x00007fa567d3a656 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/factory_settings/compute/project/settings/../../../../../../bin/glnxa64/libmwservices.so+03384918 _ZN15MatlabLicensing11getInstanceEPKN4lmgr6config17LmStartPropertiesE+00002454
[  9] 0x00007fa56623aa61 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/libmwmcr.so+00838241
[ 10] 0x00007fa56624d00d /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/libmwmcr.so+00913421
[ 11] 0x00007fa5662294fa /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/libmwmcr.so+00767226
[ 12] 0x00007fa5662299bd /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/libmwmcr.so+00768445
[ 13] 0x00007fa575097b17 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/libmwboost_thread.so.1.81.0+00043799
[ 14] 0x00007fa57569be11                                   /lib64/libc.so.6+00638481
[ 15] 0x00007fa575720c8c                                   /lib64/libc.so.6+01182860

根据Arch linux论坛的讨论:
[SOLVED] Matlab crashes with gnutls-3.8.10-1 / AUR Issues, Discussion & PKGBUILD Requests / Arch Linux Forums
问题跟gnutls-3.8.10-1有关.

Packages for Linux and Unix下载一个低版本对应的包. openSUSE Tumbleweed没有更低版本的. 那就下openSUSE Leap 15.6的:
libgnutls30-3.8.3-150600.2.15.x86_64.rpm openSUSE 15.6 Download

使用右键菜单选项"Extract"(中文界面是"解压缩"?)直接解压rpm:
将文件夹libgnutls30-3.8.3-150600.2.15.x86_64/usr/lib64/libgnutls.so.30和libgnutls30-3.8.3-150600.2.15.x86_64/usr/lib64/libgnutls.so.30.37.1两个文件直接复制到matlab安装目录bin/glnxa64下.

matlab继续报错:

/mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/MathWorksProductAuthorizerterminate called after throwing an instance of 'cppmicroservices::SharedLibraryException'
  what():  Error loading /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/product_authorizer/interactive/product_authorizer_impl/libmwinteractiveprodauthlauncher.so. libunistring.so.2: cannot open shared object file: No such file or directory: Success: Success
Aborted                    (core dumped) /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/MathWorksProductAuthorizer

这个好解决:

cp /lib64/libunistring.so.5 /mnt/diskA/edatools/MATLAB/R2025b/bin/glnxa64/
ln -s libunistring.so.5 libunistring.so.2

这下matlab已经能启动GUI了.
当然, 如果你没有license, GUI很快就会消失. 并提示你没有license, 用不了.

执行安装目录下/bin/glnxa64/MathWorksProductAuthorizer.sh
填入对应的账号, 密码获取license. matlab就能跑起来了.

补充一下: 如果不解决libgnutls的问题, 就执行安装目录下/bin/glnxa64/MathWorksProductAuthorizer.sh, 这个脚本最终调用的MathWorksProductAuthorizer可执行程序也是会有问题的.