Quando è diventato lo standard per il packaging del codice sorgente Linux .tar.gz?


29

Quando si sfogliano progetti open source sviluppati principalmente per sistemi Linux e si scaricano i pacchetti più recenti, il codice sorgente viene sempre archiviato in un file .tar.gz o .tar.bz2.

C'è qualche motivo per usare .tar.gz o .tar.bz2 piuttosto che qualcosa come .zip o .rar o qualche altro algoritmo di compressione (o addirittura lasciarlo non compresso se il progetto è abbastanza piccolo)?


3
Dove stai navigando? La maggior parte dei progetti oggigiorno distribuisce il proprio codice sorgente sotto forma di un URL di repository VCS e quando danno archivi è di solito in formato .ZIP. TGZ è obsoleto da decenni (nonostante il rifiuto ostinato di alcune persone odiose di ricevere il messaggio) e non vedo alcun progetto che lo usi da molto tempo ...
Mason Wheeler,

4
Linux, zip e rar non esistevano nemmeno quando tar(ad esempio, Tape Archiver) era già di fatto uno standard.
SK-logic,

19
@Mason Wheeler: definisce "obsoleto". Un formato non è obsoleto finché le persone lo trovano utile e continuano a usarlo. Penso che tar + gz faccia il lavoro e il passaggio a un altro formato è in molti casi solo una questione di gusti. Progetti come Eclipse ( eclipse.org ) lo usano ancora.
Giorgio,

3
@MasonWheeler, sfoglia ftp.gnu.org, ad esempio. Questa è la materia su cui è costruita l'intera Internet. E, spero, tutti concorderanno sul fatto che ZIP è tecnologicamente inferiore comunque.
SK-logic,

5
@MasonWheeler e altri. Solo perché tar ha un registratore a nastro nel suo nome non lo rende obsoleto. TUTTI quelli che conosco usano tar nel mondo * nix / BSD e l'uso di .zip è relativamente raro. In effetti, quando vedo un file zip mi chiedo quasi sempre se si tratta di un archivio solo per Windows.
Rob

Risposte:


31

Per rispondere alla domanda nell'intestazione: tar.gz / tar.bz2 è diventato lo standard per la distribuzione del codice sorgente di Linux molto molto molto tempo fa, come in ben oltre due decenni, e probabilmente un altro paio. Significativamente prima ancora che Linux venisse alla luce.

In effetti, tar sta per (t) ape (ar) chives. Pensa intensamente alla bobina e avrai un'idea di quanti anni ha. ba-dum-urto.

Prima che le persone avessero un masterizzatore CD, le distribuzioni del software venivano distribuite su floppy disk da 1,44 Mb. Il file tar compresso è stato tagliato in pezzi di dimensioni floppy dal splitcomando e questi pezzi sono stati chiamati tarball . Li uniresti di nuovo insieme cated estrarresti l'archivio.

Per rispondere all'altra domanda sul perché non Zip o Rar, è facile. L'archiviatore tar proviene da Unix, mentre gli altri due provengono da MS-DOS / Windows. Tar gestisce i metadati dei file unix (permessi, orari, ecc.), Mentre zip e rar non lo hanno fatto fino a poco tempo fa (hanno archiviato i dati dei file MS-DOS). In effetti, zip ha impiegato un po 'di tempo prima di iniziare a memorizzare correttamente i metadati NTFS (flussi alternativi, descrittore di sicurezza, ecc.).

Molti degli algoritmi di compressione in PKZip sono di proprietà del produttore originale e l'ultimo aggiunto alle versioni Dos / Windows era Deflate (RFC 1951) che ha funzionato un po 'meglio di Implode, l'algo proprietario che ha prodotto la migliore compressione generale . Gzip utilizza l'algoritmo Deflate.

L'algoritmo di compressione RAR è proprietario, ma esiste un'implementazione open source gratuita del decompressore. Le versioni ufficiali di RAR e WinRAR di RARlab non sono gratuite .

Gzip usa l'algoritmo deflate e quindi non è peggio di PKZip. Bzip2 ottiene rapporti di compressione leggermente migliori.

TL; versione DR:

tar.gz e tar.bz2 provengono da Unix, quindi le persone di Unix li usano. Zip e Rar provengono dal mondo DOS / Windows, quindi le persone DOS / Windows li usano. tarè stato lo standard per raggruppare archivi di cose in * nix per diversi decenni.


1
Alcuni chiarimenti: implementazioni RAR open-source sono basati sul proprio open source di RARLAB decompressore . È anche significativamente più recente rispetto alla maggior parte degli altri compressori, apparendo prima su Windows molto dopo i più popolari ACE, ARJ e ARC, che a loro volta sostituiscono gli altri, come ricordo. Nessuno dei quali è mai apparso su Unix fino a tempi relativamente recenti.
Greyfade,

Piccola correzione: l'algoritmo RAR non è aperto: fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
Sven Slootweg

16

Non so quando, ma immagino che il motivo per cui sia usato sia una combinazione di: tar essendo tradizionale (è molto vecchio); facile gestione da riga di comando; tar preservando le informazioni sul file system che ZIP o RAR potrebbero non avere; e il processo a due passaggi significa che la compressione è più efficiente (un file di grandi dimensioni comprime meglio di molti file di piccole dimensioni).

bzip2 (.bz2) sembra sostituire gzip (.gz) in quanto fornisce una migliore compressione, più o meno allo stesso modo in cui gzip ha sostituito la compressione precedente (.Z).


3
E xz (LZMA) sembra sostituire bzip2 dove conta il rapporto di compressione (i file .xz sono più piccoli del 30% rispetto a gzip). Gzip è probabilmente il più veloce di tutti.
sastanin,

8

In sostanza, l'archiviazione e la compressione sono due operazioni diverse. Il tar.gz mostra chiaramente l'intenzione: un archivio compresso mentre un .zip o .rar mostra solo che è qualcosa compresso.


5

tarè tradizionale in unix, combina i file ma non li comprime necessariamente. Comprimerli con .g o .bz o .b2 è altrettanto facile.

Zipe rarsono propri e più comuni nel mondo Windows


Ah sì, la mia domanda non era abbastanza specifica. Stavo parlando principalmente di codice Linux / Unix.
Joe Z.

4
+1 - ma zip ha smesso di essere proprietario da tempo.
Billy ONeal,

Sì, un sottoinsieme di zip è uno standard ora: iso.org/iso/home/store/catalogue_tc/…
rogerdpack

4

È tradizionale, onnipresente e funziona. Inoltre ho pensato che fosse in qualche modo evidente.

Aggiornare

Mi scuso, dimentico che la maggior parte delle persone non sa cosa so o ho esperienza come amministratore in ambienti eterogenei.

Tradizione come in un'usanza o pratica radicata nel tempo. Sappiamo che ha basi nella storia perché tar deriva da Tape ARchive che fa riferimento alla vecchia tecnologia di backup su nastro. Ha una lunga storia nei vari sistemi operativi Unix risalenti al 1979 in 7a edizione Unix, dove ha sostituito tp. I sistemi Linux sono generalmente una fusione del kernel Linux e del software GNU di cui fa parte il tar GNU. Tutta questa storia di catrame indica che la maggior parte dei tecnici esperti sa come usarlo senza dover fare riferimento alla documentazione perché è radicata. Per i nuovi utenti c'è molta documentazione perché il software è in circolazione da così tanto tempo.

Ubiquo come appare o trovato ovunque. Un abuso in qualche modo accettato è dove l'apparenza non è universale, ma in percentuale abbastanza grande della popolazione da essere accettata come onnipresente. 7a edizione Unix è l'antenato delle più grandi versioni di Unix tra cui Sun OS / Solaris, AIX, HPUX, AIX, BSD, ecc . Esiste anche un alto grado di compatibilità incrociata tra le diverse implementazioni di tar su unix . Poiché MacOS (da OS 10) è basato su BSD, ha anche tar. Linux utilizza il software GNU che include GNU Tar, quindi tar è disponibile su tutte le versioni di Linux. E, sebbene non sia disponibile come integrato, ci sono molte implementazioni di tar disponibili su Windows tra cui GNU Tar tramite cygwin e nativamente. GNU Tar, in particolare, è disponibile sulla maggior parte degli Unices e di Windows, il che lo rende una buona scelta per le migrazioni dei file su tutti i sistemi operativi.

Funziona come se funzionasse da molto tempo senza grandi modifiche. È disponibile su tutte le principali piattaforme predefinite (tranne Windows, dove è disponibile come software aggiuntivo). Il formato è inoltre supportato su tutte le principali piattaforme che facilita l'interscambio tra piattaforme. Non solo viene ancora utilizzato come modo per creare archivi facilmente trasportabili, ma un tar-pipe è un linguaggio Unix standard per la copia di alberi di directory, specialmente in ambienti eterogenei. In breve, è stato in giro ed è ancora in uso pesante perché fa quello che fa bene.


5
con tutto il rispetto, questa risposta è breve, semplicistica, e ... in qualche modo non funziona per me
moscerino

5
... 1) "tradizionale" ha un peso inferiore allo zero nello sviluppo del software; altrimenti tutti codificheremmo COBOL su IBM-360 usando le schede perforate; dicendo "è tradizionale" non spiega assolutamente nulla ...
Gnat,

5
... 2) "onnipresente" ... davvero? Una cosa che ho notato quando sono passato da Unix a Windows è che nessuno stava usando tar e tutto andava bene senza di essa. Quando, dopo diversi anni di felice programmazione, una volta ho avuto bisogno di tar, mi ci è voluto un po 'di tempo per trovare la sua versione di Windows. È onnipresente? dammi una pausa ...
moscerino

4
... 3) "Funziona" - beh, senza spiegare che tipo di lavoro e perché è fatto da Tar, questo è solo un gesto della mano. Era molto tempo fa, ma ricordo ancora un po 'di shock quando ho saputo del catrame. L'utilità che non comprime mi è sembrata inutile. Certo che mi sbagliavo, ma se in quel momento qualcuno avrebbe cercato di "educarmi" con una sola parola come funziona , penserei "no, si masturba" ...
moscerino

4
Riassumendo, questo sforzo zero, una risposta puramente supponente manca di spiegazione e contesto. Le dichiarazioni rese non vengono spiegate né supportate da nulla. Una formulazione eccessivamente generalizzata sembra semplicemente reiterare ciò che è stato dichiarato in questione, invece di rispondere.
moscerino del
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.