Коли стандартним для упаковки Linux став вихідний код .tar.gz?


29

Під час перегляду проектів з відкритим кодом, розроблених в основному для систем Linux, та завантаження останніх пакетів вихідний код завжди зберігається у файлі .tar.gz або .tar.bz2.

Чи є якась причина для використання .tar.gz або .tar.bz2, а не щось на зразок .zip або .rar чи якогось іншого алгоритму стиснення (або навіть залишати його нестисненим, якщо проект досить малий)?


3
Де ви переглядаєте? Більшість проектів сьогодні поширює свій вихідний код у вигляді URL-адреси сховища VCS, а коли вони надають архіви, він зазвичай знаходиться у .ZIP-формі. TGZ застаріла десятиліттями (незважаючи на кілька впертих відмов людей від отримання повідомлення), і я давно не бачив жодного проекту, який би використовував його ...
Мейсон Уілер

4
Linux, zip та rar навіть не існували, коли tar(тобто, Tape Archiver) вже був стандартним фактором.
SK-логіка

19
@Mason Wheeler: визначте "застарілий". Формат не застарілий, якщо люди вважають його корисним і продовжують його використовувати. Я думаю, що tar + gz виконує цю роботу, а перехід на інший формат у багатьох випадках - лише питання смаку. Такі проекти, як Eclipse ( eclipse.org ), все ще використовують його.
Джорджіо

3
@MasonWheeler, наприклад, перегляньте ftp.gnu.org. Це те, на чому будується весь Інтернет. І, сподіваюсь, всі погодиться, що ZIP все одно не поступається технологічно.
SK-логіка

5
@MasonWheeler та інші. Тільки тому, що tar має стрічковий архіватор у своїй назві, не робить його застарілим. ВСЯКОГО Я знаю, що в світі * nix / BSD використовується смола та використання .zip порівняно рідко. Насправді, коли я бачу поштовий файл, я майже завжди запитую, чи це лише архів Windows.
Роб

Відповіді:


31

Щоб відповісти на запитання в рубриці: tar.gz / tar.bz2 став стандартом для розповсюдження вихідного коду Linux дуже давно, як і за два десятиліття, і, напевно, ще пару. Значно ще до появи Linux.

Насправді дьоготь означає (t) мавпу (ar) цибулю. Подумайте хитання важко, і ви отримаєте уявлення про те , скільки йому років. ба-дум-шишка.

До того, як люди мали компакт-диски, дистрибутив програмного забезпечення виводився на дискети 1,44Mb. Стислий файл смоли був нарізаний splitкомандою на шматочки розміром з дискети , і ці шматки називались тарболами . Ви приєднаєтесь до них разом із catі витягніть архів.

Щоб відповісти на інше питання, чому б не Zip або Rar, це просто. Архіватор смоли походить від Unix, а інші два - від MS-DOS / Windows. Tar обробляє метадані файлу unix (дозволи, часи тощо), тоді як zip та rar - не зовсім недавно (вони зберігали дані файлів MS-DOS). Насправді, zip пройшов деякий час, перш ніж він почав правильно зберігати метадані NTFS (альтернативні потоки, дескриптор безпеки тощо).

Багато алгоритмів стиснення в PKZip є власником оригінального виробника, а останнім, доданим до версій Dos / Windows, став Deflate (RFC 1951), який працював трохи краще, ніж Implode, фірмовий альго там, який давав найкращу загальну компресію . Gzip використовує алгоритм Дефляції.

Алгоритм стиснення RAR є приватною власністю, але є безоплатно надається реалізація з відкритою вихідним кодом декомпресора. Офіційні випуски RAR та WinRAR від RARlab - це не безкоштовно .

Gzip використовує алгоритм дефляції, і тому не гірший за PKZip. Bzip2 отримує дещо кращі коефіцієнти стиснення.

Версія TL; DR:

tar.gz та tar.bz2 - від Unix, тому користувачі Unix ними користуються. Zip та Rar - зі світу DOS / Windows, тому користувачі DOS / Windows ними користуються. tarвже декілька десятиліть є стандартом для збирання архівів матеріалів у * nix.


1
Деякі роз’яснення: реалізація RAR з відкритим кодом заснована на власному декомпресорі відкритого коду RARlab . Це також значно новіше, ніж більшість інших компресорів, з'являється першим в Windows задовго після більш популярних раніше ACE, ARJ та ARC, які, в свою чергу, витісняють інші, наскільки я пам'ятаю. Жоден з яких ніколи насправді не з'являвся на Unix до порівняно недавно.
greyfade

Невелика корекція: Алгоритм RAR не відкритий: fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
Sven Slootweg,

16

Я не знаю про те, коли, але я думаю, що причиною його використання є поєднання: дьоготь традиційний (він дуже старий); просте управління з командного рядка; тар-збереження інформації файлової системи, що ZIP або RAR не можуть; і процес двох проходів означає, що стиснення є більш ефективним (один великий файл стискає краще, ніж багато маленьких файлів).

bzip2 (.bz2), здається, витісняє gzip (.gz), оскільки забезпечує кращу компресію, приблизно так само, як і сам gzip змістив попередній компрес (.Z).


3
І xz (LZMA), здається, витісняє bzip2 там, де значення коефіцієнта стиснення ( .xz файли на 30% менше, ніж gzip). Gzip - це, мабуть, найшвидший із них.
зустріч

8

По суті, архівування та стиснення - це дві різні операції. Tar.gz дуже чітко показує намір: стислий архів, тоді як .zip або .rar просто показує, що це деякі стиснуті речі.


5

tarє традиційним в Unix, він поєднує файли, але не обов'язково стискати їх. Стиснення їх за допомогою .g або .bz або .b2 так само просто.

Zipі rarвони є власністю та більш поширеними у світі Windows


Ага так, моє запитання було недостатньо конкретним. Я здебільшого говорив про код Linux / Unix.
Джо З.

4
+1 - але поштовий індекс перестав бути власником деякого часу тому.
Біллі ONeal

Так, зараз підмножина zip - стандартна: iso.org/iso/home/store/catalogue_tc/…
rogerdpack

4

Це традиційно, всюди, і це працює. Плюс я подумав, що це дещо самовидимо.

Оновлення

Вибачте, я забуваю, що більшість людей не знають, що я знаю, або мають досвід адміністратора в неоднорідних умовах.

Традиція, як у звичаї чи практиці, вкорінена з часом. Ми знаємо, що це має історію в історії, оскільки дьоготь походить від Tape ARchive, посилаючись на стару технологію резервного копіювання стрічки. Він має довгу історію в різних операційних системах Unix, починаючи з 1979 року в 7-му випуску Unix, де він замінив tp. Системи Linux, як правило, є об'єднанням програмного забезпечення для ядра Linux та GNU, частиною якого є смола GNU. Вся ця історія дьогтю означає, що більшість досвідчених технічних людей знають, як її використовувати, не звертаючись до документації, оскільки вона була вкорінена. Для нових користувачів є достатньо документації, оскільки це програмне забезпечення існує вже давно.

Усюдисущий, як з’являється або зустрічається скрізь. Дещо прийняте зловживання - це те, що зовнішність не є універсальною, але у достатній кількості відсотків населення вона може бути сприйнята як всюдисуща. 7-е видання Unix є родоначальником найбільшої версії Unix, включаючи Sun OS / Solaris, AIX, HPUX, AIX, BSD тощо . Існує також високий ступінь перехресної сумісності в різних реалізаціях tar на unix . Оскільки MacOS (починаючи з ОС 10) базується на BSD, він також має смолу. Linux використовує програмне забезпечення GNU, яке включає GNU Tar, тому дьоготь доступний для всіх типів Linux. І, хоча він не доступний як вбудований, є багато реалізацій tar, доступних у Windows, включаючи GNU Tar через cygwin та вроджене. Зокрема, GNU Tar доступний у більшості Unices та Windows, що робить його хорошим вибором для міграції файлів через ОС.

Працює так, як це функціонує тривалий час без великих змін. Він доступний на всіх основних платформах поза коробкою (за винятком Windows, де він доступний як додаткове програмне забезпечення). Формат також підтримується на всіх основних платформах, що полегшує обмін між платформами. Він не тільки використовується як спосіб зробити легко портативні архіви, але тар-труба є стандартною ідіомою Unix для копіювання дерев каталогів, особливо в гетерогенних середовищах. Коротше кажучи, він уже існував і все ще користується великою популярністю, тому що робить це добре.


5
з усією повагою, ця відповідь коротка, спрощена, і вона ... якось не працює для мене
gnat

5
... 1) "традиційний" несе менше нульової ваги в розробці програмного забезпечення; інакше ми б усі кодували COBOL на IBM-360 за допомогою перфокарт; кажучи, що "це традиційно", взагалі нічого не пояснює ...
gnat

5
... 2) "всюдисущий" ... справді? Одне, що я помітив при переході з Unix на Windows, - це те, що ніхто не використовує дьоготь, і без нього все вийшло нормально. Коли після декількох років щасливого кодування я одного разу виявив потребу в дьогті, мені знадобилося досить багато часу, щоб знайти його версію для Windows. Це повсюдно? дай мені перерву ...
гнат

4
... 3) "це працює" - добре, не пояснюючи, яку роботу і чому робиться дьогтем, це просто махання рукою. Це було давно, але я все ще пам’ятаю певний шок, коли дізнався про дьоготь. Утиліта, яка не стискає, почувала мене просто марною. Звичайно, я помилявся, але якби тоді хтось спробував «навчити» мене однослівним твердженням, як це працює, я б подумав «ні, це мастурбує» ...
gnat

4
... Підводячи підсумок, цій нульовій спробі, суто впевненій відповіді бракує пояснень та контексту. Зроблені заяви не пояснюються і не підкріплюються нічим. Надмірно узагальнене формулювання, здається, лише повторює те, що було сказано у питанні, а не відповідати на нього.
гнат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.