我在Ubuntu 20.04的机器上使用RStudio版本1.3.1093。我的R版本是4.0.3。
当我从RStudio:中调用这行代码时,出现了一个意外的行为
system("soffice --headless --convert-to xlsx --outdir files/ files/EGP.xlsb")
它失败,并显示以下消息:
/usr/lib/libreoffice/program/javaldx: error while loading shared libraries: libreglo.so: cannot open shared object file: No such file or directory
Warning: failed to read path from javaldx
/usr/lib/libreoffice/program/soffice.bin: error while loading shared libraries: libreglo.so: cannot open shared object file: No such file or directory
Warning message:
In system("soffice --headless --convert-to xlsx --outdir files/ files/EGP.xlsb") :
error in running command
如果我调用";裸的";来自RStudio终端的命令(soffice --headless --convert-to xlsx --outdir files/ files/EGP.xlsb
(:
user@machine:~/Right/Path/To/File$ soffice --headless --convert-to xlsx --outdir files/ files/EGP.xlsb
/usr/lib/libreoffice/program/javaldx: error while loading shared libraries: libreglo.so: cannot open shared object file: No such file or directory
Warning: failed to read path from javaldx
/usr/lib/libreoffice/program/soffice.bin: error while loading shared libraries: libreglo.so: cannot open shared object file: No such file or directory
但是,如果我从终端进行相同的调用,它不会出错,并产生预期的输出:
user@machine:~/Right/Path/To/File$ soffice --headless --convert-to xlsx --outdir files/ files/EGP.xlsb
convert /home/user/Right/Path/To/File/files/EGP.xlsb -> /home/user/Right/Path/To/File/files/EGP.xlsx using filter : Calc Office Open XML
Overwriting: /home/user/Right/Path/To/File/files/EGP.xlsx
我遵循了这个向Ubuntu提问的建议,意识到需要更新$LD_LIBRARY_PATH
,但问题并没有解决。
RStudio是否错过了查找libreoffice库的路径,这些库在某种程度上对系统来说是清晰的(因为终端在查找它们时没有问题(?我该怎么修?谢谢
下面是Roah的评论:R 中系统函数的共享库问题
在R脚本中添加Sys.setenv
位对我有效:
Sys.setenv(LD_LIBRARY_PATH = "/usr/lib/libreoffice/program/")
system('soffice --convert-to odt table.html')