soffice 仅在从 RStudio 调用时失败

soffice fails ONLY when called from RStudio

我在装有 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) 调用“naked”命令,错误完全相同:

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

我听从了 this ask Ubuntu question 中的建议,关于需要更新 $LD_LIBRARY_PATH 但问题没有解决。

RStudio 是否缺少查找 libreoffice 库的路径,系统在某种程度上是清楚的(因为终端可以轻松找到它们)?我该如何解决? 谢谢!

关注Roah comment here:

在 R 脚本中添加 Sys.setenv 位对我有用:

Sys.setenv(LD_LIBRARY_PATH = "/usr/lib/libreoffice/program/")
system('soffice --convert-to odt table.html')