我正在尝试在 Debian Testing 上安装 Matlab 2014a。当我使用以下命令运行安装脚本时
sudo ./install -javadir /usr/lib/jvm/java-7-openjdk-amd64/jre/
我得到这个输出
Preparing installation files ...
Installing ...
Error: dl failure on line 894
Error: failed /tmp/mathworks_11967/sys/java/jre/glnxa64/jre/lib/amd64/server/libjvm.so, because /tmp/mathworks_11967/bin/glnxa64/libstdc++.so.6: invalid ELF header
Finished
我从 .iso 安装,从根目录(matlab)运行此脚本。libstdc++.so.6
是在matlab/bin/glnxa64/libstdc++.so.6
.
这是我的java版本:
$java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-3)
OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)
有人有什么想法吗?我已经忙了好几个小时了,而且我无法使用 Python 或 Octave,因为我正在学习的课程需要使用 Matlab。我在论坛上搜索了几个小时,唯一与我有完全相同错误的人是这里但他们从未得到答案。
编辑: 解决了。首先:不要尝试在未正式支持的操作系统上安装 matlab 版本。 2014a 仅支持 Debian Squeeze 和 Ubuntu 12.04、13.04 和 13.10。
我设置了一个运行 Ubuntu 12.04.5 的虚拟机,在主机上提取了 .iso,并将目录复制到虚拟机的主文件夹中。我做了不是挂载 iso。
然后我必须删除它并用同一文件夹中matlab/bin/glnxa64/libstdc++.so.6
指定的文件替换它。应该是到其他库的符号链接,但是如果您尝试直接挂载 iso,它通常会破坏链接并用文本文件替换它。libstdc++.so.6.0.17
libstdc++.so.6
当我尝试通过在虚拟机上安装 Matlab 来安装它时,我遇到了同样的错误。我设法通过将 的副本替换libstdc++.so.6
为 中的副本来删除它/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so
。然后我开始出现java错误,结果发现matlab/java/jar/professionalinstaller.jar
文件已损坏。在开始这一切之前我已经提取了 iso,这就是我可以在 jar 损坏之前返回到的方式。希望这篇文章对将来被迫使用 Matlab 的其他可怜人有用。
答案1
我在使用 iso 映像在 Debian 8 上安装 2013 版本时遇到了同样的问题。
解决方案
对我有用的解决方案是将libstdc++.so.6
文件重命名为libstdc++.so.6.0.13
iso 映像bin/
目录中的文件。之后我发出命令:
# ./install -x
开始图形安装。终于成功了!