มาตรฐานสำหรับการบรรจุซอร์สโค้ด Linux กลายเป็น. tar.gz เมื่อใด


29

เมื่อเรียกดูโปรเจ็กต์โอเพนซอร์สที่พัฒนาเป็นหลักสำหรับระบบ Linux และการดาวน์โหลดแพ็คเกจล่าสุดซอร์สโค้ดจะถูกเก็บไว้ในไฟล์. tar.gz หรือ. tar.bz2 เสมอ

มีเหตุผลใดบ้างสำหรับการใช้. tar.gz หรือ. tar.bz2 แทนที่จะเป็น. zip หรือ. rar หรืออัลกอริทึมการบีบอัดอื่น ๆ (หรือปล่อยให้ไม่มีการบีบอัดหากโครงการมีขนาดเล็ก)


3
คุณกำลังค้นหาที่ไหน โครงการส่วนใหญ่ทุกวันนี้แจกจ่ายซอร์สโค้ดของตนในรูปแบบของที่เก็บ VCS และเมื่อพวกเขาให้ไฟล์เก็บถาวรมันมักจะอยู่ในรูปแบบ. ZIP TGZ ล้าสมัยมาหลายทศวรรษแล้ว (แม้จะมีคนที่น่ารังเกียจไม่ยอมรับข้อความ) และฉันไม่ได้เห็นโครงการใด ๆ ที่ใช้มันมาเป็นเวลานาน ...
Mason Wheeler

4
Linux, zip และ rar ไม่ได้มีอยู่เมื่อtar(เช่นTape Archiver) เป็นมาตรฐานอยู่แล้ว
SK-logic

19
@Mason Wheeler: กำหนด "ล้าสมัย" รูปแบบไม่ล้าสมัยตราบใดที่ผู้คนพบว่ามีประโยชน์และใช้งานต่อไป ฉันคิดว่า tar + gz ทำงานและเปลี่ยนไปใช้รูปแบบอื่นในหลาย ๆ กรณีเพียงเรื่องของรสนิยม โครงการอย่าง Eclipse ( eclipse.org ) ยังคงใช้งานอยู่
Giorgio

3
@MasonWheeler เรียกดูftp.gnu.orgตัวอย่างเช่น นี่คือสิ่งที่อินเทอร์เน็ตทั้งหมดถูกสร้างขึ้น และฉันหวังว่าทุกคนจะเห็นว่า ZIP ด้อยกว่าทางเทคโนโลยีอยู่ดี
SK-logic

5
@MasonWheeler และคนอื่น ๆ เพียงเพราะ tar มีผู้เก็บเทปไว้ในชื่อไม่ได้ทำให้ล้าสมัย ทุกคนที่ฉันรู้จักใช้ tar ในโลก * nix / BSD และการใช้. zip ค่อนข้างหายาก ที่จริงแล้วเมื่อฉันเห็นไฟล์ zip ฉันมักจะถามว่าเป็นไฟล์เก็บถาวรของ Windows หรือไม่
Rob

คำตอบ:


31

ในการตอบคำถามในหัวข้อ: tar.gz / tar.bz2 กลายเป็นมาตรฐานสำหรับการแจกจ่ายซอร์สโค้ด Linux เมื่อนานมาแล้วมากในช่วง 2 ทศวรรษที่ผ่านมาและอาจมีอีกสองสามข้อ ก่อนที่ลีนุกซ์จะมีอยู่จริง.

ในความเป็นจริง tar หมายถึง (t) ape (ar) chive คิดรีลยากและคุณจะได้รับความคิดวิธีการเดิมที่เป็น BA-ดำชน

ก่อนที่ผู้คนจะมีเครื่องเขียนซีดีซอฟต์แวร์จะถูกวางลงบนฟล็อปปี้ดิสก์ 1.44Mb ไฟล์บีบอัดน้ำมันดินถูกสับเป็นชิ้นฟลอปปี้ขนาดโดยsplitคำสั่งและชิ้นส่วนเหล่านี้ถูกเรียกว่าtarballs คุณต้องการรวมพวกเขากลับเข้าด้วยกันcatและแตกไฟล์เก็บถาวร

เพื่อตอบคำถามอื่น ๆ ว่าทำไมไม่ใช้ Zip หรือ Rar นั่นเป็นคำถามที่ง่าย tar archiver มาจาก 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ไม่ได้gratis

Gzip ใช้อัลกอริทึมแบบยุบและดังนั้นจึงไม่เลวร้ายยิ่งกว่า PKZip Bzip2 ได้รับอัตราส่วนการบีบอัดที่ดีขึ้นเล็กน้อย

TL; DR เวอร์ชัน:

tar.gz และ tar.bz2 มาจาก Unix ดังนั้นผู้ใช้ Unix จึงใช้มัน Zip และ Rar นั้นมาจากโลกของ DOS / Windows ดังนั้นคนของ DOS / Windows จึงใช้มัน tarเป็นมาตรฐานสำหรับการจัดเก็บเอกสารสำคัญใน * ระวังเป็นเวลาหลายสิบปี


1
บางคำชี้แจง: การใช้งานเปิดแหล่งที่มา RAR จะขึ้นอยู่กับตัวเองมาเปิด RARLAB ของdecompressor นอกจากนี้ยังใหม่กว่าคอมเพรสเซอร์อื่น ๆ ส่วนใหญ่ปรากฏตัวครั้งแรกบน Windows หลังจาก ACE, ARJ และ ARC ที่ได้รับความนิยมมากขึ้นก่อนหน้านี้ซึ่งแต่ละอันจะแทนที่คนอื่น ๆ ตามที่ฉันจำได้ ไม่มีสิ่งใดที่เคยปรากฏบน Unix มาก่อนจนกระทั่งเมื่อไม่นานมานี้
greyfade

การแก้ไขเล็กน้อย : อัลกอริทึม RAR ไม่ได้เปิด: fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
Sven Slootweg

16

ฉันไม่รู้ว่าเมื่อไหร่ แต่ฉันคิดว่าเหตุผลที่ใช้เป็นส่วนผสมของ: น้ำมันดินเป็นแบบดั้งเดิม (มันเก่ามาก); การจัดการง่าย ๆ จากบรรทัดคำสั่ง; tar เก็บรักษาข้อมูลระบบไฟล์ที่ ZIP หรือ RAR อาจไม่; และกระบวนการส่งผ่านสองครั้งหมายความว่าการบีบอัดมีประสิทธิภาพมากกว่า

bzip2 (.bz2) ดูเหมือนว่าจะแทนที่ gzip (.gz) เนื่องจากให้การบีบอัดที่ดีกว่าในแบบเดียวกับที่ gzip เองแทนที่การบีบอัดก่อนหน้า (.Z)


3
และ xz (LZMA) ดูเหมือนว่าจะแทนที่ bzip2 โดยที่อัตราส่วนการบีบอัดมีความสำคัญ ( ไฟล์. xz มีขนาดเล็กกว่า gzip 30% ) Gzip น่าจะเร็วที่สุดของพวกเขาทั้งหมด
sastanin

8

ในสาระสำคัญการเก็บและบีบอัดเป็นการดำเนินการที่แตกต่างกันสองอย่าง tar.gz แสดงเจตนาอย่างชัดเจนมาก: ไฟล์บีบอัดที่ถูกบีบอัดในขณะที่. zip หรือ. rar แสดงให้เห็นว่าเป็นไฟล์บีบอัด


5

tarเป็นแบบดั้งเดิมในยูนิกซ์มันรวมไฟล์ แต่ไม่จำเป็นต้องบีบอัด การบีบอัดด้วย. g หรือ. bz หรือ. b2 นั้นง่ายดาย

Zipและrarมีความเหมาะสมและพบได้ทั่วไปในโลก Windows


อ่าใช่คำถามของฉันไม่เจาะจงพอ ฉันพูดถึง Linux / Unix code เป็นส่วนใหญ่
Joe Z.

4
+1 - แต่ซิปหยุดเป็นกรรมสิทธิ์เมื่อไม่นานมานี้
Billy ONeal

ใช่ชุดย่อยของ zip เป็นมาตรฐานในขณะนี้: iso.org/iso/home/store/catalogue_tc/…
rogerdpack

4

มันเป็นแบบดั้งเดิมแพร่หลายและใช้งานได้ บวกฉันคิดว่ามันค่อนข้างชัดเจนด้วยตนเอง

ปรับปรุง

คำขอโทษของฉันฉันลืมคนส่วนใหญ่ไม่รู้ว่าฉันรู้หรือมีประสบการณ์ในฐานะผู้ดูแลระบบในสภาพแวดล้อมที่ต่างกัน

ประเพณีตามประเพณีหรือการปฏิบัติที่ฝังแน่นอยู่ตลอดเวลา เรารู้ว่ามันมีพื้นฐานในประวัติศาสตร์เพราะtar มาจาก Tape ARchive ที่อ้างอิงถึงเทคโนโลยีการสำรองข้อมูลเทปแบบเก่า มันมีประวัติอันยาวนานในระบบปฏิบัติการ Unix ที่หลากหลายย้อนหลังไปถึงปี 1979 ในรุ่นที่ 7 ของ Unixที่มันมาแทนที่ tp ระบบ Linux มักจะเป็นการรวมกันของซอฟต์แวร์ Linux Kernel และ GNU ซึ่ง GNU tar เป็นส่วนหนึ่งของ ประวัติทาร์ทั้งหมดนี้หมายถึงนักเทคนิคที่มีประสบการณ์ส่วนใหญ่รู้วิธีใช้โดยไม่ต้องอ้างถึงเอกสารเพราะมันฝังแน่น สำหรับผู้ใช้ที่ใหม่กว่านั้นมีเอกสารมากมายเพราะซอฟต์แวร์มีมานานแล้ว

แพร่หลายเหมือนปรากฏหรือพบได้ทุกที่ การใช้ในทางที่ผิดค่อนข้างยอมรับได้คือลักษณะที่ปรากฏไม่เป็นสากล แต่มีจำนวนประชากรมากพอที่จะได้รับการยอมรับว่าแพร่หลาย รุ่นที่ 7 ระบบปฏิบัติการยูนิกซ์เป็นบรรพบุรุษของรุ่นที่ใหญ่ที่สุดของระบบปฏิบัติการยูนิกซ์รวมทั้งดวงอาทิตย์ OS / Solaris, AIX, HPUX, AIX, BSD ฯลฯ นอกจากนี้ยังมีระดับสูงของการข้ามการทำงานร่วมกันในการใช้งานที่แตกต่างกันของน้ำมันดินบนยูนิกซ์ ตั้งแต่ MacOS (ตั้งแต่ OS 10) ได้รับการอ้างอิงจาก BSD ก็มี tar Linux ใช้ซอฟต์แวร์ GNU ซึ่งรวมถึง GNU Tar ดังนั้น tar สามารถใช้งานได้กับทุกรสชาติของ Linux และในขณะที่ไม่มีให้บริการในตัวมีการใช้งาน tar หลายอย่างใน Windows รวมถึง GNU Tar ถึง cygwin และnatively. GNU Tar โดยเฉพาะมีอยู่ใน Unices ส่วนใหญ่และ Windows เป็นตัวเลือกที่ดีสำหรับการย้ายไฟล์ข้าม OS

ทำงานเหมือนที่เคยทำมาเป็นเวลานานโดยไม่มีการดัดแปลงที่สำคัญ สามารถใช้งานได้บนแพลตฟอร์มหลักทั้งหมดนอกกรอบ (ยกเว้นสำหรับ Windows ซึ่งเป็นซอฟต์แวร์เพิ่มเติม) รูปแบบได้รับการสนับสนุนในทุกแพลตฟอร์มหลักซึ่งช่วยให้การแลกเปลี่ยนระหว่างแพลตฟอร์มง่ายขึ้น ไม่เพียง แต่มันยังคงใช้เป็นวิธีในการสร้างคลังเก็บแบบพกพาได้ง่าย แต่ tar-pipe เป็น Unix สำนวนมาตรฐานสำหรับการคัดลอกแผนผังไดเรกทอรีโดยเฉพาะอย่างยิ่งในสภาพแวดล้อมที่แตกต่างกัน กล่าวโดยย่อคือมันอยู่ใกล้และใช้งานหนักเพราะมันทำในสิ่งที่ทำได้ดี


5
ด้วยความเคารพจากทุกคำตอบนี้สั้นง่ายและมัน ... อย่างใดไม่ทำงานสำหรับฉัน
ริ้น

5
... 1) "ดั้งเดิม"มีน้ำหนักน้อยกว่าศูนย์ในการพัฒนาซอฟต์แวร์ ไม่เช่นนั้นเราทุกคนจะเขียนโค้ดภาษาโคบอลบน IBM-360 โดยใช้การ์ดเจาะรู; พูดว่า "มันเป็นแบบดั้งเดิม" อธิบายอะไรเลย ...
ริ้น

5
... 2) "แพร่หลาย" ... จริงเหรอ? สิ่งหนึ่งที่ฉันสังเกตเห็นเมื่อเปลี่ยนจาก Unix เป็น Windows คือไม่มีใครใช้ tar และทุกอย่างกำลังดีถ้าไม่มีมัน เมื่อหลังจากการเขียนโค้ดที่มีความสุขหลายปีฉันเคยหันมาต้องการทาร์ตฉันใช้เวลาพอสมควรในการค้นหาเวอร์ชัน Windows นั่นแพร่หลายใช่ไหม ให้ฉันหยุดพัก ...
gnat

4
... 3) "ใช้งานได้" - ดีโดยไม่อธิบายว่าทำงานอย่างไรและทำไมทาร์ถึงทำเพราะนี่เป็นเพียงมือโบกมือ นานมาแล้ว แต่ฉันยังจำชนิดของช็อกเมื่อฉันเรียนรู้เกี่ยวกับน้ำมันดิน ยูทิลิตี้ที่ไม่บีบอัดรู้สึกเพียงไร้ประโยชน์สำหรับฉัน แน่นอนว่าฉันเข้าใจผิด แต่ถ้าย้อนกลับไปจะมีคนพยายาม "สั่งสอน" ฉันด้วยคำเดียวที่ใช้งานได้ฉันคิดว่า "ไม่มันช่วยตัวเองได้" ...
gnat

4
... สรุปความพยายามที่เป็นศูนย์นี้คำตอบที่ให้ความเห็นล้วนๆไม่มีคำอธิบายและบริบท ข้อความที่ทำขึ้นไม่ได้อธิบายหรือสำรองไว้กับอะไร ถ้อยคำทั่วไปที่มากเกินไปดูเหมือนจะย้ำเพียงสิ่งที่ระบุไว้ในคำถามถามแทนที่จะตอบมัน
ริ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.