【发布时间】:2016-05-13 00:17:57
【问题描述】:
我正在尝试在 Linux 机器上安装 Matlab,但设置 LD_LIBRARY_PATH(根据安装需要)会破坏其他库文件。我不是 Linux 专家,但我尝试了几件事,但无法使其正常工作。我什至联系了 Matlab 支持,将问题提升到开发团队,并且基本上被告知“哈哈糟透了”。我在网上看到其他一些人也遇到过同样的问题,但要么他们的问题从未得到解答,要么他们的问题略有不同,他们的解决方案不适用于我。
在运行 Ubuntu 的 VM 上安装:
我按照说明设置了 LD_LIBRARY_PATH,然后它会破坏网络文件。我可以 ping google.com,但我无法 nslookup google.com 或在浏览器中访问它。 Nslookup 提供此错误:
nslookup: /usr/local/MATLAB/MATLAB_Runtime/v90/bin/glnxa64/libcrypto.so.1.0.0: no version information available (required by /usr/lib/libdns.so.100)
03-Feb-2016 11:32:22.361 ENGINE_by_id failed (crypto failure)
03-Feb-2016 11:32:22.362 error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
03-Feb-2016 11:32:22.363 error:260B6084:engine routines:DYNAMIC_LOAD:dso not found:eng_dyn.c:447:
03-Feb-2016 11:32:22.363 error:2606A074:engine routines:ENGINE_by_id:no such engine:eng_list.c:418:id=gost
(null): dst_lib_init: crypto failure
尽管安装成功(我可以运行引用已编译 Matlab 函数的 Java 程序)。取消设置 LD_LIBRARY_PATH 修复了网络文件,但是我不能再运行程序了。
在 EC2 实例上安装:
在 EC2 实例上,它不会破坏网络文件(nslookup 很好)。相反,它会弄乱 Python 库文件。尝试使用任何 aws cli 命令,我收到错误:
File "/usr/bin/aws", line 19, in <module>
import awscli.clidriver
File "/usr/lib/python2.7/dist-packages/awscli/clidriver.py", line 16, in <module>
import botocore.session
File "/usr/lib/python2.7/dist-packages/botocore/session.py", line 25, in <module>
import botocore.config
File "/usr/lib/python2.7/dist-packages/botocore/config.py", line 18, in <module>
from botocore.compat import six
File "/usr/lib/python2.7/dist-packages/botocore/compat.py", line 139, in <module>
import xml.etree.cElementTree
File "/usr/lib64/python2.7/xml/etree/cElementTree.py", line 3, in <module>
from _elementtree import *
ImportError: PyCapsule_Import could not import module "pyexpat"
在 Python 中打印 sys.path 显示 lib-dynload 已经存在,所以这似乎不是问题。
当尝试运行程序时,我得到:
Exception in thread "main" java.lang.LinkageError: libXt.so.6: cannot open shared object file: No such file or directory
at com.mathworks.toolbox.javabuilder.internal.DynamicLibraryUtils.dlopen(Native Method)
at com.mathworks.toolbox.javabuilder.internal.DynamicLibraryUtils.loadLibraryAndBindNativeMethods(DynamicLibraryUtils.java:134)
at com.mathworks.toolbox.javabuilder.internal.MWMCR.<clinit>(MWMCR.java:1529)
at VectorAddExample.VectorAddExampleMCRFactory.newInstance(VectorAddExampleMCRFactory.java:48)
at VectorAddExample.VectorAddExampleMCRFactory.newInstance(VectorAddExampleMCRFactory.java:59)
at VectorAddExample.VectorAddClass.<init>(VectorAddClass.java:62)
at com.mypackage.Example.main(Example.java:13)
我在砖墙上,真的不知道如何继续。
【问题讨论】:
-
你是如何设置 ld_library_path 的?
-
我已经手动和在 .bashrc 中使用过
export LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v90/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v90/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v90/sys/os/glnxa64: -
以这种方式使用导出会删除 ld_library_path 中以前的条目,请检查我的答案
标签: java python linux matlab amazon-ec2