Matlab 在 ubuntu 14.04 LTS 上安装错误

Matlab 在 ubuntu 14.04 LTS 上安装错误

每次我尝试使用此命令安装 matlab

muhammad@muhammad-Inspiron-N5050:~/Applications/matlab/forubuntu$ ./install 

它显示并关闭命令的安装框 ls -l /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so 命令。– ls:无法访问命令。:没有此文件或目录 ls:无法访问 –:没有此文件或目录 -rw-r--r-- 1 root root 10424 3 月 27 日 23:05 /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so

Preparing installation files ...
->  DVD                 = /home/muhammad/Applications/matlab/forubuntu
->  ARCH                = glnxa64
->  DISPLAY             = :0
->  TESTONLY            = 0
->  JRE_LOC             = /tmp/mathworks_8893/sys/java/jre/glnxa64/jre
->  LD_LIBRARY_PATH     = /tmp/mathworks_8893/bin/glnxa64

Command to run:
/tmp/mathworks_8893/sys/java/jre/glnxa64/jre/bin/java -Xmx512m  -splash:"/home/muhammad/Applications/matlab/forubuntu/java/splash.png" -Djava.ext.dirs=/tmp/mathworks_8893/sys/java/jre/glnxa64/jre/lib/ext:/tmp/mathworks_8893/java/jar:/tmp/mathworks_8893/java/jar/ja_JP/:/tmp/mathworks_8893/java/jar/zh_CN/:/tmp/mathworks_8893/java/jarext:/tmp/mathworks_8893/java/jarext/axis2/:/tmp/mathworks_8893/java/jarext/guice/:/tmp/mathworks_8893/java/jarext/webservices/ com/mathworks/professionalinstaller/Launcher -root "/home/muhammad/Applications/matlab/forubuntu" -tmpdir "/tmp/mathworks_8893" 

Installing ...
/tmp/mathworks_8893/bin/glnxa64/libstdc++.so.6: file too short
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so
Exception in thread "main" com.google.inject.ProvisionException: Guice provision errors:

1) Error in custom provider, java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
  at com.mathworks.wizard.WizardModule.provideDisplayProperties(WizardModule.java:68)
  while locating com.mathworks.instutil.DisplayProperties
  at com.mathworks.wizard.ui.components.ComponentsModule.providePaintStrategy(ComponentsModule.java:76)
  while locating com.mathworks.wizard.ui.components.PaintStrategy
    for parameter 4 at com.mathworks.wizard.ui.components.SwingComponentFactoryImpl.<init>(SwingComponentFactoryImpl.java:111)
  while locating com.mathworks.wizard.ui.components.SwingComponentFactoryImpl
  while locating com.mathworks.wizard.ui.components.SwingComponentFactory
    for parameter 1 at com.mathworks.wizard.ui.WizardUIImpl.<init>(WizardUIImpl.java:62)
  while locating com.mathworks.wizard.ui.WizardUIImpl
  while locating com.mathworks.wizard.ui.WizardUI annotated with @com.google.inject.name.Named(value=BaseWizardUI)
  at com.mathworks.wizard.ui.UIModule.provideWizardUI(UIModule.java:50)
  while locating com.mathworks.wizard.ui.WizardUI
    for parameter 0 at com.mathworks.wizard.ExceptionHandlerImpl.<init>(ExceptionHandlerImpl.java:22)
  while locating com.mathworks.wizard.ExceptionHandlerImpl
  while locating com.mathworks.wizard.ExceptionHandler

1 error
    at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:767)
    at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:793)
    at com.mathworks.wizard.WizardLauncher.startWizard(WizardLauncher.java:156)
    at com.mathworks.wizard.WizardLauncher.start(WizardLauncher.java:71)
    at com.mathworks.wizard.AbstractLauncher.launch(AbstractLauncher.java:27)
    at com.mathworks.wizard.AbstractLauncher.launchStandalone(AbstractLauncher.java:18)
    at com.mathworks.professionalinstaller.Launcher.main(Launcher.java:21)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:106)
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:758)
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754)
    at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)
    at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)
    at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:95)
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at com.google.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42)
    at com.google.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66)
    at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:84)
    at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
    at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42)
    at com.google.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66)
    at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:84)
    at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
    at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
    at com.google.inject.Scopes$1$1.get(Scopes.java:54)
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:758)
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754)
    at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)
    at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)
    at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:95)
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
    at com.google.inject.Scopes$1$1.get(Scopes.java:54)
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at com.google.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42)
    at com.google.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66)
    at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:84)
    at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
    at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at com.google.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
    at com.google.inject.Scopes$1$1.get(Scopes.java:54)
    at com.google.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:758)
    at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:804)
    at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754)
    ... 6 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:101)
    ... 54 more
Caused by: com.mathworks.instutil.JNIException: java.lang.UnsatisfiedLinkError: /tmp/mathworks_8893/bin/glnxa64/libinstutil.so: /tmp/mathworks_8893/bin/glnxa64/libstdc++.so.6: file too short
    at com.mathworks.instutil.NativeUtility.loadNativeLibrary(NativeUtility.java:39)
    at com.mathworks.instutil.NativeUtility.<init>(NativeUtility.java:24)
    at com.mathworks.instutil.DisplayPropertiesImpl.<init>(DisplayPropertiesImpl.java:10)
    at com.mathworks.wizard.WizardModule.provideDisplayProperties(WizardModule.java:75)
    ... 59 more
Caused by: java.lang.UnsatisfiedLinkError: /tmp/mathworks_8893/bin/glnxa64/libinstutil.so: /tmp/mathworks_8893/bin/glnxa64/libstdc++.so.6: file too short
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(Unknown Source)
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.load0(Unknown Source)
    at java.lang.System.load(Unknown Source)
    at com.mathworks.instutil.NativeUtility.loadNativeLibrary(NativeUtility.java:37)

答案1

问题在于,在 [matlab/install/dir]/bin/glnxa64/ 中,符号链接被转换为文本文件,不再充当链接。必须用新的链接替换它。

cd bin/glnxa64
rm libstdc++.so.6
ln -s libstdc++.so.6.0.13 libstdc++.so.6

答案2

只是为了扩展用户 276568 的回答,如果您从 CDROM 安装,则文件系统是只写的。

您可以使用目录绑定来解决此问题:

cp -dR [cdrom path]/bin/glnxa64/ /tmp
cd /tmp/glnxa64
rm libstdc++.so.6
ln -s libstdc++.so.6.* libstdc++.so.6
sudo mount -o bind /tmp/glnxa64/ [cdrom path]/bin/glnxa64/

您还可以将 CDROM 内容复制到可写的文件系统。

相关内容