2017-02-04 1 views
0

Ich arbeite auf Ubuntu 16.04 (in einem Docker Container).freigegebene Bibliothek Problem mit der Systemfunktion in R

libroffice ist installiert und funktioniert gut.

Ich kann es mit Befehlszeile verwenden:

[email protected]:/# libreoffice --version 
LibreOffice 5.2.4.2.1 20m0(Build:2) 
[email protected]:/# libreoffice --headless --convert-to pdf --outdir . rapport.docx                
convert /rapport.docx -> /rapport.pdf using filter : writer_pdf_Export 
[email protected]:/# 

Aber wenn ich versuche, das gleiche in R zu tun:

R version 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch" 
Copyright (C) 2016 The R Foundation for Statistical Computing 
Platform: x86_64-pc-linux-gnu (64-bit) 

R is free software and comes with ABSOLUTELY NO WARRANTY. 
You are welcome to redistribute it under certain conditions. 
Type 'license()' or 'licence()' for distribution details. 

    Natural language support but running in an English locale 

R is a collaborative project with many contributors. 
Type 'contributors()' for more information and 
'citation()' on how to cite R or R packages in publications. 

Type 'demo()' for some demos, 'help()' for on-line help, or 
'help.start()' for an HTML browser interface to help. 
Type 'q()' to quit R. 

[Previously saved workspace restored] 

> system("whoami") 
root 
> system(paste0("libreoffice --version")) 
/usr/lib/libreoffice/program/soffice.bin: error while loading shared libraries: libreglo.so: cannot open shared object file: No such file or directory 
> system(paste0("libreoffice --headless --convert-to pdf --outdir . rapport.docx")) 
/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 

Ich verstehe nicht, diese gemeinsam benutzte Bibliothek Fehler ... Jede Idee ?

Grüße

Antwort

0

einfach den Bibliothekspfad festgelegt, permanent durch eine Datei in .conf im Verzeichnis /etc/ld.so.conf.d/, oder einfach nur für den einen Befehl über das LD_LIBRARY_PATH Umgebungsvariable endet Zugabe:

[email protected]:~$ LD_LIBRARY_PATH=/usr/lib/libreoffice/program/ R 

R version 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch" 
Copyright (C) 2016 The R Foundation for Statistical Computing 
Platform: x86_64-pc-linux-gnu (64-bit) 

R is free software and comes with ABSOLUTELY NO WARRANTY. 
You are welcome to redistribute it under certain conditions. 
Type 'license()' or 'licence()' for distribution details. 

    Natural language support but running in an English locale 

R is a collaborative project with many contributors. 
Type 'contributors()' for more information and 
'citation()' on how to cite R or R packages in publications. 

Type 'demo()' for some demos, 'help()' for on-line help, or 
'help.start()' for an HTML browser interface to help. 
Type 'q()' to quit R. 

R> system(paste0("libreoffice --version")) 
LibreOffice 5.2.2.2 20m0(Build:2) 

R> 

Edit: Eigentlich ist vielleicht etwas anderes falsch an deinem Ende, denn hier funktioniert es auch mit der env.var:

[email protected]:~$ R 

R version 3.3.2 (2016-10-31) -- "Sincere Pumpkin Patch" 
Copyright (C) 2016 The R Foundation for Statistical Computing 
Platform: x86_64-pc-linux-gnu (64-bit) 

R is free software and comes with ABSOLUTELY NO WARRANTY. 
You are welcome to redistribute it under certain conditions. 
Type 'license()' or 'licence()' for distribution details. 

    Natural language support but running in an English locale 

R is a collaborative project with many contributors. 
Type 'contributors()' for more information and 
'citation()' on how to cite R or R packages in publications. 

Type 'demo()' for some demos, 'help()' for on-line help, or 
'help.start()' for an HTML browser interface to help. 
Type 'q()' to quit R. 

R> system(paste0("libreoffice --version")) 
LibreOffice 5.2.2.2 20m0(Build:2) 

R> 
+0

danke! perfekt (ich benutze ein kleines 'sudo ldconfig' nach der Bearbeitung '/ etc/ls.so.conf.d/libc.conf') –

+0

Ja, Sie müssen' ldconfig' ausführen, nachdem Sie Änderungen vorgenommen haben. 'ldconfig -p | grep libreglo' ist auch ein guter Check. Und sag Hallo zu Romain für mich. –

+0

werde ich;) Grüße –

Verwandte Themen