При просмотре проектов с открытым исходным кодом, которые в основном разработаны для систем Linux, и загрузке последних пакетов, исходный код всегда сохраняется в файле .tar.gz или .tar.bz2.
Есть ли какая-либо причина использовать .tar.gz или .tar.bz2, а не что-то вроде .zip или .rar или какой-либо другой алгоритм сжатия (или даже оставить его без сжатия, если проект достаточно мал)?
open-source
history
packages
Джо З.
источник
источник
tar
(т.е. Tape Archiver) уже был стандартом де-факто.ftp.gnu.org
например. Это материал, на котором построен весь Интернет. И, я надеюсь, все согласятся, что ZIP в любом случае технологически уступает.Ответы:
Чтобы ответить на вопрос в заголовке: tar.gz / tar.bz2 стал стандартом для распространения исходного кода Linux очень-очень-очень давно, как в течение более двух десятилетий, и, вероятно, еще пару. Существенно прежде, чем Linux даже появился.
На самом деле, tar обозначает (t) ape (ar) зубок чеснока. Подумайте, катушка , и вы поймете, сколько ему лет. ба-дум-шишка.
До того, как у людей были устройства для записи компакт-дисков, дистрибутивы программного обеспечения были помещены на дискеты 1,44 МБ. Сжатый tar-файл был нарезан командой на фрагменты размером с дискету
split
, и эти фрагменты назывались tarballs . Вы бы присоединились к ним вместеcat
и распаковали архив.Чтобы ответить на другой вопрос, почему не Zip или Rar, это просто. Архиватор tar поставляется из Unix, а два других - из MS-DOS / Windows. Tar обрабатывает метаданные файла Unix (права доступа, время и т. Д.), В то время как zip и rar сделали это совсем недавно (они хранили данные файла MS-DOS). Фактически, zip потребовалось некоторое время, прежде чем он начал правильно хранить метаданные NTFS (альтернативные потоки, дескриптор безопасности и т. Д.).
Многие из алгоритмов сжатия в PKZip являются проприетарными для оригинального производителя, и последний, добавленный к версиям для Dos / Windows, был Deflate (RFC 1951), который работал немного лучше, чем Implode, собственный алгоритм, обеспечивающий лучшее общее сжатие. , Gzip использует алгоритм Deflate.
Алгоритм сжатия RAR является проприетарным, но есть бесплатная реализация декомпрессора с открытым исходным кодом. Официальные релизы RAR и WinRAR от RARlab не являются бесплатными .
Gzip использует алгоритм deflate, и поэтому ничем не хуже PKZip. Bzip2 получает немного лучшие коэффициенты сжатия.
TL; DR версия:
tar.gz и tar.bz2 из Unix, поэтому Unix люди используют их. Zip и Rar из мира DOS / Windows, поэтому DOS / Windows люди используют их.
tar
уже несколько десятилетий является стандартом для объединения архивов в * nix.источник
Я не знаю когда, но я представляю причину, по которой он используется, это сочетание: tar - традиционный (он очень старый); простое управление из командной строки; tar, сохраняющий информацию о файловой системе, которую ZIP или RAR могут не иметь; и двухпроходный процесс означает, что сжатие более эффективно (сжатие одного большого файла лучше, чем многих маленьких файлов).
Кажется, что bzip2 (.bz2) смещает gzip (.gz), поскольку он обеспечивает лучшее сжатие, во многом так же, как сам gzip сместил более раннее сжатие (.Z).
источник
По сути, архивирование и сжатие - это две разные операции. Tar.gz очень ясно показывает намерение: сжатый архив, тогда как .zip или .rar просто показывает, что это какой-то сжатый материал.
источник
tar
Традиционно в Unix, он объединяет файлы, но не обязательно сжимает их. Сжать их с помощью .g или .bz или .b2 так же просто.Zip
иrar
приличия и чаще встречаются в мире Windowsисточник
Это традиционный, вездесущий, и это работает. Плюс я думал, что это было несколько очевидно.
Обновить
Мои извинения, я забываю, что большинство людей не знают, что я знаю или имею опыт работы в качестве администратора в гетерогенных средах.
Традиции как в обычае или практике укоренились со временем. Мы знаем, что у него есть история, потому что tar происходит от Tape ARchive, ссылающегося на старую технологию резервного копирования на ленту. Он имеет долгую историю в различных операционных системах Unix, начиная с 1979 года в 7-м издании Unix, где он заменил tp. Системы Linux, как правило, представляют собой объединение программного обеспечения Linux Kernel и GNU, частью которого является tar GNU. Вся эта история tar означает, что большинство опытных технических специалистов знают, как использовать ее, не обращаясь к документации, потому что она укоренилась. Для новых пользователей есть много документации, потому что программное обеспечение существует уже так давно.
Вездесущий, как при появлении или обнаружении повсюду. В некоторой степени допустимо неправильное использование, когда внешний вид не универсален, но в достаточно большом проценте населения, чтобы быть признанным вездесущим. Unix 7-го издания является предком самых больших версий Unix, включая Sun OS / Solaris, AIX, HPUX, AIX, BSD и т . Д. Существует также высокая степень перекрестной совместимости между различными реализациями tar в unix . Поскольку MacOS (начиная с OS 10) основана на BSD, в ней также есть tar. Linux использует программное обеспечение GNU, которое включает в себя GNU Tar, поэтому tar доступен во всех версиях Linux. И, хотя он недоступен как встроенный, существует много реализаций tar, доступных в Windows, включая GNU Tar через cygwin и нативно, В частности, GNU Tar доступен в большинстве Unices и Windows, что делает его хорошим выбором для миграции файлов между операционными системами.
Работает так, как работает уже долгое время без серьезных изменений. Он доступен на всех основных платформах из коробки (кроме Windows, где он доступен в качестве дополнительного программного обеспечения). Формат также поддерживается на всех основных платформах, что облегчает обмен между платформами. Он не только используется для создания легко переносимых архивов, но tar-pipe - это стандартная идиома Unix для копирования деревьев каталогов, особенно в гетерогенных средах. Короче говоря, это было вокруг и все еще в интенсивном использовании, потому что оно делает то, что делает хорошо.
источник