Linux 소스 코드 패키징 표준은 언제 .tar.gz가 되었습니까?


29

주로 Linux 시스템 용으로 개발 된 오픈 소스 프로젝트를 탐색하고 최신 패키지를 다운로드 할 때 소스 코드는 항상 .tar.gz 또는 .tar.bz2 파일에 저장됩니다.

.zip 또는 .rar 또는 다른 압축 알고리즘 대신 .tar.gz 또는 .tar.bz2를 사용하는 이유가 있습니까?


3
어디를 탐색하고 있습니까? 요즘 대부분의 프로젝트는 소스 코드를 VCS 리포지토리 URL 형식으로 배포하며, 아카이브를 제공 할 때는 대개 .ZIP 형식입니다. TGZ는 수십 년 동안 구식이되어 왔으며 (메시지를 받기 위해 몇 명의 불쾌한 사람들의 완고한 거절에도 불구하고) 오랫동안 그것을 사용하는 프로젝트를 보지 못했습니다 ...
Mason Wheeler

4
Linux, zip 및 rar는 tar(즉, 테이프 아카이버) 이미 표준 상태 일 때는 존재하지 않았습니다 .
SK-logic

19
@Mason Wheeler : "폐기 됨"을 정의하십시오. 사람들이 유용하다고 생각하고 계속 사용하는 한 형식은 더 이상 사용되지 않습니다. 나는 tar + gz가 일을하고 다른 형식으로 전환하는 것은 많은 경우에 맛의 문제라고 생각합니다. Eclipse ( eclipse.org ) 와 같은 프로젝트는 여전히이를 사용합니다.
Giorgio

3
ftp.gnu.org예를 들어 @MasonWheeler를 탐색하십시오 . 이것이 인터넷 전체를 기반으로하는 것입니다. 그리고 ZIP이 기술적으로 열등하다는 데 모두가 동의 할 것입니다.
SK-logic

5
@MasonWheeler 및 기타. tar에 이름에 테이프 아카이버가 있다고해서 더 이상 사용되지 않습니다. * nix / BSD 세계에서 tar를 사용하고 .zip을 사용하는 것은 비교적 드문 일입니다. 사실, zip 파일을 볼 때 거의 항상 Windows 전용 보관 파일인지 묻습니다.
Rob

답변:


31

제목에서 질문에 대답하기 위해 : tar.gz / tar.bz2는 아주 오래 전에 20여 년 전과 마찬가지로 아마 리눅스 소스 코드를 배포하는 표준이되었습니다. 리눅스가 등장하기 훨씬 전에.

실제로 tar는 (t) ape (ar) chive의 약자입니다. 릴을 열심히 생각 하면 몇 살인지 알 수 있습니다. 바 덤 범프.

사람들이 CD 버너를 갖기 전에 소프트웨어 배포판을 1.44Mb 플로피 디스크에 넣었습니다. 압축 된 tar 파일은 split명령에 의해 플로피 크기의 조각으로 잘게 썰어졌으며 ,이 조각들을 tarballs 라고했습니다 . 당신은 그들과 함께 다시 cat아카이브를 추출합니다.

Zip 또는 Rar가 아닌 이유에 대한 다른 질문에 대답하는 것은 쉬운 일입니다. tar 아카이버는 Unix에서, 다른 두 개는 MS-DOS / Windows에서 가져옵니다. Tar은 유닉스 파일 메타 데이터 (권한, 시간 등)를 처리하는 반면, zip 및 rar는 최근까지 (MS-DOS 파일 데이터를 저장)까지 없었습니다. 실제로 zip은 NTFS 메타 데이터 (대체 스트림, 보안 설명자 등)를 제대로 저장하기 전에 시간이 걸렸습니다.

PKZip의 많은 압축 알고리즘은 원래 제조업체의 소유이며 Dos / Windows 버전에 추가 된 마지막 알고리즘은 Deflate (RFC 1951)로, 이는 최고의 일반 압축을 생성 한 독점 알고리즘 인 Implode보다 약간 더 우수했습니다. . Gzip은 Deflate 알고리즘을 사용합니다.

RAR 압축 알고리즘은 독점적이지만 압축 해제 기 의 무료 오픈 소스 구현이 있습니다. RARlab 의 RAR 및 WinRAR의 공식 릴리스는 무료 가 아닙니다 .

Gzip은 수축 알고리즘을 사용하므로 PKZip보다 나쁘지 않습니다. Bzip2는 압축률이 약간 향상되었습니다.

TL; DR 버전 :

tar.gz와 tar.bz2는 유닉스 출신이므로 유닉스 사람들이 사용합니다. Zip과 Rar는 DOS / Windows 세계 출신이므로 DOS / Windows 사용자가 사용합니다. tar* 수십 년 동안 * nix에 자료 아카이브를 번들로 제공하는 표준이었습니다.


1
몇 가지 설명 : 오픈 소스 RAR 구현은 RARlab의 자체 오픈 소스 압축 풀기를 기반으로 합니다. 또한 이전에 많이 사용되는 ACE, ARJ 및 ARC 이후 Windows에서 처음으로 나타나는 다른 대부분의 압축기보다 훨씬 새롭습니다. 상대적으로 최근까지 유닉스에는 실제로 등장한 적이 없습니다.
greyfade

작은 수정은 다음 RAR 알고리즘은 하지 열려 : fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
스벤 Slootweg

16

나는 언제인지 모르겠지만 그것이 사용되는 이유는 다음과 같은 조합이라고 생각합니다. 타르는 전통적입니다. 명령 줄에서 쉽게 관리; ZIP 또는 RAR이 할 수없는 파일 시스템 정보를 보존하는 tar; 그리고 2 패스 프로세스는 압축이 더 효율적이라는 것을 의미합니다 (하나의 큰 파일은 많은 작은 파일보다 더 나은 압축).

bzip2 (.bz2)는 gzip 자체가 이전 압축 (.Z)을 대체 한 것과 같은 방식으로 더 나은 압축을 제공하므로 gzip (.gz)을 대체하는 것으로 보입니다.


3
xz (LZMA)는 압축 비율이 중요한 bzip2를 대체하는 것으로 보입니다 ( .xz 파일은 gzip보다 30 % 작 습니다). Gzip이 아마도 가장 빠를 것입니다.
sastanin

8

본질적으로 보관 및 압축은 서로 다른 두 가지 작업입니다. tar.gz는 의도를 매우 명확하게 보여줍니다. 압축 된 아카이브이지만 .zip 또는 .rar은 압축 된 내용임을 보여줍니다.


5

tar유닉스에서 전통적이며 파일을 결합하지만 반드시 압축하지는 않습니다. .g 또는 .bz 또는 .b2로 압축하는 것은 쉽습니다.

Zip그리고 rar윈도우 세계에서 타당성 및 일반적이다


아 네, 제 질문은 구체적이지 않았습니다. 나는 리눅스 / 유닉스 코드에 대해 주로 이야기했다.
Joe Z.

4
+1-zip은 얼마 전에 독점 소유가 중단되었습니다.
Billy ONeal

예, zip의 하위 집합은 이제 표준입니다 : iso.org/iso/home/store/catalogue_tc/…
rogerdpack

4

그것은 전통적이고 어디에나 존재하며 작동합니다. 게다가 나는 그것이 다소 자명하다고 생각했습니다.

최신 정보

사과합니다. 대부분의 사람들이 이기종 환경의 관리자로서 내가 알고 있거나 경험 한 바를 모른다는 사실을 잊었습니다.

시간이 지남에 따라 관습이나 관행에서와 같은 전통 . tar 는 오래된 테이프 백업 기술을 참조하는 Tape ARchive에서 파생 되었기 때문에 역사에 기초를두고 있습니다. 그것은 tp를 대체 한 7 판 Unix 에서 1979 년으로 거슬러 올라간 다양한 Unix 운영 체제에서 오랜 역사를 가지고 있습니다. Linux 시스템은 일반적으로 GNU tar가 포함 된 Linux 커널 및 GNU 소프트웨어의 통합입니다. 이 타르 역사는 대부분의 숙련 된 기술 인력이 문서를 참조하지 않고도 사용 방법을 알고 있다는 것을 의미합니다. 초보 사용자에게는 소프트웨어가 오랫동안 사용되어 왔기 때문에 많은 문서가 있습니다.

어디서나 나타나거나 발견되는 유비쿼터스 . 다소 수용되는 오용은 외모가 보편적이지 않지만 인구의 대부분이 유비쿼터스로 받아 들일 수있는 곳입니다. 7th Edition Unix는 Sun OS / Solaris, AIX, HPUX, AIX, BSD 등을 포함하여 가장 큰 Unix 버전의 조상입니다 . 또한 유닉스에서 tar의 다른 구현에 걸쳐 높은 수준의 상호 호환성이 있습니다 . MacOS (OS 10부터)는 BSD를 기반으로했기 때문에 tar도 있습니다. Linux는 GNU Tar이 포함 된 GNU 소프트웨어를 사용하므로 tar는 모든 Linux 버전에서 사용할 수 있습니다. 그리고 내장으로 제공되지는 않지만 cygwin을 통해 GNU Tar 및 기본적으로 Windows에서 사용 가능한 tar의 많은 구현이 있습니다.. 특히 GNU Tar은 대부분의 Unices 및 Windows에서 사용 가능하므로 OS 간 파일 마이그레이션에 적합합니다.

작품 은 큰 수정없이 오랜 시간 동안 작동 된 것 같이. 추가 소프트웨어로 제공되는 Windows는 제외하고 모든 주요 플랫폼에서 즉시 사용할 수 있습니다. 이 형식은 모든 주요 플랫폼에서도 지원되므로 플랫폼 간 교환이 용이합니다. 타 파이프는 쉽게 휴대용 아카이브를 만드는 방법으로 사용될뿐만 아니라 특히 이기종 환경에서 디렉토리 트리를 복사하기위한 표준 유닉스 관용구입니다. 요컨대, 그것은 잘하고 있기 때문에 주변에 있었고 여전히 많이 사용됩니다.


5
모든 적절한 존중과 함께,이 대답은 짧고 단순하며, 그것은 ... 어쨌든 저에게는 효과가 없습니다
gnat

5
... 1) "전통적인" 소프트웨어 개발에서 무게가 0보다 작습니다. 그렇지 않으면 우리 모두 펀치 카드를 사용하여 IBM-360에서 COBOL을 코딩 할 것입니다. "전통적이다"라는 말은 아무 것도 설명하지 않습니다 ...
gnat

5
... 2) "유비쿼터스" ... 정말? 유닉스에서 Windows로 전환했을 때 주목 한 것은 tar를 사용하는 사람이 없으며 모든 것이 없으면 잘 작동한다는 것입니다. 몇 년 동안 행복한 코딩을 한 후에 타르가 필요해 졌을 때 Windows 버전을 찾는 데 상당한 시간이 걸렸습니다. 유비쿼터스입니까? 나에게 휴식을 줘 ...
gnat

4
... 3) "작동합니다" - 타르가 어떤 종류의 작업을 수행 하는지 설명하지 않고 잘 손을 흔드는 것입니다. 오래 전 일이지만 타르에 대해 배웠을 때 여전히 충격을 기억합니다. 압축하지 않는 유틸리티는 나에게 쓸모가 없다고 느꼈습니다. 물론 내가 잘못했다, 그러나 다른 사람이 시도 할 돌아 경우처럼 한 단어로 된 문으로 저를 "교육" 작동 내가 "아니, 수음을"생각하는 것 ...
모기

4
요약하면,이 제로 노력, 순수한 의견 답변은 설명과 맥락이 부족합니다. 작성된 진술은 어떤 것도 설명하거나 뒷받침하지 않습니다. 지나치게 일반화 된 표현은 단순히 대답하는 대신 질문 에 언급 된 내용을 되풀이하는 것 같습니다 .
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.