TexStudio com arara; não consigo encontrar extractbb

TexStudio com arara; não consigo encontrar extractbb

Com alguma ajuda dopergunta anterior TexStudio e arara, consegui começar com arara dentro do TexStudio (Oba!). Mas ao executar uma compilação do Xelatex (o segundo código de exemplo na URL que acabamos de observar), recebi esta mensagem de erro (a compilação não foi concluída):

(/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 e (na minha máquina) está em/usr/local/texlive/2022/bin/x86_64-linux/extractbb

Apenas um palpite: é possível que isso não seja tanto um problema com o caminho ( 'I can't find file `"|extractbb --version'), mas talvez com a permissão do shell ( runpopen command not allowed : extractbb)??? Qualquer sugestão sobre como consertar seria apreciada!

------editar, siga o comentário de David Carlisle em relação ao texmf.cfg-----

Minhas únicas personalizações para meu texmf.cfg "pessoal" são a adição de

shell_escape_commands = pagelayoutapi

Considerando que ainalterado,"geral" texmf.cfg at /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,\

EDIT - resposta à resposta do egreg que olhei novamente /usr/local/texlive/2022/texmf.cnfporque, embora as alterações do egreg tenham de fato resolvido o problema, as instruções (fornecidas como comentários dentro do arquivo) são contrárias, elas indicam que você SÓ deve colocar as alterações nesse arquivo, NÃO todas as linhas originais presentes em /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]
%

Continuo esta conversa porque gostaria de saber se de alguma forma interpretei mal esta advertência (--> para não copiar tudo), ou se esses comentários instrutivos são eles próprios defeituosos.

Responder1

Definitivamente é culpa da sua modificação. Com

shell_escape_commands = pagelayoutapi

você está permitindoapenaso aplicativo pagelayoutapino shell-escape restrito. Se você tentar

kpsewhich --var-value shell_escape_commands

na linha de comando, você deve ver apenas

pagelayoutapi

(acabei de experimentar na minha máquina).

Você precisa copiar a lista inteira e anexar a ela ao modificar o texmf.cnfarquivo de nível superior:

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

Como texmf.cnffunciona a leitura?

Geralmente existem dois texmf.cnfarquivos na árvore TeX. Um está no nível superior, o outro está no nível texmf-dist. A saída de

kpsewhich -a texmf.cnf

na minha máquina é

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

Pode haver mais desses arquivos, mas o essencial é saber que eles são lidos na ordem mostrada por kpsewhich -a.

Os valores das variáveis ​​definidas em um arquivo sãonãosubstituído por arquivos posteriores. Existe uma recomendação no arquivo “principal” (mas último lido), 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]

O “NÃO É UMA CÓPIA DE TUDO” refere-se a não adicionar todas as variáveis, mas apenas aquelas cujo valor você precisa alterar. Se você somar tudo, a inicialização seria mais lenta, pois muitos valores precisariam ser lidos e descartados.

Se você disser no texmf.cnfarquivo de nível superior

shell_escape_commands =

nenhum programa externo é permitido no shell restrito. As variáveis ​​não são definidas de forma incremental: as linhas posteriores que começam com esse valor são ignoradas.

informação relacionada