จุดประสงค์ของแพตช์ของเคอร์เนล linux คืออะไร?


21

สำหรับ Linux kernel แต่ละรุ่นจะมีไฟล์แพตช์ให้ดาวน์โหลด ตัวอย่างเช่นlinux-3.12.22มีpatch-3.12.22 ที่สอดคล้องกัน

จุดประสงค์ของการแก้ไขคืออะไร? หากต้องการแก้ไขเคอร์เนลที่สอดคล้องกันเสมอก่อนที่จะรวบรวมหรือนำเวอร์ชันเคอร์เนลรุ่นเก่ามาอัพเดทกับเคอร์เนลที่แพทช์ตรงกัน (3.12.22 ในกรณีนี้)

คำตอบ:


31

จุดประสงค์คือเพื่อประหยัดปริมาณการใช้ข้อมูลจำนวนมาก

ลินุกซ์ tarball อยู่ที่ประมาณ 75MB ในขณะที่แพตช์มักจะมีไม่กี่ KB

ดังนั้นหากคุณรวบรวมเคอร์เนลของคุณเองและอัปเดตเป็นเวอร์ชั่นย่อยใหม่ทุกวันที่วางจำหน่ายแทนการดาวน์โหลด tarball 75MB ใหม่สำหรับการอัปเดตย่อยแต่ละครั้งคุณเพียงดาวน์โหลด (ตัวอย่าง) tarball หลักสำหรับเวอร์ชันที่กำหนดหนึ่งครั้งจากนั้น แพตช์สำหรับเวอร์ชั่นที่คุณต้องการ เมื่อมีการอัพเดทคุณจะต้องใช้ tarball หลักที่ดาวน์โหลดมาแล้วอีกครั้ง

linux-3.14.tar.xz+ patch-3.14.{1..n}.xzทั้งหมดต่ำกว่า 100MB

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xzคือหลายครั้ง 100MB

ไม่มีข้อเสียในการแก้ไขผลสุดท้ายเหมือนกันเว้นแต่ว่าคุณทำอะไรผิด


9
ตามที่เขียนไว้นี้ไม่ได้ตอบคำถาม เพื่อให้ชัดเจนจุดประสงค์ของแพตช์คือการใช้มันกับเวอร์ชัน n-1 ของซอร์ส "อัปเกรด" เป็นเวอร์ชัน n ประโยชน์ก็คือว่ามันจะช่วยประหยัดจำนวนมากเข้าชมเป็นคำตอบที่อธิบาย
David Richerby

1
ฉันไม่ใช่เจ้าของภาษา แต่ข้อดีก็ฟังดูอ่อนแอเกินไปสำหรับฉัน การประหยัดแบนด์วิดท์ / ปริมาณข้อมูลเป็นสิ่งสำคัญสำหรับเซิร์ฟเวอร์ใด ๆ มันมีจุดประสงค์
frostschutz

ส่วนที่คุณไม่ได้รับคำตอบอย่างชัดเจนก็คือ "ในการแก้ไขเคอร์เนลที่สอดคล้องกันก่อนที่จะรวบรวมหรือนำเวอร์ชั่นเคอร์เนลรุ่นเก่ามาอัพเดทกับเคอร์เนลที่แพทช์ตรงกัน (3.12.22 ในกรณีนี้)? " patch-3.12.22 คือการอัพเกรดจากเวอร์ชั่น 3.12.21 เป็น. 22 ซึ่งไม่สามารถใช้กับแหล่งข้อมูล 3.12.22 ก่อนทำการคอมไพล์
David Richerby

แพทช์เป็นปกติเช่น.0 VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22มันจะน่ารำคาญไปผ่าน 20 แพทช์ ...
frostschutz

รูปแบบการประหยัดทราฟฟิกจะดีกว่าเช่นการมี git clone ของที่เก็บและทำอย่างไรgit pullเมื่อมีการปล่อยเวอร์ชั่นใหม่
Ruslan

5

สิ่งเหล่านี้เรียกว่า "patchset" Patchset เป็นกลุ่มของแพตช์ที่ให้บริการฟังก์ชั่นเดียวกันมีความเกี่ยวข้องหรือใช้ฟังก์ชั่นในขั้นตอน โดยเฉพาะอย่างยิ่งสิ่งเหล่านี้คือความแตกต่างระหว่างการแก้ไขครั้งใหญ่ของเคอร์เนล (XY) และการแก้ไขเล็กน้อย / การบำรุงรักษาครั้งต่อไป (XY Z ) ที่มีข้อเสนอหลายประการ:

  • ประหยัดพื้นที่บนเซิร์ฟเวอร์
  • ประหยัดแบนด์วิดธ์
  • เป็นเรื่องง่ายที่ใช้และแจกจ่าย

โปรดจำไว้ว่า patchsets เหล่านั้นเพิ่มขึ้น ก่อนอื่นคุณต้องใช้โปรแกรมแก้ไข. 1 ก่อนหน้าโปรแกรมแก้ไข. 2 และหลังจากนั้นคุณสามารถใช้โปรแกรม. 3

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