기술 노트

Solaris 10 이하에서 .tar.gz 파일을 여는 방법

anothel 2022. 3. 16. 23:50

1. 문제 상황: 낮은 버전 Solaris에서 압축 해제 오류

Solaris 8, 9, 10 버전에서는 .tar.gz 파일을 풀려고 할 때 오류가 발생할 수 있다. 예를 들어, 다음과 같이 tar 명령어를 사용하려 할 때 디렉토리 체크섬 오류가 발생할 수 있다

$ tar -xvf pressedFile.tar.gz tar: directory checksum error (디렉토리 체크섬 오류)

2. 문제 원인: z 옵션 미지원

Solaris 2.5부터 10까지의 버전에서는 tar 명령어의 z 옵션을 지원하지 않기 때문에 직접 .tar.gz 파일을 압축 해제할 수 없다. z 옵션은 gzip 압축을 다룰 수 있게 해주는 옵션이지만, 오래된 버전의 Solaris tar에는 이 옵션이 없다.


3. 해결 방법: 낮은 버전 Solaris에서 압축 푸는 방법

낮은 버전의 Solaris에서 .tar.gz 파일을 압축 해제하려면 gunzip 명령어를 사용해 먼저 압축을 해제하고, tar로 연결하는 방식이 필요하다.

$ gunzip -c pressedFile.tar.gz | tar xvf -
위의 명령어를 그림으로 그리면 대충 이렇다

이 방법은 gunzip이 압축 해제한 결과를 파이프로 tar에 전달하여 .tar 파일을 푸는 방식이다.

4. gzip과 tar 조합의 특징

gzip은 주로 tar와 함께 사용되며, .tar.gz 파일은 zip과 유사한 알고리즘을 사용하지만 용량이 더 적게 압축되는 경향이 있다. tar로 묶은 파일들끼리 중복된 부분을 최적화하여 압축하기 때문이다. 대부분의 리눅스 배포판에서는 최신 tar 유틸리티가 z 옵션을 지원하지만, Solaris의 구버전에서는 이 방법이 필요하다.


Reference

https://datastory.tistory.com/8
https://en.wikipedia.org/wiki/Gzip
https://en.wikipedia.org/wiki/Tar_(computing)
https://linux.die.net/man/1/tar
https://stackoverflow.com/questions/7120232/untar-a-file-on-solaris-reports-tar-directory-checksum-error
https://www.ibm.com/docs/en/aix/7.1?topic=t-tar-command

728x90