TexStudio con arara; no puedo encontrar extractobb

TexStudio con arara; no puedo encontrar extractobb

Con algo de ayuda delpregunta previa TexStudio y arara, Pude comenzar con arara dentro de TexStudio (¡Yay!). Pero mientras ejecutaba una compilación de Xelatex (el segundo código de ejemplo en la URL que acabo de mencionar), recibí este mensaje de error (no terminó de compilarse):

(/usr/local/texlive/2022/texmf-dist/tex/latex/supertabular/supertabular.sty
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/glossaries/styles/glossary-tree.s
ty
))
(/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
! I can't find file `"|extractbb --version"'.
<to be read again> 
                   \scan_stop: 
l.72     \l__sys_internal_tl
                            
(Press Enter to retry, or Control-D to exit)
Please type another input file name: 
runpopen command not allowed: extractbb

extractbbexiste y (en mi máquina) está en/usr/local/texlive/2022/bin/x86_64-linux/extractbb

Sólo una suposición: ¿Es posible que esto no sea tanto un problema con la ruta ( 'I can't find file `"|extractbb --version'), sino quizás con el permiso del shell ( runpopen command not allowed : extractbb)? ¡Cualquier sugerencia sobre cómo solucionarlo será apreciada!

------editar, seguir el comentario de David Carlisle con respecto a texmf.cfg-----

Mis únicas personalizaciones para mi texmf.cfg "personal" es la adición de

shell_escape_commands = pagelayoutapi

mientras que elsin alterar,"general" texmf.cfg en /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnfindica que

% The default is true, because we already avoid adding the standard
% extension(s) in the usual cases.  E.g., babel.sty will only look for
% babel.sty, not babel.sty.tex, regardless of this setting.
try_std_extension_first = t

% Enable system commands via \write18{...}.  When enabled fully (set to
% t), obviously insecure.  When enabled partially (set to p), only the
% commands listed in shell_escape_commands are allowed.  Although this
% is not fully secure either, it is much better, and so useful that we
% enable it for everything but bare tex.
shell_escape = p

% No spaces in this command list.
% 
% The programs listed here are as safe as any we know: they either do
% not write any output files, respect openout_any, or have hard-coded
% restrictions similar to or higher than openout_any=p.  They also have
% no features to invoke arbitrary other programs, and no known
% exploitable bugs.  All to the best of our knowledge.  They also have
% practical use for being called from TeX.
% 
shell_escape_commands = \
bibtex,bibtex8,\
extractbb,\
gregorio,\
kpsewhich,\
makeindex,\
repstopdf,\
r-mpost,\
texosquery-jre8,\

EDITAR: respuesta a la respuesta de egreg. Volví a mirar /usr/local/texlive/2022/texmf.cnfporque, aunque los cambios de egreg de hecho resolvieron el problema, las instrucciones (proporcionadas como comentarios dentro del archivo) son contrarias, indican que SÓLO debes colocar los cambios en ese archivo, NO todas las líneas originales presentes en /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf:

% (Public domain.)
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
%
% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf-dist/web2c/texmf.cnf).
% And include *only* your changed values, *NOT A COPY OF THE WHOLE THING!* [caps added here for emphasis--Birdman]
%

Continúo esta conversación porque me gustaría saber si de alguna manera he malinterpretado esta advertencia (--> no copiar todo), o si esos comentarios instructivos son en sí mismos defectuosos.

Respuesta1

Definitivamente es culpa de tu modificación. Con

shell_escape_commands = pagelayoutapi

tu estas permitiendosolola aplicación pagelayoutapien el shell-escape restringido. Si intentas

kpsewhich --var-value shell_escape_commands

desde la línea de comando, deberías ver

pagelayoutapi

(Recién probado en mi máquina).

Debe copiar la lista completa y agregarle al modificar el texmf.cnfarchivo de nivel superior:

shell_escape_commands = \
bibtex,bibtex8,\
extractbb,\
gregorio,\
kpsewhich,\
makeindex,\
repstopdf,\
r-mpost,\
texosquery-jre8,\
pagelayoutapi,\

¿Cómo texmf.cnffunciona la lectura?

Generalmente hay dos texmf.cnfarchivos en el árbol TeX. Uno está en el nivel superior, el otro está en texmf-dist. La salida de

kpsewhich -a texmf.cnf

en mi máquina está

/usr/local/texlive/2022/texmf.cnf
/usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf

Puede que haya más archivos de este tipo, pero lo esencial es saber que se leen en el orden mostrado por kpsewhich -a.

Los valores de las variables que se establecen en un archivo sonnoanulado por archivos posteriores. Hay una recomendación en el archivo "principal" (pero leído por última vez), a saber

% That is, if you need to make changes to texmf.cnf, put your custom
% settings in this file, which is .../texlive/YYYY/texmf.cnf, rather than
% the distributed file (which is .../texlive/YYYY/texmf-dist/web2c/texmf.cnf).
% And include *only* your changed values, *NOT A COPY OF THE WHOLE THING!* [caps added here for emphasis--Birdman]

"NO UNA COPIA DE TODO" se refiere a no agregar todas las variables, sino solo aquellas cuyo valor necesita cambiar. Si agrega todo, la inicialización sería más lenta, porque sería necesario leer y descartar muchos valores.

Si dices en el texmf.cnfarchivo de nivel superior

shell_escape_commands =

no se permite ningún programa externo en el shell restringido. Las variables no se establecen de forma incremental: las líneas posteriores que comienzan con ese valor se ignoran.

información relacionada