환경 변수의 값을 프로그램에 전달하시겠습니까? [복사]

환경 변수의 값을 프로그램에 전달하시겠습니까? [복사]

Perl 스크립트를 실행할 때pdfannotextractor.plBash에서는 스크립트에 필요한 변수 값을 설정 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

관련 정보