apt-listchanges: ดูซิ มีอะไรใหม่

อยากรู้ว่าแพกเกจที่ปรับเป็นรุ่นใหม่ทุกวันเนี่ย มีอะไรใหม่ใช่ไหม? มีเครื่องมือให้อ่าน changelog ก่อนติดตั้งได้ คือ apt-listchanges

# aptitude install apt-listchanges

แพกเกจจะถามว่าต้องการอ่าน changelog แบบไหน ระหว่าง:

  • pager โดยใช้ more หรือ less อ่านทีละหน้าในโหมดตัวอักษร
  • browser โดยเปิดแบบ HTML ในเว็บเบราว์เซอร์
  • xterm-pager, xterm-browser เหมือน pager, browser ตามลำดับ แต่เปิดใน xterm ต่างหาก
  • text โดยแสดงออกทางเทอร์มินัลโดยไม่มีการหยุด
  • mail โดยส่งเป็นเมล
  • none ไม่ต้องแสดง

โดยทั่วไป แบบ pager น่าจะเหมาะที่สุด แต่ถ้าระบบของคุณสั่งปรับรุ่นแบบอัตโนมัติ (เช่น ผ่าน cron) ก็อาจจะใช้แบบ mail

รายการเปลี่ยนแปลงที่แสดงจะมีสองชนิด คือ changelogs กับ news ซึ่งสามารถเลือกได้ ว่าจะอ่านอย่างใดอย่างหนึ่งหรือทั้งสองอย่าง ถ้าคุณขี้เกียจอ่าน อย่างน้อย ๆ ก็ขอแนะนำให้อ่าน news เพราะจะเป็นการประกาศข่าวที่สำคัญเกี่ยวกับแพกเกจ เช่น การเปลี่ยนรูปแบบ configuration file, การย้ายที่ของไฟล์, ปัญหาร้ายแรงที่พบในรุ่นก่อนและวิธีแก้ไข ฯลฯ ส่วน changelogs นั้น เป็นรายการเปลี่ยนแปลงอย่างละเอียด ว่ารุ่นนี้ผู้ดูแลทำอะไรเพิ่มเติมไปบ้าง

apt-listchanges จะแสดงเฉพาะรายการที่เปลี่ยนแปลงเพิ่มจากการติดตั้งครั้งล่าสุดของเราเท่านั้น (ถ้าอยากอ่านทั้งหมดก็กำหนดได้) หลังจากอ่านเสร็จแล้ว ก็ออกจาก pager โดยกด q มันจะถาม ว่าจะดำเนินการติดตั้งต่อไปหรือไม่ (ถ้าจะไม่ให้มันถาม ก็ตั้งค่าได้อีกเหมือนกัน) ก่อนที่จะเริ่มแตกและตั้งค่าแพกเกจต่างๆ

อีกวิธีหนึ่งที่จะอ่าน changelog ได้โดยไม่ต้องดาวน์โหลดแพกเกจมาก่อน คือใช้คำสั่งของ aptitude:

# aptitude changelog package

แต่เนื่องจาก aptitude ไม่ได้มีการติดตามการอ่าน changelog ของเรา มันจึงแสดง changelog ทั้งหมดของแพกเกจตั้งแต่ต้นจนจบเสมอ

ผมว่า ใช้ apt-listchanges นั่นแหละ ลงตัวที่สุดแล้ว

การอ่าน changelog นอกจากทำให้ได้รู้ความเปลี่ยนแปลงของแพกเกจต่างๆ แล้ว ยังทำให้ได้เรียนรู้กระบวนการทำงานในชุมชนเดเบียนไปด้วย คุณจะได้สังเกตเห็นองค์ประกอบต่างๆ ของการอัปโหลดแต่ละครั้ง เช่น:

  • version สังเกตการนับรุ่นของแพกเกจ เช่น 2.16.2-3.1 หมายถึง upstream version 2.16.2 ซึ่งนำมา build เป็น deb โดยผู้ดูแลแพกเกจเองเป็นรุ่นที่ 3 และ รุ่นนี้ เป็น Non-maintanier upload (NMU) ครั้งที่ 1 ซึ่ง NMU หมายถึงการอัปโหลดโดยผู้ที่ไม่ใช่ผู้ดูแลแพกเกจโดยตรง อาจจะเพื่อช่วยแก้ปัญหาบางอย่างแทน ในระหว่างที่ผู้ดูแลเองไม่สะดวกจะทำเอง
  • urgency แพกเกจปกติจะอัปโหลดด้วย urgency=low ซึ่งแพกเกจจะใช้เวลาอยู่ใน unstable 10 วัน ก่อนย้ายเข้า testing เป็นการเปิดโอกาสรับ bug report และแก้ไขก่อน ส่วน urgency=medium จะใช้เวลา 5 วัน ใช้ในกรณีที่แก้ bug ร้ายแรง นอกจากนี้ก็มี urgency=high และ critical อีก ซึ่งจะใช้กับกรณีรีบด่วน เช่นการแก้ security bug เท่านั้น
  • unstable/experimental เป็นการระบุว่า แพกเกจนี้ อัปโหลดเข้า unstable (sid) โดยตรง หรือเข้า experimental
  • closes: #xxxxxx เป็นการระบุ bug ที่แพกเกจนี้ปิด ซึ่งระบบอัปโหลดแพกเกจของเดเบียนจะอาศัยข้อมูลตรงนี้ สื่อสารกับระบบ Bug Tracking System เพื่อปิดบั๊กโดยอัตโนมัติ
  • คำศัพท์อื่นๆ ที่จะพบ ส่วนมากมักเป็นตัวย่อ เช่น NMU, RC bug, FTBFS ใครที่เคยอ่าน New Maintainer's Guide หรือเอกสารอื่นๆ ของเดเบียน คงจะผ่านตามาบ้าง คุณจะได้เห็นการใช้คำเหล่านี้ในบริบทจริง และทำให้เข้าใจการใช้งานมากขึ้น เมื่ออ่าน changelog ไประยะหนึ่ง

news และ changelog ของแพกเกจต่างๆ จะเก็บไว้ที่ไดเรกทอรี /usr/share/doc/package ในชื่อ NEWS.Debian.gz และ changelog.Debian.gz ซึ่งคุณสามารถอ่านได้ทุกเวลาที่ต้องการ นอกเหนือจากการอ่านจาก apt-listchanges

Topic: 
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้