Khi nào tiêu chuẩn để đóng gói mã nguồn Linux trở thành .tar.gz?


29

Khi duyệt các dự án nguồn mở được phát triển chủ yếu cho các hệ thống Linux và tải xuống các gói mới nhất, mã nguồn luôn được lưu trữ trong tệp .tar.gz hoặc .tar.bz2.

Có bất kỳ lý do nào để sử dụng .tar.gz hoặc .tar.bz2 thay vì một cái gì đó như .zip hoặc .rar hoặc một số thuật toán nén khác (hoặc thậm chí không giải nén nếu dự án đủ nhỏ) không?


3
Bạn đang duyệt ở đâu? Hầu hết các dự án ngày nay phân phối mã nguồn của chúng dưới dạng URL kho lưu trữ VCS và khi chúng cung cấp tài liệu lưu trữ, nó thường ở dạng .ZIP. TGZ đã lỗi thời trong nhiều thập kỷ (mặc dù có một vài người đáng ghét từ chối nhận tin nhắn) và tôi đã không thấy bất kỳ dự án nào sử dụng nó trong một thời gian dài ...
Mason Wheeler

4
Linux, zip và rar thậm chí không tồn tại khi tar(ví dụ, Tape Archiver) là đã là một tiêu chuẩn de facto.
SK-logic

19
@Mason Wheeler: Xác định "lỗi thời". Một định dạng không bị lỗi thời miễn là mọi người thấy nó hữu ích và tiếp tục sử dụng nó. Tôi nghĩ tar + gz thực hiện công việc và chuyển sang định dạng khác trong nhiều trường hợp chỉ là vấn đề của hương vị. Các dự án như Eclipse ( eclipse.org ) vẫn sử dụng nó.
Giorgio

3
@MasonWheeler, duyệt xung quanh ftp.gnu.org, ví dụ. Đây là thứ mà toàn bộ Internet được xây dựng dựa trên. Và, tôi hy vọng, mọi người sẽ đồng ý rằng ZIP dù sao cũng kém về mặt công nghệ.
SK-logic

5
@MasonWheeler và những người khác. Chỉ vì tar có băng lưu trữ trong tên của nó không làm cho nó lỗi thời. MỌI NGƯỜI tôi biết sử dụng tar trong thế giới * nix / BSD và sử dụng .zip là tương đối hiếm. Trong thực tế, khi tôi nhìn thấy một tệp zip, tôi hầu như luôn đặt câu hỏi liệu đó có phải là tệp lưu trữ duy nhất của Windows không.
Cướp

Câu trả lời:


31

Để trả lời câu hỏi trong tiêu đề: tar.gz / tar.bz2 đã trở thành tiêu chuẩn để phân phối mã nguồn Linux cách đây rất rất lâu, cũng như trong hơn 2 thập kỷ, và có lẽ là một vài nữa. Đáng kể trước khi Linux thậm chí ra đời.

Trong thực tế, tar là viết tắt của (t) ape (ar) chive. Nghĩ reel cứng, và bạn sẽ nhận được một ý tưởng bao nhiêu tuổi nó được. ba-dum-vết sưng.

Trước khi mọi người có ổ ghi CD, các bản phát hành phần mềm đã được đưa ra trên các đĩa mềm 1,44Mb. Tập tin tar được nén được cắt thành các mảnh có kích thước bằng đĩa mềm splitvà các phần này được gọi là tarball . Bạn sẽ tham gia cùng họ trở lại cùng catvà trích xuất kho lưu trữ.

Để trả lời câu hỏi khác tại sao không phải là Zip hay Rar, đó là một câu hỏi dễ. Bộ lưu trữ tar đến từ Unix, trong khi hai cái còn lại đến từ MS-DOS / Windows. Tar xử lý siêu dữ liệu tệp unix (quyền, thời gian, v.v.), trong khi zip và rar không tồn tại cho đến gần đây (họ đã lưu trữ dữ liệu tệp MS-DOS). Trong thực tế, zip mất một thời gian trước khi nó bắt đầu lưu trữ siêu dữ liệu NTFS (luồng thay thế, mô tả bảo mật, v.v.) đúng cách.

Nhiều thuật toán nén trong PKZip là độc quyền của nhà sản xuất ban đầu và thuật toán cuối cùng được thêm vào các phiên bản Dos / Windows là Deflate (RFC 1951) hoạt động tốt hơn một chút so với Implode, thuật toán độc quyền trong đó tạo ra khả năng nén chung tốt nhất . Gzip sử dụng thuật toán Deflate.

Thuật toán nén RAR là độc quyền, nhưng có một triển khai mã nguồn mở miễn phí . Bản phát hành chính thức của RAR và WinRAR từ RARlab không miễn phí .

Gzip sử dụng thuật toán khử rung, và do đó không tệ hơn PKZip. Bzip2 có tỷ lệ nén tốt hơn một chút.

Phiên bản TL; DR:

tar.gz và tar.bz2 là từ Unix, vì vậy người Unix sử dụng chúng. Zip và Rar đến từ thế giới DOS / Windows, vì vậy người dùng DOS / Windows sử dụng chúng. tarđã trở thành tiêu chuẩn để lưu trữ các tài liệu lưu trữ trong * nix trong vài thập kỷ.


1
Một số làm rõ: Việc triển khai RAR nguồn mở dựa trên bộ giải nén mã nguồn mở của RARlab . Nó cũng mới hơn đáng kể so với hầu hết các máy nén khác, xuất hiện đầu tiên trên Windows sau khi các ACE, ARJ và ARC phổ biến trước đó, từng lần lượt thay thế các máy nén khác, như tôi nhớ. Không ai trong số đó thực sự xuất hiện trên Unix cho đến gần đây.
greyfade

Chỉnh sửa nhỏ: Thuật toán RAR không mở: fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
Sven Slootweg

16

Tôi không biết khi nào, nhưng tôi tưởng tượng lý do tại sao nó được sử dụng là sự kết hợp của: tar là truyền thống (nó rất cũ); quản lý dễ dàng từ một dòng lệnh; tar bảo quản thông tin hệ thống tập tin mà ZIP hoặc RAR có thể không; và hai quá trình vượt qua có nghĩa là nén hiệu quả hơn (một tệp lớn nén tốt hơn nhiều tệp nhỏ).

bzip2 (.bz2) dường như thay thế gzip (.gz) vì nó cung cấp khả năng nén tốt hơn, giống như cách mà gzip tự thay thế cho lần nén trước đó (.Z).


3
Và xz (LZMA) dường như thay thế bzip2 trong đó tỷ lệ nén có vấn đề ( các tệp .xz nhỏ hơn 30% so với gzip). Gzip có lẽ là nhanh nhất trong số họ.
sastanin

8

Về bản chất, lưu trữ và nén là hai hoạt động khác nhau. Tar.gz thể hiện rất rõ ý định: một kho lưu trữ được nén trong khi .zip hoặc .rar chỉ hiển thị cho nó một số nội dung được nén.


5

tarlà truyền thống trong unix, nó kết hợp các tệp nhưng không nhất thiết phải nén chúng. Nén chúng bằng .g hoặc .bz hoặc .b2 cũng dễ như vậy.

Ziprarđược sở hữu và phổ biến hơn trong thế giới Windows


À đúng rồi, câu hỏi của tôi không đủ cụ thể. Tôi đã nói về mã Linux / Unix.
Joe Z.

4
+1 - nhưng zip đã ngừng độc quyền một thời gian trước đây.
Billy ONeal

Có, một tập hợp con của zip bây giờ là một tiêu chuẩn: iso.org/iso/home/store/catalogue_tc/ Kẻ
rogerdpack

4

Đó là truyền thống, có mặt khắp nơi, và nó hoạt động. Thêm vào đó tôi nghĩ rằng nó có phần tự rõ ràng.

Cập nhật

Tôi xin lỗi, tôi quên hầu hết mọi người không biết những gì tôi biết hoặc có kinh nghiệm làm quản trị viên trong môi trường không đồng nhất.

Truyền thống như trong một phong tục hoặc thực hành ăn sâu theo thời gian. Chúng tôi biết rằng nó có cơ sở trong lịch sử vì tar bắt nguồn từ Băng ARchive tham chiếu công nghệ sao lưu băng cũ. Nó có một lịch sử lâu dài trong các hệ điều hành Unix khác nhau có từ năm 1979 trong phiên bản thứ 7 Unix nơi nó thay thế tp. Các hệ thống Linux thường là sự hợp nhất của phần mềm Linux Kernel và GNU mà GNU tar là một phần của. Tất cả lịch sử tar này có nghĩa là phần lớn những người có kỹ thuật có kinh nghiệm biết cách sử dụng nó mà không cần phải tham khảo tài liệu vì nó đã ăn sâu. Đối với người dùng mới hơn có rất nhiều tài liệu vì phần mềm đã tồn tại quá lâu.

Đặc biệt như xuất hiện hoặc tìm thấy ở khắp mọi nơi. Một sự lạm dụng được chấp nhận một chút là sự xuất hiện không phổ biến, nhưng với tỷ lệ đủ lớn của dân số được chấp nhận là có mặt ở khắp mọi nơi. 7 phiên bản Unix là tổ tiên của các phiên bản lớn nhất của Unix bao gồm Sun OS / Solaris, AIX, HPUX, AIX, BSD, vv . Ngoài ra còn có một mức độ tương thích chéo cao trên các triển khai khác nhau của tar trên unix . Vì MacOS (kể từ OS 10) đã được dựa trên BSD, nó cũng có tar. Linux sử dụng phần mềm GNU bao gồm GNU Tar vì vậy tar có sẵn trên tất cả các hương vị của Linux. VÀ, mặc dù không có sẵn dưới dạng dựng sẵn, có rất nhiều triển khai tar có sẵn trên Windows, bao gồm cả GNU Tar thông qua cygwin và nguyên bản. GNU Tar nói riêng có sẵn trên hầu hết các Unices và Windows làm cho nó trở thành lựa chọn tốt cho việc di chuyển tệp trên các hệ điều hành.

Hoạt động như trong nó đã hoạt động trong một thời gian dài mà không cần sửa đổi lớn. Nó có sẵn trên tất cả các nền tảng chính (trừ Windows, nơi nó có sẵn dưới dạng phần mềm bổ sung). Định dạng này cũng được hỗ trợ trên tất cả các nền tảng chính tạo điều kiện trao đổi giữa các nền tảng. Nó không chỉ được sử dụng như một cách để lưu trữ dễ dàng di động, mà tar-pipe là một thành ngữ Unix tiêu chuẩn để sao chép cây thư mục, đặc biệt là trong các môi trường không đồng nhất. Nói tóm lại, nó đã tồn tại và vẫn còn được sử dụng nhiều bởi vì nó làm những gì nó làm tốt.


5
với tất cả sự tôn trọng, câu trả lời này ngắn gọn, đơn giản và nó ... bằng cách nào đó không hiệu quả với tôi
gnat

5
... 1) "truyền thống" mang trọng lượng dưới 0 trong phát triển phần mềm; mặt khác, tất cả chúng ta sẽ mã hóa COBOL trên IBM-360 bằng thẻ đục lỗ; nói "đó là truyền thống" không giải thích gì cả ...
gnat

5
... 2) "có mặt khắp nơi" ... thực sự? Một điều tôi nhận thấy khi chuyển từ Unix sang Windows là không ai sử dụng tar và mọi thứ sẽ ổn nếu không có nó. Khi, sau vài năm mã hóa hạnh phúc, một lần tôi đã cần đến tar, tôi đã mất khá nhiều thời gian để tìm phiên bản Windows của nó. Đó là phổ biến? cho tôi nghỉ ngơi ...
gnat

4
... 3) "nó hoạt động" - tốt mà không cần giải thích loại công việc nào và tại sao được thực hiện bằng tar, đây chỉ là vẫy tay. Cách đây đã lâu nhưng tôi vẫn còn nhớ cú sốc khi biết về tar. Tiện ích không nén chỉ cảm thấy vô dụng với tôi. Tất nhiên là tôi đã nhầm, nhưng nếu trở lại thì ai đó sẽ cố gắng "giáo dục" tôi bằng câu nói một từ giống như nó hoạt động Tôi nghĩ "không, nó thủ dâm" ...
gnat

4
... Tóm tắt, nỗ lực không, câu trả lời hoàn toàn có ý kiến ​​này thiếu lời giải thích và bối cảnh. Báo cáo được thực hiện không được giải thích cũng không được sao lưu với bất cứ điều gì. Từ ngữ khái quát quá mức dường như chỉ đơn thuần nhắc lại những gì đã nêu trong câu hỏi thay vì trả lời nó.
gnat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.