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を使用すると、次の形式でコマンドの変数を設定できます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