Solaris 10에서 md5.sum을 사용하여 .tar.gz를 올바르게 추출하는 방법

Solaris 10에서 md5.sum을 사용하여 .tar.gz를 올바르게 추출하는 방법

gcc 미러 사이트 중 하나에서 다운로드한 gcc-4.9.0.tar.gz를 추출하려고 합니다. 압축하기 전에 md5 서명을 확인하기 위해 다음을 수행했습니다.

digest -a md5 -v gcc-4.9.0.tar.gz

이것은

md5 (gcc-4.9.0.tar.gz) = fe8786641134178ecfeee2dc7644a0d8

이는 소스에서 다운로드한 디렉터리의 md5.sum과 일치합니다.

그럼 내가 그랬어

gzip -dc gcc-4.9.0.tar.gz | tar xvf -

추출이 시작되었으나 곧 종료됨

 tar: directory checksum error

저도 이렇게 압축과 압축해제를 따로 해보았습니다

 gunzip gcc-4.9.0.tar.gz

그 다음에

tar -xvf gcc-4.9.0.tar

그러나 결국 체크섬 오류가 발생합니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

tar 아카이브에 결함이 있거나 표준 이하인 것 같습니다.

아카이브를 bz2 이미지로 가져오고 bzip2 -d gcc-4.9.0.tar.bz2 < tar tvf -.

압축을 푼 아카이브에는 md5 체크섬이 있습니다: 6b8f599053a52e7c2076485d1ad3e747.

지금 .gz 파일을 받고 있습니다. 무엇을 얻는지 살펴보겠습니다...

좋습니다. gcc-4.9.0.tar.gz fe8786641134178ecfeee2dc7644a0d8의 md5 체크섬은 보시는 것과 같습니다.

일반적으로 문제는 아카이브를 생성할 때 발생 gtar하지만 드물게 directory checksum error.

무슨 일이 일어나고 있는지 더 잘 이해하고 싶다면 를 tartest사용하는 것이 좋습니다 star.

다음에서 최신 정보를 얻으세요 schilytools:

http://sourceforge.net/projects/schilytools/files/

프로그램을 컴파일한 다음 실행합니다 tartest/OBJ/*/tartest < gcc-4.9.0.tar.

나는 이것을 했고 그 이유는 아카이브가 tar 헤더에서 GNU 공급업체 특정 "파일 유형" "L"을 사용하고 있었기 때문이라는 것을 알아냈습니다.

중요: GNU tar가 절반만 준수했거나 적어도 절반의 오류가 없었다면 문제의 파일 이름이 POSIX.1-1988 100+255 이름 체계를 완전히 준수하기 때문에 이 문제는 발생하지 않습니다. 사람들이 GNU tar 사용을 피해야 하는 이유에 대한 또 다른 팁이 있습니다.

를 사용하는 것이 좋습니다 star.

의 모든 기능은 star속성 설명 구조에 의해 완전히 제어됩니다. 아카이브 형식을 지정하면 star다른 아카이브 형식과 관련된 아카이브 콘텐츠가 생성되지 않습니다.

예를 들어 전화하는 경우:

star -c -f out.tar -Hustar somedir

star100% POSIX.1-1988 아카이브 형식이 사용되며, 이 아카이브 형식에 적합하지 않은 파일이 있는 경우 star비표준 방법으로 파일을 아카이브하는 대신 경고가 표시됩니다.

참고: Sun이 이 공급업체 고유 기능에 대한 지원을 추가한 변경 세트는 다음과 같습니다.

changeset:   11995:caff1bd711f5 
user:        Rich Burridge <[email protected]> 
date:        Thu Mar 25 13:21:39 2010 -0700 

description: 
        6202362 Solaris tar can't unpack files created with GNU tar 

modified: 
   usr/src/cmd/tar/tar.c 

답변2

일반적으로 SUNWgtar 패키지와 함께 사전 설치되는 gtar를 사용해야 합니다.

gzip -dc gcc-4.9.0.tar.gz | /usr/sfw/bin/gtar -xf -
echo $?
0

기본 Solaris 패치가 적용되지 않은 tar는 GNU tar를 사용하여 생성된 파일에 문제가 있을 수 있습니다. @schily의 답변을 참조하세요.

관련 정보