2010-08-28 38 views
10

Với hầu hết các bản phân phối Linux giảm gzip và bzip2 có lợi cho LZMA2 để nén các gói của chúng và nhiều triển khai mã nguồn mở cho nhiều nền tảng, tôi tự hỏi: Chúng ta không nên đặt DEFLATE và định dạng .zip (không may bị bastardized nhiều lần) để nghỉ ngơi và chuyển sang các cách khác, hiện đại để phân phối các gói (nguồn) của chúng ta?Chúng tôi nên sử dụng định dạng nén nào; chúng ta nên đặt DEFLATE (.zip) để nghỉ ngơi?

GNU tar hỗ trợ J chuyển đổi, trong đó sử dụng xz (một máy nén LZMA2) như lọc:

$ tar cJf foo.tar.xz foo/ 

Tuy nhiên, tôi có xu hướng sử dụng 7z (thực hiện p7zip) và nó là bạn 7za dưới Linux để tạo tài liệu lưu trữ. Tôi vẫn sử dụng mô hình "tránh tar-bomb", khi tạo lưu trữ, có nghĩa là có một thư mục trong lưu trữ đó, vì vậy việc trích xuất từ ​​dòng lệnh không dẫn đến việc tràn ra các tệp trong thư mục hiện tại (đây là tiêu chuẩn modus operandi trên Linux những thứ như tar, nhưng có vẻ như ít hơn nhiều điều cần làm trong Windows).

Dù sao, có vẻ như do việc sử dụng trong gói (Fedora RPM và Ubuntu DEB), cũng như bộ lọc cho các công cụ như tar, LZMA2 là "điều tốt nhất tiếp theo" sắp sử dụng sau bzip2. Nó có một tỷ lệ nén tuyệt vời (nhịp bzip2 cho đến nay trong cài đặt tiêu chuẩn) và cũng rất nhanh (gzip hơi chậm hơn gzip,

Tôi đã tự làm một số điểm chuẩn, nhưng tôi muốn chuyển vị trí trên một số tiêu chí chuẩn bao quát hơn:

Bây giờ, bạn sẽ nhận thấy, rằng 7-zip, đó là tài liệu tham khảo impl ementation, không xuất hiện ở vị trí đầu tiên. Tuy nhiên Freearc sử dụng định dạng riêng của mình là .arc, không thực sự đa nền tảng và không tương thích với ARC từ thập niên 80. nanozip không phải là nguồn mở, mà là một loại suy thoái, nhưng đó là thuật toán đếm, không phải là người lưu trữ! Dù sao, bây giờ hiệu suất đó với 7-zip và triển khai phái sinh của nó (xz), không còn là vấn đề nữa, và tỷ lệ nén tự nói, tôi cảm thấy như phân phối các gói nguồn của mình là .7z hoặc .tar.xz lưu trữ. Tuy nhiên, tôi có hai rào cản trước mặt tôi, mà tôi dường như không thể thực hiện:

  1. ủng hộ của WinRAR. Không làm cho tôi sai, tôi không có mối hận thù nào đối với WinRAR hoặc người dùng của nó, nó chỉ là tôi không thể tạo RAR trên Linux, và không cần thiết, vì chúng tôi có các công cụ LZMA2 miễn phí. Và như tôi đã nói, kể từ khi trở thành một phần không thể tách rời của các gói phân phối, nó có sẵn trên bất kỳ Phân phối hiện đại nào. Vì nó mất khoảng thời gian để tạo ra một .7z hơn một tệp .rar và LZMA2 thường nhỏ hơn, tôi không thấy lý do tại sao không sử dụng 7-zip.

  2. lưu trữ tar phải là mã zip hoặc bzip2, không có ngoại lệ. Đây là một khó khăn. Tại sao rất nhiều người ấn tượng với gzip? Ngay cả bzip2 cũng không thấy phần lớn thời gian sử dụng.Cấp, gzip là nhanh, một điểm tốt khi nói đến nén theo yêu cầu chẳng hạn như trong các máy chủ web, hoặc khi tạo sao lưu nhân bản lớn. Nhưng những gì về phân phối phần mềm? LZMA2 là rất không đối xứng. Trong khi nén mất thời gian của nó, giải nén là blazingly nhanh.

OK, bây giờ ở đây có câu hỏi của tôi:

Kể từ LZMA2 được cho là thuật toán nén tốt hơn tiếp theo, tại sao mọi người không nhảy lên tàu? Tại sao mọi người vẫn sử dụng WinRAR, là độc quyền, có tỷ lệ nén kém hơn và không được chuyển sang Linux (ngoại trừ unrar, nhưng rõ ràng bạn không thể tạo lưu trữ với điều đó). Tại sao Tarballs vẫn chủ yếu là gzip?

Không có cách nào để thuyết phục mọi người chuyển sang định dạng lưu trữ mới hơn, đáng tin cậy hơn, đó không chỉ là nền tảng chéo mà còn miễn phí? Khi tôi cung cấp cho ai đó một tệp kết thúc bằng .7z, họ có xu hướng không biết phải làm gì với nó, điều này có bao giờ thay đổi không?

Ồ, và đây là điểm chuẩn nhỏ mà tôi đã tự làm. Tôi đã sử dụng các thiết lập mặc định ở khắp mọi nơi:

11837440 GNUtar_TAR.tar 
10657984 Arc_ARC.arc 
9632524 PA2010_TAR_BZip2.tar.bz2 
9536967 PA2010_LHA_Frozen5.lzh 
9510148 PA2010_ZIP_BZip2.zipx 
9490211 GNUtar_TAR.tar.bz2 
9467242 PA2010_LHA_Frozen6.lzh 
9463630 7-zip_ZIP_BZip2.zip 
9437520 7-zip_7-ZIP_BZip2.7z 
9398798 Arj_ARJ.arj 
9373435 GNUtar_TAR.tar.gz 
9370456 PA2010_BlackHole_Deflate.bh 
9369621 Lha_LHA_Frozen6.lzh 
9367712 PA2010_ZIP_Deflate.zip 
9364237 PA2010_TAR_gzip.tar.gz 
9360248 PA2010_Cabinet_MsZip.cab 
9303923 7-zip_ZIP_Deflate.zip 
9215279 7-zip_ZIP_Deflate64.zip 
9189365 PA2010_ZIP_PPMd.zipx 
9060663 PA2010_7-ZIP_PPMd.7z 
8931280 PA2010_Cabinet_LZX.cab 
8847427 7-zip_7-ZIP_PPMd.7z 
8803350 PA2010_ZIP_Optimized.zipx 
8803350 PA2010_ZIP_Wavpack.zipx 
8802850 PA2010_ZIP_LZMA.zipx 
5812491 FreeArc_7-ZIP.arc 
5789853 7-zip_7-ZIP_LZMA.7z 
5789853 PA2010_7-ZIP_LZMA.7z 
5789024 GNUtar_TAR.tar.xz 
5782637 FreeArc_UHARC.arc 
5770969 FreeArc_CCM.arc 
5739697 Fp8_5.fp8 
5718865 Fp8_8.fp8 
5685234 Paq8px_5.paq8px 
5677662 Paq8kx_5.paq8kx 
5644422 Paq8px_8.paq8px 
5609608 Paq8kx_8.paq8kx 

(Kích thước trong Bytes; Tên tập tin: Archiver_Format_Algorithm.Extension)

Tập hợp các filles bao gồm các hình ảnh đĩa có chứa một cài đặt hệ điều hành DOS:

1474979 disk01.144 
1474979 disk02.144 
1474979 disk03.144 
1474979 disk04.144 
1474979 disk05.144 
1474979 ldisk01.144 
1474979 ldisk02.144 
1474979 ldisk03.144 
24325 diskcopy.com 

(Kích thước bằng byte)

Trả lời

1

Được sử dụng để là bz2 wa không phải là một lựa chọn cho tarballs. Sau đó, một người nào đó thêm một tùy chọn để GNU Tar để tạo và đọc lưu trữ bz2, và khá sớm định dạng bắt đầu lan rộng. Vì vậy, câu trả lời là:

Nếu bạn tin tưởng vào LZMA sau đó gửi các bản vá cho Quỹ Phần mềm Tự do (với tất cả các thủ tục giấy tờ phù hợp) và bạn sẽ biến thế giới thành một nơi tốt đẹp hơn.

+0

Tôi không nói về tarballs độc quyền. ZIP và WinRAR vẫn phổ biến trên Windows, trong khi đã có 7-zip trong nhiều năm, nhưng nó dường như không được chọn. Ngoài ra, LZMA đã có trong GNU tar, như tôi đã nêu trong câu hỏi của mình. – polemon

Các vấn đề liên quan