linux - 在 Ubuntu 上从 matlab 调用外部脚本失败

标签 linux r matlab ubuntu

找了很多次都没有解决问题。我使用 system()/unix() 从 matlab 调用外部 R 脚本,发现共享库加载错误。我知道 matlab 中的环境是错误的。我还尝试将命令包装在 xterm 或 gnome-terminal 中,但没有成功。如何加载正确的环境变量?有没有办法在调用之前重置回操作系统的环境变量?

>> !export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ 
   % also tried - !export LD_LIBRARY_PATH=/usr/lib64;
>> unix('Rscript /home/gary/testRF1.R')
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/usr/lib/R/library/stats/libs/stats.so':
  /usr/local/MATLAB/R2012a/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3gf)
During startup - Warning message:
package ‘stats’ in options("defaultPackages") was not found 
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/usr/lib/R/library/stats/libs/stats.so':
  /usr/local/MATLAB/R2012a/sys/os/glnxa64/libgfortran.so.3: version `GFORTRAN_1.4' not found (required by /usr/lib/liblapack.so.3gf)
Error: package or namespace load failed for ‘R.matlab’
Execution halted

ans =

     1

发行版:Ubuntu 12.04.3

R 信息: 平台 x86_64-pc-linux-gnu
架构 x86_64
操作系统 linux-gnu
系统 x86_64,linux-gnu
状态
专业3
小 0.2
2013年
9月
第 25 天
svn 版本 63987
语言 R
version.string R 版本 3.0.2 (2013-09-25) 昵称飞盘帆船

非常感谢, 加里

最佳答案

一种解决方案是更改您要使用的 libgfortran。

  1. 打开终端并 cd 到“local_MATLAB”/sys/os/“your_os”/

  2. 检查 libgfortran.so.3 是指向 ligfortran.so.3.0.0 的符号链接(symbolic link)并将其删除

  3. 否则复制 libgfortran.so.3 以备不时之需

  4. 找到您自己的 libgfortran 并使符号链接(symbolic link)指向它

在我的系统上这看起来像:

cd /usr/local/MATLAB/R2012a/sys/os/glnxa64/
rm libgfortran.so.3
ln -s -T /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0 libgfortran.so.3

如果您使用的是 UNIX,则应该已经安装了 libgfortran,您可以通过以下方式找到它:

locate libgfortran

记得重新启动 MATLAB 以便应用更改

关于linux - 在 Ubuntu 上从 matlab 调用外部脚本失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21003193/

相关文章:

c++ - 无法在 64 位 Debian 上运行 32 位二进制文​​件

linux - 机顶盒黑客攻击

r - 如何在特定的代码行之后停止set.seed()?

regex - 在 MATLAB 中提取单引号之间的文本

matlab - 我可以用 matlab 对 sub_blocks 做最大过滤吗

linux - 从 shell 将 HTML 表转换为 CSV 文件

linux - 如何在 bash 中精确打印一些文本

R基本函数本征有对称矩阵的问题

python - 使用 rpy2 映射 python 元组和 R 列表?

matlab - Matlab中的位级运算