R 闪亮服务器:编译期间生成可下载PDF失败(代码在本地运行)

R 闪亮服务器:编译期间生成可下载PDF失败(代码在本地运行),r,ubuntu-16.04,r-markdown,knitr,shiny-server,R,Ubuntu 16.04,R Markdown,Knitr,Shiny Server,我正在远程Ubuntu 16.04 LTS平台上托管一个闪亮的应用程序(“alpha”)。上载本地运行时完全可运行的闪亮应用程序目录时,generate.pdf函数不起作用。具体而言,浏览器返回以下错误消息: Firefox在上找不到该文件 我首先怀疑这是一个用户权限问题,并授予“闪亮”用户(默认情况下在Ubuntu上运行应用程序)对/tmp/文件夹的读写执行访问权限,因为.pdf生成使用临时文件夹生成报告 sudo setfacl -m 'u:shiny:rwx' /tmp/ 不幸的是,问题

我正在远程Ubuntu 16.04 LTS平台上托管一个闪亮的应用程序(“alpha”)。上载本地运行时完全可运行的闪亮应用程序目录时,generate.pdf函数不起作用。具体而言,浏览器返回以下错误消息:

Firefox在上找不到该文件

我首先怀疑这是一个用户权限问题,并授予“闪亮”用户(默认情况下在Ubuntu上运行应用程序)对/tmp/文件夹的读写执行访问权限,因为.pdf生成使用临时文件夹生成报告

sudo setfacl -m 'u:shiny:rwx' /tmp/
不幸的是,问题依然存在。以下是我的软件包版本:

knitr        "knitr"        "/usr/local/lib/R/site-library" "1.20"
rmarkdown    "rmarkdown"    "/usr/local/lib/R/site-library" "1.10"  
shiny        "shiny"        "/usr/local/lib/R/site-library" "1.1.0"
tinytex      "tinytex"      "/usr/local/lib/R/site-library" "0.8"
/opt/shiny-server/ext/pandoc/pandoc --version pandoc 1.19.2.1
Pandoc包是在安装Shiny Server时编译的,TinyTex包是通过以下方式安装的

以下是Shining Server生成的错误日志:

Listening on http://127.0.0.1:43458
165: ispresent
164: scatter3D
163: renderPlot [/srv/shiny-server/alpha/server.R#254]
161: func
121: drawPlot
107: <reactive:plotObj>
91: drawReactive
78: origRenderFunc
77: output$dist
1: runApp

processing file: report.Rmd
output file: report.knit.md

sh: 1: pdflatex: not found
Warning: Error in : Failed to compile /tmp/Rtmp25Y4aU/file5bf19f9dd9f.tex. [No stack trace available]

错误显示未找到
pdflatex

sh: 1: pdflatex: not found
tinytex::tlmgr_conf()
的输出中,我们看到
pdftex
安装在
/root
中,即
root
用户的主目录:

pdftex:    /root/bin/pdftex
它看起来像是以
root
user的身份执行
tinytex::install\u tinytex()
。 运行闪亮服务器的
shinny
用户无权访问该目录。您可以为
用户添加TinyTeX安装,如下所示:

sudo su - shiny
R -e 'tinytex::install_tinytex()'

我不知道是否可以使用
tinytex
进行系统范围的安装

错误消息很清楚,没有找到pdflatex。您是如何精确地安装TinyTeX的?第一次尝试:install.packages('TinyTeX')TinyTeX::install\u TinyTeX()安装验证通过:TinyTeX:::TinyTeX()[1]是否正确请您的问题包括
TinyTeX::tlmgr\u conf()
的输出。另外:哪个用户运行了这些命令?哪个用户运行闪亮服务器?已添加日志。默认情况下,“闪亮”用户运行服务器@这太棒了。我认为tinytex是系统范围的(类似于通过install.packages()安装的标准R库)。非常感谢,祝你有一个愉快的一天!虽然我的代表不会给出答案,但投票结果是正确的。
pdftex:    /root/bin/pdftex
sudo su - shiny
R -e 'tinytex::install_tinytex()'