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')
我在装有 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')