每次我尝试使用此命令安装 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 内容复制到可写的文件系统。