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)?
open-source
history
packages
Joe Z.
fuente
fuente
tar
(es decir, Tape Archiver) ya era un estándar de facto.ftp.gnu.org
por 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.Respuestas:
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
split
comando, y estos pedazos fueron llamados tarballs . Volvería a unirloscat
y 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.
tar
ha sido el estándar para agrupar archivos de cosas en * nix durante varias décadas.fuente
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).
fuente
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.
fuente
tar
es tradicional en Unix, combina archivos pero no necesariamente los comprime. Comprimirlos con .g o .bz o .b2 es igual de fácil.Zip
yrar
son de propiedad y más comunes en el mundo de Windowsfuente
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.
fuente