
estamos usando lualatex
para produzir alguns documentos gerados automaticamente em nosso servidor web.
Temos um servidor baseado no Ubuntu 18.04, no qual o Nginx é executado como servidor web. O Nginx não funciona como root
, mas como um usuário diferente www-data
. Em alguns sites existe um script que gera um arquivo LaTeX. Este arquivo LaTeX compila sem erros, se for chamado manualmente como usuário root
com lualatex filename.tex
. Portanto, atrevo-me a dizer que todas as classes, estilos e outros itens necessários estão disponíveis.
Se o mesmo arquivo for executado como user www-data
, usando o mesmo comando idêntico, ele para quase imediatamente após carregar o arquivo de entrada LaTeX e chamar o LaTeX2e.
Ironicamente, lualatex
envia um valor de retorno de 0
, ou seja, sem erro. Há apenas um arquivo de log gerado, com 12 linhas. Mesmo o arquivo de log não contém erros ou outras dicas sobre o motivo lualatex
do fracasso. Este é o referido arquivo de log:
This is LuaTeX, Version 1.07.0 (TeX Live 2019/dev/Debian) (format=lualatex 2019.3.12) 12 MAR 2019 16:53
restricted system commands enabled.
**04-201901.tex
(./04-201901.tex
LaTeX2e <2018-12-01>
Lua module: luaotfload-main 2019-02-14 2.96 luaotfload entry point
Lua module: luaotfload-init 2019-02-14 2.96 luaotfload submodule / initializatio
n
Lua module: lualibs 2019-02-14 2.64 ConTeXt Lua standard libraries.
Lua module: lualibs-extended 2019-02-14 2.64 ConTeXt Lua libraries -- extended c
ollection.
Lua module: luaotfload-log 2019-02-14 2.96 luaotfload submodule / logging
Alguém tem alguma dica sobre o que fazer para lualatex
rodar neste servidor web (com direitos restritos como usuário www-data
)?
Responder1
Conforme sugerido por daleif, luaotfload não consegue encontrar um diretório adequado para seus caches porque não há diretório texmf-var gravável no diretório do usuário de ẁww-data
. Mas você pode ajudar lualatex
: em vez de correr
lualatex <your options> filename.tex
você pode usar
TEXMFCACHE=:/tmp/ lualatex <your options> filename.tex
onde /tmp
pode ser qualquer diretório no qual o usuário www-data
possa gravar.
Conforme sugerido por Ulrike Fischer no bate-papo, isso pode ser apenas um indicador de um problema maior: você realmente deveria adicionar algum caminho gravável para TEXMFVAR
. Portanto, uma solução melhor seria criar algum diretório (vou usar /some/dir/for/www-data
), para o qual www-data
tenha permissões de gravação e, em seguida, definir a variável de ambiente TEXMFVAR
como /some/dir/for/www-data:
antes de executar lualatex
. Como fazer isso depende da sua invocação específica, lualatex
porque www-data
provavelmente nem tem shell.