%20-%20texlive%202022.png)
macOS Monterey 버전 12.6에서 다소 복잡한(논문 템플릿) 라텍스 파일의 "일반적인" 컴파일은 TeX Live 2021 및 TeX Live 2022 명령을 사용하여 완벽하게 작동합니다 latexmk -time -shell-escape -synctex=0 -emulate-aux-dir -pdf -silent template
.
이 템플릿의 다양한 변형에 대한 테스트 속도를 높이기 위해 저는…
- 소스의 복사본을 여러 개 만듭니다(각 복사본은 각 폴더에 있음).
- 필요에 따라 각 복사본을 사용자 정의합니다. 그리고
latexmk
위의 명령을 사용하여 각 복사본 에 대해 하나씩 여러 인스턴스를 실행합니다 .
TeX Live 2021을 사용하면 스크립트가 원활하게 실행됩니다.
TeX Live 2022를 사용하면 다음 오류가 발생합니다.
/var/folders/f1/4fh25zqx0_bd81r_n925d_4r0000gp/T/par-6a6d6c/cache-ff0e0f52fce2a47a2eaf3d127e3cbc846f2f7d08/thin/biber: cannot execute thin binary /var/folders/f1/4fh25zqx0_bd81r_n925d_4r0000gp/T/par-6a6d6c/cache-ff0e0f52fce2a47a2eaf3d127e3cbc846f2f7d08/thin/biber (errno=8)
두 개의 Biber 인스턴스(다소)를 동시에 실행하려고 시도했지만 문제가 없었습니다. 문제는 latexmk + biber
.
누군가 이 biber의 오류 메시지에 대해 통찰력을 제공할 수 있습니까?
답변1
의 여러 인스턴스에 대해 서로 다른 캐시를 강제 적용하여 이를 수행할 수 있습니다 biber
. PAR_TMPDIR
설정된 경우 캐시 위치가 결정되므로 인스턴스에 대해 환경 변수를 다르게 설정하십시오 .
mkdir /tmp/bibercache{1,2}
PAR_TEMPDIR=/tmp/bibercache1 biber ...
PAR_TEMPDIR=/tmp/bibercache2 biber ...
답변2
이것은 실제로 해결책이 아니라 문제에 대한 해결 방법입니다!
컨텍스트: macOS에서 latxmk
동시에 두 개의 인스턴스를 실행하지만 다른 폴더에 있습니다.
징후:latexmk
"라는 메시지와 함께 실패합니다.씬 바이너리를 실행할 수 없습니다.”
원인: 은(는) latexmk
두 개의 인스턴스를 biber
동시에 실행 중입니다.
진단: biber
cahce 디렉터리를 사용하여 데이터를 읽고 저장하며 이러한 작업은 의 동시 실행에 대해 적절하게 보호되지 않습니다 biber
.
해결 방법: 에 대한 자체 프런트엔드를 호출 biber
하여 실행 인스턴스가 하나만 있는지 확인하세요 . 그러면 실제 실행 전에 파일 시스템 잠금을 획득 하고 나중에 이 잠금을 해제합니다.latexmk
biber
biber
구현:
- 다음 bash 스크립트를 원하는 디렉터리에 복사하고 이름을 지정합니다
biber
(예:$HOME/bin/biber
).BIBER
스크립트에서 변수를 맞춤설정하는 것을 잊지 마세요 .
#!/bin/bash
# Please set BIBER to the real biber command.
# Check its location with the command "type biber".
BIBER=/Library/TeX/texbin/biber
LOCKFILE=/tmp/biber.lock
_lock() {
# Wait until the Lock File does not exists, then create it
while ! { set -C; 2>/dev/null >$LOCKFILE; }; do :; done
}
_unlock() {
rm -f $LOCKFILE
}
_lock
$BIBER $@
_unlock
latexmk
다음 명령을 사용하여 원하는 만큼 의 인스턴스를 실행하세요 . 이 이름은$HOME/bin
bash 스크립트를 저장한 디렉터리 이름으로 바꿔야 합니다.
PATH=$HOME/bin:$PATH latexmk <your_flags> <your_latrex_file>