Linux Alpine에서 "tar:잘못된 매직" 오류를 수정하는 방법

Linux Alpine에서 "tar:잘못된 매직" 오류를 수정하는 방법

Alpine Linux에 sqlite를 설치하고 있습니다. 다운로드했는데 열 수 없습니다 sqlite-autoconf-3130000.tar.gz. tar나는 이것을 시도했다답변하지만 작동하지 않습니다. tar다음과 같은 메시지를 보냈습니다.

tar: invalid magic
tar: short read

나는 이러한 명령을 작성했습니다.

wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz
tar -zxvf sqlite-autoconf-3090100.tar.gz

답변1

tar 패키지를 설치해 보십시오(apk add tar). Busybox tar(기본값)는 모든 기능을 지원하지 않습니다.

답변2

이것이 반드시 Alpine 버전이 tar호환되지 않는다는 것을 의미하지는 않습니다. Francesco가 지적했듯이 실제로 파일 체크섬을 확인해야 합니다.

curl https://github.com/someproject/releases/project-1.1.0.gz | tar -xvzfDockerfile에서 작업을 수행하는 동안 이 문제가 발생했습니다.

내가 잊어버린 것은 curl허용된 경우에만 리디렉션이 따르기 -L때문에 실제 파일에 도달하지 못하고 실제로 html을 다운로드하여 리디렉션이 있음을 알리는 것입니다. 추가를 사용하면 -L내 컨테이너를 새 컨테이너로 늘리지 않고도 파일을 저장할 수 있습니다 tar(추가로 인해 발생하는 "부풀림" 이상 curl).

답변3

docker에서 alpine을 사용하는 경우 레이어를 빌드할 때 압축이 풀릴 컨테이너 파일( ) COPY대신 alpine을 사용하고 있다고 주장하세요.ADDDockerfileADD

알파인 기본 타르아니요힌트를 주세요

tar (child): sqlite-autoconf-3090100.tar.gz: Cannot read: Is a directory
tar (child): At beginning of tape, quitting now
tar (child): Error is not recoverable: exiting now

답변4

tar:invalid 마법은 파일이 손상되었음을 의미합니다.

md5sum이 일치하는지 확인하세요... 이것이 제가 얻은 것입니다:

 md5sum  sqlite-autoconf-3090100.tar.gz 
 74931054399a2d7acf35637efe8d6f45  sqlite-autoconf-3090100.tar.gz

관련 정보