TeX Live 설치 및 업그레이드에 문제가 있습니다

TeX Live 설치 및 업그레이드에 문제가 있습니다

다음과 같이 최신 TeX Live를 수동으로 설치한 경우( root사용자로 설치):

wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xvzf install-tl-unx.tar.gz
cd install-tl-*
perl ./install-tl

업데이트를 시도할 때 오류가 발생할 수 있습니다.

tlmgr update --all(비사용자로 ) 실행 중 root에 대한 오류가 있습니다 cannot write to directory.

root(또는 )을 사용하면 sudo tlmgr update --all오류는 다음과 같은 형식입니다.

tlmgr: Local TeX Live (2020) is older than remote repository (2022). Cross release updates are only supported with
update-tlmgr-latest(.sh/.exe) --update See https://tug.org/texlive/upgrade.html for details.

또는 bash: tlmgr: command not found.

이러한 문제를 어떻게 해결합니까?

update-tlmgr-latest위에서부터 실행해야 합니까 ?

답변1

일반 사용자로서 시스템 전체에 설치된 TeX Live에 쓸 수 없어야 하므로 해당 오류가 발생하는 것이 좋고 정확합니다. 특정 시스템 사용자(예 texlive: ) 또는 슈퍼유저 를 사용해야 합니다 root. 를 사용 sudo하여 실행하는 것은 을 사용하는 것과 동일 root하며 작동합니다(그러나 초기 설치에 시스템 사용자를 사용한 경우에는 가 아닌 해당 사용자만 사용해야 합니다 root).

을 찾을 수 없으면 실행 파일 tlmgr경로를 의 경로에 추가해야 합니다 .tlmgrroot

실행합니다 ( 쉘로 sudo su - ; nano ~/.bashrc사용한다고 가정 ). bash다음과 유사한 줄을 추가한 후 저장하고 종료합니다.

export PATH=/usr/local/texlive/2022/bin/linux-x86_64/:${PATH}

을 얻는 경우 cross version error수정 사항은 동일합니다. 의 경로 앞에 올바른 경로를 추가하면 root해당 경로가 선택됩니다.

그런데 설치하지 않은 버전이 있는 이유는 무엇입니까?

일반적으로 이는 사용자가 설치한 항목의 종속성을 충족하기 위해 패키지 관리자가 설치한 버전입니다. 이는 TeX 모드가 있는 편집기만큼 간단할 수 있습니다(편집기는 Kile이 설명에 적합합니다).

이전 TeX Live를 제거할 수 있나요?

아마도 그렇습니다. 그러나 rm삭제하는 데 사용하지 마십시오 . 그러면 해결되는 것보다 더 많은 문제가 발생할 것입니다. 패키지 관리자를 사용하세요. 그게 바로 그 목적입니다. 그러나 원하는 일부 항목을 제거하려고 시도할 수 있으므로 제거될 항목 목록에 주의를 기울이십시오.

Debian Linux를 사용한다면 아주 좋은 것들이 있습니다.지침패키지 관리자( apt, apper, synaptic)에게 TeX Live가 있다는 것을 확신시켜 오래된 버전을 다시 설치하려고 시도하지 않도록 합니다. RedHat 기반 배포판에서는 RPM( yum, )이 동일하다고 확신할 수 있지만 dnf정확한 프로세스는 다르므로 해당 링크에서 다루지 않습니다. 누군가가유닉스&linux.SE도움을 드릴 수는 있지만 이 사이트의 범위를 벗어납니다.

릴리스 업데이트(예: 2022년에서 2023년까지):

위의 오류 중 하나는 running 을 지정합니다 update-tlmgr-latest(.sh/.exe) --update. 해당 명령을 복사하여 실행하면 작동하지 않습니다. Windows를 사용하는 경우 를 사용하면 update-tlmgr-latest.exe --update작동합니다. Linux를 사용하는 경우 update-tlmgr-latest.sh --update. 이 오류는 특별히 명확하지는 않지만 다양한 시스템의 파일 확장자와 실행 가능한 형식에 어느 정도 익숙하다고 가정합니다. 오류 메시지를 고칠 수 있는 사람이 이 글을 읽고 있을 경우를 대비해 더 나은 오류 메시지에 대한 제안은 없습니다.

개인적으로 나는 update-tlmgr-latest. 대신, 기존 버전을 그대로 두거나 새 버전이 내 문서에서 작동하는 것이 만족스러우면 제거하여 새 버전을 설치합니다.

시스템 사용자를 사용하여 설치:

root위에서는 TeX Live 시스템을 설치하는 것이 아니라 시스템 사용자를 사용한다는 언급이 있었습니다 . 이를 수행하는 방법은 다음과 같습니다.

root또는 를 사용하여 다음 명령(또는 상당히 유사한 명령)을 사용하여 sudo이름이 지정된 새 시스템 사용자를 만듭니다 .texlive

useradd -d /usr/local/texlive -m -r texlive
passwd -l texlive

-r이렇게 하면 홈 디렉터리가 /usr/local/texlive( )인 시스템 사용자( )가 생성되고 -d /usr/local/texlive -m비밀번호가 잠깁니다(따라서 계정에 로그인할 수 있는 비밀번호가 없습니다). 사용하여 사용자 sudo su - texlive로 변경한 texlive다음 질문에 나열된 대로 설치를 실행합니다.

그 주된 이유는 책임의 분리이다. 사용자 texlive는 TeX Live 설치 관리에만 사용됩니다. 다른 시스템 관리에는 사용할 수 없으며 어떤 파일이 TeX Live 설치의 일부인지 매우 명확합니다(해당 파일은 가 texlive아닌 의 소유임 root).

고급 주제 - 함께 작동하는 여러 버전의 TeX Live:

(자동 버전은 Linux에서 작동하고, Mac에서는 작동할 수도 있고 작동하지 않을 수도 있으며, Windows에서는 작동하지 않습니다)

좋은 소식! 서로 간섭하지 않고 여러 개의 서로 다른 Tex Live 릴리스를 설치할 수 있습니다. 와 같은 별도의 디렉터리에 각각 설치합니다 /usr/local/texlive/<year>/.

버전을 선택하려면 PATH변수를 수동으로 변경하거나 컴퓨터가 자동으로 변경하도록 할 수 있습니다. 컴퓨터가 이를 수행하도록 하려면 environment-modules다음과 유사한 모듈 파일이 있는 패키지를 사용할 수 있습니다(설치한 TeX Live의 각 버전마다 하나씩 생성).

#%Module1.0#######################################################################
#
#
module-whatis   "Loads settings for the TeXLive 2023"
prepend-path    PATH            /usr/local/tex/texlive/2023/bin/x86_64-linux
prepend-path    MANPATH         /usr/local/tex/texlive/2023/texmf/doc/man
prepend-path    INFOPATH        /usr/local/tex/texlive/2023/texmf/doc/info

각 버전마다 이러한 모듈 파일이 하나 있는 경우 를 사용하여 쉽게 버전을 선택하고 다음을 사용 module load texlive/2023하여 기본값으로 되돌릴 수 있습니다.module remove texlive/2023 . 다시 말하지만, 이러한 방식으로 모듈 파일을 사용하는 데 대한 구체적인 도움말은 다음을 참조하세요.유닉스&linux.SE도움을 요청하기에 좋은 곳입니다(물론 매뉴얼 페이지를 살펴본 후).

관련 정보