¿Cuándo se convirtió el estándar para empaquetar el código fuente de Linux en .tar.gz?

29

Al explorar proyectos de código abierto desarrollados principalmente para sistemas Linux y descargar los paquetes más recientes, el código fuente siempre se almacena en un archivo .tar.gz o .tar.bz2.

¿Hay alguna razón para usar .tar.gz o .tar.bz2 en lugar de algo como .zip o .rar o algún otro algoritmo de compresión (o incluso dejarlo sin comprimir si el proyecto es lo suficientemente pequeño)?

Joe Z.
fuente
3
Donde estas navegando En la actualidad, la mayoría de los proyectos distribuyen su código fuente en forma de una URL de repositorio de VCS, y cuando dan archivos generalmente está en formato .ZIP. TGZ ha estado obsoleto durante décadas (a pesar de la obstinada negativa de algunas personas para recibir el mensaje) y no he visto ningún proyecto que lo use en mucho tiempo ...
Mason Wheeler
44
Linux, zip y rar ni siquiera existían cuando tar(es decir, Tape Archiver) ya era un estándar de facto.
SK-logic
19
@Mason Wheeler: Definir "obsoleto". Un formato no es obsoleto siempre que las personas lo encuentren útil y lo sigan utilizando. Creo que tar + gz hace el trabajo y cambiar a otro formato es en muchos casos solo cuestión de gustos. Proyectos como Eclipse ( eclipse.org ) todavía lo usan.
Giorgio
3
@MasonWheeler, explore, ftp.gnu.orgpor ejemplo. Esto es sobre lo que se basa todo Internet. Y, espero, todos estarán de acuerdo en que el ZIP es tecnológicamente inferior de todos modos.
SK-logic
55
@MasonWheeler y otros. El hecho de que tar tenga un archivador de cinta en su nombre no lo hace obsoleto. TODOS los que conozco usan tar en el mundo * nix / BSD y usar .zip es relativamente raro. De hecho, cuando veo un archivo zip, casi siempre me pregunto si es un archivo solo de Windows.
Rob el

Respuestas:

31

Para responder la pregunta en el encabezado: tar.gz / tar.bz2 se convirtió en el estándar para distribuir el código fuente de Linux hace mucho, mucho tiempo, como en más de 2 décadas, y probablemente un par más. Significativamente incluso antes de que Linux surgiera.

De hecho, alquitrán significa (t) ape (ar) cebolleta. Piense carrete duro, y obtendrá una idea de lo viejo que es. ba-dum-bump

Antes de que las personas tuvieran grabadoras de CD, se distribuían distribuciones de software en disquetes de 1,44 Mb. El archivo tar comprimido fue cortado en pedazos del tamaño del disquete por el splitcomando, y estos pedazos fueron llamados tarballs . Volvería a unirlos caty extraería el archivo.

Para responder a la otra pregunta de por qué no Zip o Rar, es fácil. El archivador tar proviene de Unix, mientras que los otros dos provienen de MS-DOS / Windows. Tar maneja los metadatos del archivo Unix (permisos, tiempos, etc.), mientras que zip y rar no lo hicieron hasta hace muy poco (almacenaron los datos del archivo MS-DOS). De hecho, zip tardó un tiempo antes de comenzar a almacenar metadatos NTFS (secuencias alternativas, descriptor de seguridad, etc.) correctamente.

Muchos de los algoritmos de compresión en PKZip son propiedad del fabricante original, y el último agregado a las versiones de Dos / Windows fue Deflate (RFC 1951) que funcionó un poco mejor que Implode, el algoritmo patentado que produjo la mejor compresión general . Gzip usa el algoritmo Deflate.

El algoritmo de compresión RAR es propietario, pero hay una implementación gratuita de código abierto del descompresor. Los lanzamientos oficiales de RAR y WinRAR de RARlab no son gratuitos .

Gzip usa el algoritmo de desinflado, por lo que no es peor que PKZip. Bzip2 obtiene relaciones de compresión ligeramente mejores.

TL; versión DR:

tar.gz y tar.bz2 son de Unix, por lo que la gente de Unix los usa. Zip y Rar son del mundo de DOS / Windows, por lo que la gente de DOS / Windows los usa. tarha sido el estándar para agrupar archivos de cosas en * nix durante varias décadas.

ikmac
fuente
1
Algunas aclaraciones: las implementaciones de RAR de código abierto se basan en el propio descompresor de código abierto de RARlab . También es significativamente más nuevo que la mayoría de los otros compresores, apareciendo primero en Windows mucho después de los ACE, ARJ y ARC, que antes eran más populares, y que a su vez desplazan a los demás, según recuerdo. Ninguno de los cuales apareció realmente en Unix hasta hace relativamente poco.
greyfade
Pequeña corrección: el algoritmo RAR no está abierto: fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
Sven Slootweg
16

No sé cuándo, pero imagino que la razón por la que se usa es una combinación de: el alquitrán es tradicional (es muy antiguo); administración fácil desde una línea de comando; tar preservando la información del sistema de archivos que ZIP o RAR no pueden; y el proceso de dos pasos significa que la compresión es más eficiente (un archivo grande se comprime mejor que muchos archivos pequeños).

bzip2 (.bz2) parece estar desplazando a gzip (.gz) ya que proporciona una mejor compresión, de la misma manera que gzip desplazó a la compresa anterior (.Z).

John Bickers
fuente
3
Y xz (LZMA) parece estar desplazando a bzip2 donde la relación de compresión importa (los archivos .xz son un 30% más pequeños que gzip). Gzip es probablemente el más rápido de todos.
sastanin
8

En esencia, archivar y comprimir son dos operaciones diferentes. El tar.gz muestra muy claramente la intención: un archivo comprimido, mientras que un .zip o .rar solo muestra que es algo comprimido.

Pieter B
fuente
5

tares tradicional en Unix, combina archivos pero no necesariamente los comprime. Comprimirlos con .g o .bz o .b2 es igual de fácil.

Zipy rarson de propiedad y más comunes en el mundo de Windows

Martin Beckett
fuente
Ah sí, mi pregunta no era lo suficientemente específica. Estaba hablando sobre todo de código Linux / Unix.
Joe Z.
44
+1 - pero zip dejó de ser propietario hace algún tiempo.
Billy ONeal
Sí, un subconjunto de zip es un estándar ahora: iso.org/iso/home/store/catalogue_tc/…
rogerdpack
4

Es tradicional, omnipresente, y funciona. Además, pensé que era algo evidente.

Actualizar

Mis disculpas, olvido que la mayoría de la gente no sabe lo que sé o no tengo experiencia como administrador en entornos heterogéneos.

Tradición como en una costumbre o práctica arraigada en el tiempo. Sabemos que tiene una base en la historia porque el tar deriva de Tape ARchive que hace referencia a la antigua tecnología de copia de seguridad en cinta. Tiene una larga historia en los diversos sistemas operativos Unix que datan de 1979 en la séptima edición de Unix, donde reemplazó a tp. Los sistemas Linux suelen ser una amalgama del kernel de Linux y el software GNU del que forma parte GNU tar. Todo este historial de alquitrán significa que la mayoría de los técnicos experimentados saben cómo usarlo sin tener que consultar la documentación porque está arraigada. Para los usuarios más nuevos hay mucha documentación porque el software ha existido durante mucho tiempo.

Ubicuo como aparece o se encuentra en todas partes. Un mal uso algo aceptado es cuando la apariencia no es universal, sino en un porcentaje lo suficientemente grande de la población como para ser aceptado como omnipresente. 7ª edición de Unix es el antepasado de las versiones más grandes de Unix, incluyendo Sun OS / Solaris, AIX, HP-UX, AIX, BSD, etc . También hay un alto grado de compatibilidad cruzada entre las diferentes implementaciones de tar en Unix . Como MacOS (desde OS 10) se ha basado en BSD, también tiene alquitrán. Linux usa el software GNU que incluye GNU Tar, por lo que tar está disponible en todos los sabores de Linux. Y, aunque no está disponible como una versión incorporada, hay muchas implementaciones de tar disponibles en Windows, incluido GNU Tar a través de cygwin y de forma nativa. GNU Tar, en particular, está disponible en la mayoría de los Unices y Windows, por lo que es la mejor opción para las migraciones de archivos a través de sistemas operativos.

Funciona como ha estado funcionando durante mucho tiempo sin modificaciones importantes. Está disponible en todas las plataformas principales listas para usar (excepto Windows, donde está disponible como software adicional). El formato también es compatible con todas las plataformas principales, lo que facilita el intercambio entre plataformas. No solo se sigue utilizando como una forma de crear archivos fácilmente portátiles, sino que una tubería de alquitrán es un modismo estándar de Unix para copiar árboles de directorios, especialmente en entornos heterogéneos. En resumen, ha existido y todavía se usa mucho porque hace lo que hace bien.

dietbuddha
fuente
55
Con el debido respeto, esta respuesta es corta, simplista, y ... por alguna razón no funciona para mí
mosquito
55
... 1) "tradicional" tiene menos de cero peso en el desarrollo de software; de lo contrario, todos estaríamos codificando COBOL en IBM-360 utilizando tarjetas perforadas; decir "es tradicional" no explica nada ...
mosquito
55
... 2) "ubicuo" ... ¿en serio? Una cosa que noté cuando cambié de Unix a Windows es que nadie estaba usando tar y todo iba bien sin él. Cuando, después de varios años de codificación feliz, una vez que necesité tar, me llevó bastante tiempo encontrar su versión de Windows. Eso es omnipresente? dame un respiro ...
mosquito
44
... 3) "funciona" - bueno, sin explicar qué tipo de trabajo y por qué se hace con alquitrán, esto es solo agitar a mano. Fue hace mucho tiempo, pero aún recuerdo un poco de sorpresa cuando supe sobre el alquitrán. La utilidad que no comprime me pareció inútil. Por supuesto que estaba equivocada, pero si entonces alguien podría tratar de "educar" a mí con declaración de una palabra como funciona pensaría que "no, se masturba" ...
mosquito
44
... Resumiendo, este esfuerzo cero, la respuesta puramente obstinada carece de explicación y contexto. Las declaraciones hechas no se explican ni se respaldan con nada. La redacción demasiado generalizada parece simplemente reiterar lo que se planteó en la pregunta formulada en lugar de responder.
mosquito