루트에 대한 TeX 라이브 경로 설정


20

TeX Live 2011 바닐라를 설치 했으며 루트에 대한 TeX Live 경로를 설정하는 데 문제가 있습니다 (Ubuntu 11.10).

문제는 내가 달릴 때 sudo tlmgr얻는 것입니다.

sudo: tlmgr: command not found

루트가 아닌 경로를 수정하려면 다음을 추가하면 충분합니다.

PATH=/usr/local/texlive/2011/bin/x86_64-linux:$PATH

/etc/profile.

나는이 같은 줄을 /root/.bashrc추가하려고 시도 /etc/profile.d/zzz-texlive.sh했으며 /tex/26624/tlmgr-inaccessible/26626#26626의 Herbert 제안과 같이 추가하려고했지만 도움이되지 않습니다.


실제로이 질문은 TeX와 관련이 없지만 SO에 대한 답변입니다 .

답변:


22

빠른 수정 : $PATH환경에 이미 수정 세트를 통해 올바른 세트 /etc/profile가 있으므로 다음을 사용할 수 있습니다.

sudo env PATH="$PATH" tlmgr

기본적으로 sudo$PATH(실제로 전체 환경 의) 값을 "알려진 좋은" 값으로 재설정 하므로 로컬 환경에 대한 변경 사항은 무시합니다. 위 의 env 명령은 PATH변수가 tlmgr실행 되는 환경 에서 변수를 설정 하므로 $PATH명령 행에서 지정한 값으로 실행됩니다.

각 TeXlive 명령에 대해이 모든 것을 입력하지 않도록 쉘에서 별명 을 정의 할 수 .bashrc있습니다. 가정 에있는 파일에 다음 행을 추가하십시오 .

alias psudo='sudo env PATH="$PATH"'

그런 다음 명령 프롬프트에서 간단히 발행 할 수 있습니다.

psudo tlmgr

또한 sudo 는 명령을 실행하기 위해 로그인 셸을 실행하지 않으므로 "profile.d"트릭이 루트에서 작동하지 않습니다. 쉘에서 sudo 가 명령을 실행하도록 강제 할 수 있는데, 이는 동일한 효과를 얻는 다른 방법입니다.

sudo sh -l -c tlmgr

다시 한 번 쉘 명령 별명 을 정의하여 이를 단축 시킬 수 있습니다 .

alias shsudo='sudo sh -l -c'

다음과 같이 사용할 수 있습니다.

shsudo tlmgr

$PATH내 환경에서 설정하는 방법에 대한 자세한 설명을 포함 하시겠습니까? 또한, env활성화하고 싶은 TeX Live 경로의 모든 명령에 대해 sudo해야합니까? / usr / local / texlive / 2011 / bin / x86_64-linux에는 루트로 실행하고 싶은 바이너리가 많이 있습니다.
NN

@ NN 더 자세한 내용으로 답변을 업데이트했습니다. 더 명확 해지기를 바랍니다.
Riccardo Murri

건배! 당신의 설명을 감사하십시오.
NN

7

심볼릭 링크를 추가하면 스크립트를 만들 필요가 없습니다. 이 두 가지 방법으로 할 수 있습니다.

GUI 사용 :

  1. sudo env PATH="$PATH" tlmgr --gui.
  2. '조치-> 시스템 디렉토리에서 심볼릭 링크 처리'를 클릭하십시오.
  3. '기호 링크 업데이트'를 클릭하십시오.

커맨드 라인 사용하기 (GUI를 사용했기 때문에 추정되지 않았습니다) :

  1. sudo env PATH="$PATH" tlmgr path add. ( tlmgr documentation 에서 자세한 정보를 찾으십시오 )

3

나를 위해 일한 것 : 나는 tlmgrGUI 모드에서 시작 했다.

sudo env PATH="$PATH" tlmgr --gui

그런 다음 세 번째 메뉴에서 마지막 항목 중 하나를 선택했습니다 (독일어 메뉴에서 메뉴 "Aktionen"(작업?) 및 "Verwaltung der symbolischen Links"(심볼릭 링크 관리?)). "Symbolische Links erneuern"버튼을 클릭했습니다 (심볼릭 링크를 갱신 하시겠습니까?).

sudo tlmgr --OPTIONS

문제없이 작동합니다. 이 작업을 수행하는 명령 줄 방법도 있습니다.)


1

명령을 사용하여 수정 된 파일 $PATH을 사용자에게 전달하고 다음 줄을 추가하십시오.sudo/etc/sudoersvisudo

Defaults        exempt_group=<group that I belong to>

이제 실행할 수 있습니다 (예 :)

sudo tlmgr update all

또는

sudo texhash

모든 것이 완벽하게 작동합니다.

이 접근법에 대한 의견을 보내 주셔서 감사합니다.


1

tlmgr경로에 디렉토리를 추가 할 필요는 없습니다 . 간단한 빠른 솔루션은 다음을 사용합니다 which.

sudo $(which tlmgr) update --list

0

"루트"권한을 사용하여 TeX Live를 설치하고 관리하는 것은 좋지 않습니다. 대신 /usr/local/texlivesudo를 사용하여 디렉토리를 만든 다음 TeX Live를 관리 할 사용자의 소유권을 변경하십시오. 그런 다음 "루트"권한을 사용하지 않고 TeX Live를 설치 및 업데이트 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.