
Estamos utilizando lualatex
para producir algunos documentos generados automáticamente en nuestro servidor web.
Tenemos un servidor basado en Ubuntu 18.04, en el que Nginx se ejecuta como servidor web. Nginx no se ejecuta como root
, sino como un usuario diferente www-data
. En algunos sitios web hay un script que genera un archivo LaTeX. Este archivo LaTeX se compila sin errores, si se llama manualmente como usuario root
con lualatex filename.tex
. Por lo tanto, me atrevo a decir que todas las clases, estilos y demás necesarios están disponibles.
Si se ejecuta el mismo archivo como usuario www-data
, usando el mismo comando idéntico, se detiene casi inmediatamente después de cargar el archivo de entrada LaTeX y llamar a LaTeX2e.
Irónicamente, lualatex
envía un valor de retorno de 0
, es decir, sin error. Solo se genera un archivo de registro, que tiene 12 líneas de largo. Incluso el archivo de registro no contiene errores ni más sugerencias, ¿por qué lualatex
no tuvo éxito? Este es dicho archivo de registro:
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
¿Alguien tiene alguna sugerencia sobre qué hacer para lualatex
ejecutar este servidor web (con derechos restringidos como usuario www-data
)?
Respuesta1
Como lo sugiere daleif, luaotfload no puede encontrar un directorio adecuado para sus cachés porque no hay un directorio texmf-var grabable en el directorio de usuario de ẁww-data
. Pero tú puedes ayudar lualatex
: en lugar de correr
lualatex <your options> filename.tex
puedes usar
TEXMFCACHE=:/tmp/ lualatex <your options> filename.tex
donde /tmp
puede estar cualquier directorio www-data
en el que el usuario pueda escribir.
Como sugirió Ulrike Fischer en el chat, esto podría ser solo un indicador de un problema mayor: realmente deberías agregar alguna ruta de escritura a TEXMFVAR
. Entonces, una mejor solución sería crear algún directorio (usaré /some/dir/for/www-data
), para el cual www-data
tenga permisos de escritura y luego configurar la variable de entorno TEXMFVAR
antes /some/dir/for/www-data:
de ejecutar lualatex
. Cómo hacer esto depende de su invocación específica lualatex
porque www-data
probablemente ni siquiera tenga un shell.