当我运行 perl 脚本时pdfannotextractor.pl
在bash中,我想设置脚本所需的变量的值TEXMFVAR
,并将其传递给脚本。
我用谷歌搜索了一下,并认为我找到了解决方案:
$ TEXMFVAR=/usr/local/texlive/2014/texmf-var sudo /usr/local/texlive/2014/texmf-dist/scripts/pax/pdfannotextractor.pl --install
TEXMFVAR
但脚本中似乎仍然是空的,因为它$TEXMFVAR
在我当前的目录下创建了一个目录。我很困惑。
$ ls \$TEXMFVAR/*
$TEXMFVAR/ls-R
$TEXMFVAR/scripts:
pax
我需要export
变量吗?
这是环境变量使用的问题吗?
注意:我原来的问题是关于 texlive 的,在这里https://tex.stackexchange.com/questions/243889/error-installing-pdfbox-library-for-pax-package
答案1
sudo
清理环境,因此潜在有害的变量不会传递到以超级用户身份运行的进程。您可以使用sudo-E
或--preserve-env
标志来更改此行为。
答案2
使用 sudo,您可以在 form 中为命令设置变量var=value
,尝试:
sudo TEXMFVAR=/usr/local/texlive/2014/texmf-var \
/usr/local/texlive/2014/texmf-dist/scripts/pax/pdfannotextractor.pl --install
-E
出于安全原因,选项不适用于某些变量,例如LD_LIBRARY_LOAD
或。LD_PRELOAD
答案3
如果由于某种原因 sudo 拒绝“直接”根据 cuonglm 指定的环境变量(可能是由于策略原因),则可以使用env
... 假设您有 sudo 策略来使用它。
sudo env TEXMFVAR=/usr/local/texlive/2014/texmf-var /usr/local/texlive/2014/texmf-dist/scripts/pax/pdfannotextractor.pl --install