Quand la norme pour l'empaquetage du code source Linux est-elle devenue .tar.gz?

29

Lorsque vous parcourez des projets open source principalement développés pour les systèmes Linux et téléchargez les derniers packages, le code source est toujours stocké dans un fichier .tar.gz ou .tar.bz2.

Y a-t-il une raison d'utiliser .tar.gz ou .tar.bz2 plutôt que quelque chose comme .zip ou .rar ou un autre algorithme de compression (ou même le laisser non compressé si le projet est assez petit)?

Joe Z.
la source
3
Où naviguez-vous? De nos jours, la plupart des projets distribuent leur code source sous la forme d'une URL de référentiel VCS, et lorsqu'ils fournissent des archives, il est généralement au format .ZIP. TGZ est obsolète depuis des décennies (malgré le refus obstiné de quelques personnes odieuses de recevoir le message) et je n'ai vu aucun projet l'utiliser depuis longtemps ...
Mason Wheeler
4
Linux, zip et rar n'existaient même pas tar(c'est-à-dire, Tape Archiver) était déjà un standard de facto.
SK-logic
19
@Mason Wheeler: Définissez "obsolète". Un format n'est pas obsolète tant que les gens le trouvent utile et continuent de l'utiliser. Je pense que tar + gz fait le travail et le passage à un autre format est dans de nombreux cas juste une question de goût. Des projets comme Eclipse ( eclipse.org ) l'utilisent toujours.
Giorgio
3
@MasonWheeler, parcourez ftp.gnu.org, par exemple. C'est ce sur quoi repose tout Internet. Et, j'espère, tout le monde conviendra que ZIP est de toute façon technologiquement inférieur.
SK-logic
5
@MasonWheeler et autres. Le fait que tar ait un archiveur de bandes en son nom ne le rend pas obsolète. TOUT LE MONDE Je connais utilise tar dans le monde * nix / BSD et utiliser .zip est relativement rare. En fait, quand je vois un fichier zip, je me demande presque toujours s'il s'agit d'une archive Windows uniquement.
Rob

Réponses:

31

Pour répondre à la question dans la rubrique: tar.gz / tar.bz2 est devenu la norme pour la distribution du code source Linux il y a très très très longtemps, comme en bien plus de 2 décennies, et probablement quelques autres. De manière significative avant même que Linux n'ait vu le jour.

En fait, le goudron signifie (t) ape (ar) ciboulette. Pensez bobine dur, et vous aurez une idée à quel âge il est. ba-dum-bump.

Avant que les gens aient des graveurs de CD, des distributions de logiciels étaient publiées sur des disquettes de 1,44 Mo. Le fichier tar compressé a été découpé en morceaux de la taille d'une disquette par la splitcommande, et ces morceaux ont été appelés tarballs . Vous les regrouperiez catet extrairiez l'archive.

Pour répondre à l'autre question de savoir pourquoi pas Zip ou Rar, c'est facile. L'archiveur tar provient d'Unix, tandis que les deux autres proviennent de MS-DOS / Windows. Tar gère les métadonnées des fichiers Unix (autorisations, heures, etc.), tandis que zip et rar ne l'ont fait que très récemment (ils stockaient les données des fichiers MS-DOS). En fait, zip a pris un certain temps avant de commencer à stocker correctement les métadonnées NTFS (flux alternatifs, descripteur de sécurité, etc.).

De nombreux algorithmes de compression dans PKZip sont la propriété du fabricant d'origine, et le dernier ajouté aux versions Dos / Windows était Deflate (RFC 1951) qui fonctionnait un peu mieux qu'Implode, l'algo propriétaire qui produisait la meilleure compression générale. . Gzip utilise l'algorithme Deflate.

L'algorithme de compression RAR est propriétaire, mais il existe une mise en œuvre open source gratuite du décompresseur. Les versions officielles de RAR et WinRAR de RARlab ne sont pas gratuites .

Gzip utilise l'algorithme de dégonflage, et n'est donc pas pire que PKZip. Bzip2 obtient des taux de compression légèrement meilleurs.

Version TL; DR:

tar.gz et tar.bz2 sont d'Unix, donc les gens Unix les utilisent. Zip et Rar sont du monde DOS / Windows, donc les gens DOS / Windows les utilisent. tarest la norme pour regrouper des archives de trucs dans * nix depuis plusieurs décennies.

ikmac
la source
1
Quelques précisions: les implémentations RAR open source sont basées sur le propre décompresseur open source de RARlab . Il est également beaucoup plus récent que la plupart des autres compresseurs, apparaissant d'abord sur Windows longtemps après les ACE, ARJ et ARC auparavant plus populaires, qui à leur tour remplacent les autres, si je me souviens bien. Aucun d'entre eux n'est vraiment apparu sur Unix jusqu'à relativement récemment.
greyfade
Petite correction: l'algorithme RAR n'est pas ouvert: fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
Sven Slootweg
16

Je ne sais pas quand, mais j'imagine que la raison pour laquelle il est utilisé est une combinaison de: tar étant traditionnel (il est très ancien); gestion facile à partir d'une ligne de commande; tar préservant les informations du système de fichiers que ZIP ou RAR ne peuvent pas; et le processus en deux passes signifie que la compression est plus efficace (un gros fichier se comprime mieux que de nombreux petits fichiers).

bzip2 (.bz2) semble déplacer gzip (.gz) car il offre une meilleure compression, de la même manière que gzip lui-même a déplacé la compression précédente (.Z).

John Bickers
la source
3
Et xz (LZMA) semble déplacer bzip2 là où le taux de compression est important (les fichiers .xz sont 30% plus petits que gzip). Gzip est probablement le plus rapide de tous.
sastanin
8

L'archivage et la compression sont essentiellement deux opérations différentes. Le tar.gz montre très clairement l'intention: une archive compressée tandis qu'un .zip ou .rar montre juste que c'est du contenu compressé.

Pieter B
la source
5

tarest traditionnel sous unix, il combine des fichiers mais ne les comprime pas nécessairement. Les compresser avec .g ou .bz ou .b2 est tout aussi simple.

Zipet rarsont convenables et plus courants dans le monde Windows

Martin Beckett
la source
Ah oui, ma question n'était pas assez précise. Je parlais principalement du code Linux / Unix.
Joe Z.
4
+1 - mais zip a cessé d'être propriétaire il y a quelque temps.
Billy ONeal
Oui, un sous-ensemble de zip est désormais un standard: iso.org/iso/home/store/catalogue_tc/…
rogerdpack
4

C'est traditionnel, omniprésent et ça marche. De plus, je pensais que c'était quelque peu évident.

Mise à jour

Mes excuses, j'oublie que la plupart des gens ne savent pas ce que je sais ou ont de l'expérience en tant qu'administrateur dans des environnements hétérogènes.

Tradition comme dans une coutume ou une pratique ancrée dans le temps. Nous savons qu'il a une base dans l'histoire parce que tar dérive de Tape ARchive référençant l'ancienne technologie de sauvegarde sur bande. Il a une longue histoire dans les différents systèmes d'exploitation Unix remontant à 1979 dans la 7e édition d'Unix où il a remplacé tp. Les systèmes Linux sont généralement une fusion du noyau Linux et du logiciel GNU dont GNU tar fait partie. Toute cette histoire de tar signifie qu'une majorité de techniciens expérimentés savent comment l'utiliser sans avoir à se référer à la documentation car elle est enracinée. Pour les utilisateurs plus récents, la documentation est abondante car le logiciel existe depuis si longtemps.

Omniprésent comme en apparaissant ou trouvé partout. Une mauvaise utilisation quelque peu acceptée est lorsque l'apparence n'est pas universelle, mais dans un pourcentage suffisamment important de la population pour être acceptée comme omniprésente. 7ème édition Unix est l'ancêtre des plus grandes versions d'Unix , y compris Sun OS / Solaris, AIX, HPUX, AIX, BSD, etc . Il existe également un haut degré de compatibilité croisée entre les différentes implémentations de tar sous unix . Depuis MacOS (depuis OS 10) a été basé sur BSD, il a également tar. Linux utilise un logiciel GNU qui inclut GNU Tar, donc tar est disponible sur toutes les versions de Linux. ET, bien que non disponible en tant que module intégré, de nombreuses implémentations de tar sont disponibles sur Windows, y compris GNU Tar via cygwin et nativement. GNU Tar en particulier est disponible sur la plupart des Unices et Windows, ce qui en fait le bon choix pour les migrations de fichiers entre les systèmes d'exploitation.

Fonctionne comme il fonctionne depuis longtemps sans modifications majeures. Il est disponible sur toutes les principales plates-formes (sauf pour Windows, où il est disponible en tant que logiciel supplémentaire). Le format est également pris en charge sur toutes les principales plates-formes, ce qui facilite l'échange entre les plates-formes. Non seulement il est toujours utilisé pour créer des archives facilement portables, mais un tar-pipe est un idiome Unix standard pour copier des arborescences de répertoires, en particulier dans des environnements hétérogènes. Bref, il existe depuis toujours et est toujours très utilisé car il fait ce qu'il fait bien.

Dietbuddha
la source
5
avec tout le respect que je vous dois, cette réponse est courte, simpliste, et cela ... ne fonctionne pas pour moi d'une manière ou d'une autre
gnat
5
... 1) «traditionnel» pèse moins que zéro dans le développement de logiciels; sinon, nous coderions tous COBOL sur IBM-360 à l'aide de cartes perforées; dire "c'est traditionnel" n'explique rien du tout ...
gnat
5
... 2) "omniprésent" ... vraiment? Une chose que j'ai remarquée lors du passage d'Unix à Windows est que personne n'utilisait tar et que tout se passait très bien sans. Lorsque, après plusieurs années de codage heureux, j'ai un jour eu besoin de tar, il m'a fallu un certain temps pour trouver sa version Windows. C'est omniprésent? donne moi une pause ...
moucher
4
... 3) "ça marche" - enfin sans expliquer quel genre de travail et pourquoi est fait par le goudron, c'est juste un geste de la main. C'était il y a longtemps mais je me souviens encore d'une sorte de choc quand j'ai découvert le goudron. Un utilitaire qui ne comprime pas me semblait tout simplement inutile. Bien sûr, je me suis trompé, mais si à l'époque quelqu'un essayait de "m'éduquer" avec une déclaration en un mot comme si ça fonctionnait, je penserais "non, ça se masturbe" ...
moucheron
4
... En résumé, cette réponse sans effort, purement opiniâtre manque d'explication et de contexte. Les déclarations faites ne sont ni expliquées ni étayées par quoi que ce soit. Une formulation trop généralisée semble simplement réitérer ce qui a été dit en question au lieu d'y répondre.
moucher