使用 www-data 用户 (opencpu) 使用 latexmk 编译 .tex 文件

Compile .tex file with latexmk with www-data user (opencpu)

i 运行 ubuntu 14.04 服务器上的 opencpu 1.5 [1]。我的 R-Package 创建一个 .tex 文件并触发系统调用以使用 latexmk 编译 pdf 文件。

    system("latexmk -xelatex -interaction=batchmode mylatex.tex")

在 ubuntu 12.04 LTS 上运行良好。

从 ubtuntu 12.04 LTS 更新到 14.04 LTS 后,这不起作用。 该过程是 运行ning 作为 www-data 用户。对于其他系统用户,我可以使用 latexmk 编译 .tex 文件。

我的 LaTeX 版本:TexLive 2016 完整版

这里出自:

print(Sys.getenv())

...
APACHE_RUN_GROUP        www-data
APACHE_RUN_USER         www-data
HOME                    /tmp/ocpu-temp
PATH                   /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/texlive/current
...

有什么想法吗?

谢谢!

--

[1] https://www.opencpu.org/

我在我的日志文件中找到了这个条目:

 apparmor="DENIED" operation="exec" profile="opencpu-exec" 
     name="/usr/local/texlive/2016/texmf-dist/scripts/latexmk/latexmk.pl" pid=4305 comm="sh" requested_mask="x" denied_mask="x" fsuid=33 ouid=0

然后我添加了以下行:

/usr/local/texlive/2016/texmf-dist/scripts/latexmk/latexmk.pl ux,

在此 /etc/apparmor.d/opencpu.d/custom 文件中。

这解决了我的 latexmk 问题。

感谢 Jeroen