Linux Alpine에서 "tar : invalid magic"오류를 해결하는 방법


22

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

실행하려는 명령 및 인수로 답변을 업데이트 할 수 있습니까?
DarkHeart

1
다운로드가 성공적으로 완료 되었습니까? 그렇다면 ls -l sqlite-autoconf-3090100.tar.gz파일 크기가 2284128 바이트라는 것을 알려 주어야합니다.
Stephen Kitt

또한 현재 gzip 형식의 파일입니까? 일부 브라우저는 즉시 압축 해제하여 sqlite-autoconf-3090100.tar.gz라는 이름을 가질 수 있지만 실제로는 sqlite-autoconf-3090100.tar 일 수 있습니다. wget이 똑같이 똑똑한 것을 알지 못하지만 ztar 에서 플래그를 떠나서 쉽게 테스트 할 수 있습니다 .
Hennes

답변:


21

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


3
Dockerfile에서 tar 명령을 실행하고 tar를 설치하면 동일한 문제가 발생했습니다. 컨테이너의 셸에서 명령을 실행하면 작동하기 때문에 혼란 스럽습니다. 그러나 tar를 먼저 설치하지 않고 Dockerfile에서 RUN 명령 인 경우는 아닙니다. : |
3cheesewheel

7

tar프란체스코가 파일 체크섬을 실제로 확인해야한다고 지적 했으므로 알파인 버전 이 호환되지 않는 것은 아닙니다 .

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

내가 잊어 버린 것은 curl리디렉션을 허용하는 경우에만 리디렉션을 수행 한다는 것이 밝혀 졌으므로 -L실제 파일에 도달하지 않았으므로 문자 그대로 리디렉션이 있음을 알리는 html을 다운로드하고있었습니다. 추가하면 -L컨테이너에 새 파일을 추가 하지 않고 파일을 저장할 수 있습니다 tar(추가 한 "bloat"이외 curl).


0

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

일치하는 경우 md5sum을 확인하십시오 ... 이것은 내가 얻은 것입니다.

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

0

나는 같은 문제가있어서 해결했지만 같은 문제에 직면했는지 확실하지 않습니다.

오류일으킨 코드 :

wget www.example.com/file.tar.gz
tar -zxvf file.tar.gz

그것을 해결 한 코드 :

wget https://www.example.com/file.tar.gz
tar -zxvf file.tar.gz

"https : //"를 잊어 버렸습니다. 여기서 파일은 다운로드되었지만 tar는 같은 오류를 나타냅니다. 파일을 찾을 수 없으면 사용하십시오

도커 빌드 -캐시 없음 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.