위키득계정 ↗
기술

Auditwheel

Auditwheel기술
주요 대상
바이너리 확장 포함 wheel
주요 기능
의존성 검사와 패키지 복구
대표 명령
show와 repair
관련 기준
Manylinux 등의 플랫폼 정책
Auditwheel은 Linux 등의 Python wheel에 포함된 바이너리와 외부 공유 라이브러리 의존성을 검사하는 도구다. 필요한 라이브러리를 wheel에 넣고 실행 시 참조 경로를 조정하는 복구 기능도 제공한다.

빌드 기계 밖의 의존성

확장 모듈이 빌드 기계의 공유 라이브러리를 참조하면 다른 환경에 설치했을 때 필요한 파일이 없을 수 있다. Auditwheel은 wheel이 의존하는 외부 라이브러리를 표시하고 버전이 지정된 심벌의 사용을 검사한다. 이를 통해 플랫폼 정책의 ABI 범위를 벗어나는지 확인한다.

라이브러리 포함과 경로 조정

복구 기능은 외부 공유 라이브러리를 wheel 안에 복사하고 해당 파일을 실행 시 찾도록 RPATH를 바꾼다. 빌드 시스템을 바꾸지 않고 배포 파일의 의존성 구성을 조정하는 접근이다. 검사로 문제를 확인하는 단계와 실제 wheel을 다시 구성하는 단계는 구분된다.

복구로 해결되지 않는 경우

실행 중 동적으로 불러오는 라이브러리는 정적 의존성 정보에 나타나지 않아 놓칠 수 있다. 또한 너무 새로운 libc나 libstdc++에 연결해 만든 바이너리를 복구만으로 오래된 환경과 호환되게 만들 수는 없다. 빌드 환경의 선택과 결과 파일의 실행 검증도 함께 필요하다.

관련 문서

Delocate / Cibuildwheel / Maturin / Python Build / Twine