반응형
error: archive 'test.deb' uses unknown compression for member 'control.tar.zst', giving up
deb 파일을 만들거나 다운받아서
dpkg를 이용해서 설치할 때 이런 오류가 뜬 적이 있을 것이다
해당 오류에 관해 분석해 보고 해결 방법을 알아보자
1. 에러 분석
dpkg-deb: error: archive 'test.deb' uses unknown compression for member 'control.tar.zst', giving up
오류는 control.tar.zst에 대해서 모르는 압축 멤버라고 하는 것이다.
그렇다면 왜 control.tar.zst를 모른다고 하는 것일까???
바로 Debian 12 버전 이하는 zst를 이하는 deb파일을 패키징 할 때 zst를 사용하지 않기 때문이다.
※ 참고로 나의 debian 버전을 확인하고 싶으면 아래 명령어를 입력하면 된다.
lsb_release -a
2. 해결 방법
해당 문제를 해결하기 위해서는 deb파일을 extract 하고 tar.xz로 다시 re-compress를 해주면 된다.
extract -> re-compress 하는 과정은 다음과 같다.
# Extract files from the archive
ar x test.deb
# Uncompress zstd files an re-compress them using xz
zstd -d < control.tar.zst | xz > control.tar.xz
zstd -d < data.tar.zst | xz > data.tar.xz
# Re-create the Debian package in /tmp/
ar -m -c -a sdsd /tmp/test.deb debian-binary control.tar.xz data.tar.xz
# Clean up
rm debian-binary control.tar.xz data.tar.xz control.tar.zst data.tar.zst
위 과정을 진행하고 /tmp에 남은 test.deb를 설치해 보면 된다.
아마 설치할 때 필요한 라이브러리가 없을 확률이 높은데 해당 라이브러리를 잘 설치하고 진행하면 된다.