Study & Project ✏️/Bug & Report 🐞

[Solved]dpkg-deb: error: archive 'test.deb' uses unknown compression for member 'control.tar.zst', giving up 에러 분석 및 해결 방법

JM 2023. 5. 16. 21:59
반응형

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를 설치해 보면 된다.

 

아마 설치할 때 필요한 라이브러리가 없을 확률이 높은데 해당 라이브러리를 잘 설치하고 진행하면 된다.