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

29

Durante la navigazione di progetti open source sviluppati principalmente per sistemi Linux e scaricando i pacchetti più recenti, il codice sorgente viene sempre archiviato in un file .tar.gz o .tar.bz2.

C'è qualche ragione 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)?

    
posta Joe Z. 27.12.2012 - 01:31
fonte

5 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 tempo fa, come in oltre 2 decenni e probabilmente un altro paio. Significativamente prima che esistesse anche Linux.

In effetti, tar sta per (t) ape (ar) erba cipollina. Pensa reel difficile, e avrai un'idea di quanti anni ha. ba-dum-urto.

Prima che le persone disponessero di masterizzatori CD, distribuivano distribuzioni di software su floppy disk da 1.44Mb. Il file tar compresso è stato tagliato in pezzi di dimensioni floppy dal comando split , e questi pezzi sono stati chiamati tarball . Ti uniresti a loro insieme con cat ed estrai l'archivio.

Per rispondere all'altra domanda sul perché non Zip o Rar, è facile. Il tar archiver proviene da Unix, mentre gli altri due provengono da MS-DOS / Windows. Tar gestisce i metadati dei file unix (autorizzazioni, tempi, ecc.), Mentre zip e rar non lo hanno fatto fino a poco tempo fa (essi memorizzavano i dati del file MS-DOS). In effetti, zip ha impiegato un po 'di tempo prima che iniziasse 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 è stato Deflate (RFC 1951) che ha funzionato un po 'meglio di Implode, l'algo proprietario lì che ha prodotto il migliore compressione generale. Gzip utilizza l'algoritmo Deflate.

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

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 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 materiale in * nix per diversi decenni.

    
risposta data 27.12.2012 - 22:33
fonte
16

Non so quando, ma immagino che la ragione per cui viene usata sia una combinazione di: tar che è tradizionale (è molto vecchio); facile gestione da una riga di comando; preservare le informazioni sul file system che ZIP o RAR non possono; e il processo a due passaggi significa che la compressione è più efficiente (un grande file che comprime meglio di molti piccoli file).

bzip2 (.bz2) sembra essere in grado di spostare gzip (.gz) in quanto fornisce una compressione migliore, più o meno nello stesso modo in cui lo stesso gzip ha spostato il precedente compress (.Z).

    
risposta data 27.12.2012 - 03:15
fonte
8

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

    
risposta data 27.12.2012 - 09:49
fonte
5

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

Zip e rar sono proprietà e più comuni nel mondo Windows

    
risposta data 27.12.2012 - 02:00
fonte
4

È tradizionale, onnipresente e funziona. Inoltre ho pensato che fosse piuttosto apparente.

Aggiorna

Le mie scuse, mi dimentico che molte persone non sanno quello che so o hanno esperienza come amministratore in ambienti eterogenei.

Tradizione come in un'abitudine o pratica radicata nel tempo. Sappiamo che ha una base storica 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 7th edition Unix dove ha sostituito tp. I sistemi Linux sono solitamente una fusione del Kernel Linux e del software GNU di cui GNU tar fa parte. Tutta questa cronologia dei tar indica che la maggior parte degli esperti tecnici sa come usarli senza dover fare riferimento alla documentazione perché è radicata. Per gli utenti più recenti c'è abbondanza di documentazione perché il software è in circolazione da così tanto tempo.

Onnipresente come in apparenza o trovato ovunque. Un abuso abusato in qualche modo è dove l'apparenza non è universale, ma in una percentuale abbastanza grande della popolazione da essere accettata come onnipresente. 7th Edition Unix è l'antenato delle più grandi versioni di Unix tra cui Sun OS / Solaris, AIX, HPUX, AIX, BSD, ecc. . Esiste anche un elevato grado di compatibilità incrociata tra le diverse implementazioni di tar su unix . Poiché MacOS (dal momento che OS 10) è basato su BSD, ha anche tar. Linux usa il software GNU che include GNU Tar così tar è disponibile su tutte le versioni di Linux. E, sebbene non sia disponibile come built-in, ci sono molte implementazioni di tar disponibili su Windows, tra cui GNU Tar attraverso cygwin e nativamente . In particolare, GNU Tar è disponibile sulla maggior parte degli Unix e Windows, rendendolo la scelta ideale per migrazioni di file tra diversi sistemi operativi.

Funziona come funziona da molto tempo senza grandi modifiche. È disponibile su tutte le principali piattaforme fuori dalla scatola (ad eccezione di Windows, dove è disponibile come software aggiuntivo). Il formato è supportato anche su tutte le principali piattaforme che facilitano l'interscambio tra piattaforme. Non solo è ancora usato come un modo per creare archivi facilmente trasportabili, ma un tar-pipe è un idioma Unix standard per copiare gli alberi delle directory, specialmente in ambienti eterogenei. In breve, è stato in circolazione e ancora in uso pesante perché fa quello che fa bene.

    
risposta data 27.12.2012 - 09:54
fonte

Leggi altre domande sui tag