thep's blog

ตอนที่แล้ว เราพูดถึงการรายงานบั๊กด้วย reportbug ในสถานการณ์ปกติไปแล้ว ซึ่งจะเห็นว่าสะดวกมากทีเดียว ที่ไม่ต้องเปิดเว็บเบราว์เซอร์เลย ถ้าเซ็ตระบบเมลไว้เรียบร้อย แต่ถ้าคุณใช้ระบบเมลอื่น เช่น web mail ที่ไม่ได้เชื่อมต่อกับระบบ debian ที่คุณใช้ล่ะ?

ปัญหาข้อแรกคือ reportbug จะส่งเมลโดยใช้ที่อยู่ในเครื่อง ซึ่งอาจจะเป็น user@localhost.localdomain ก็ได้ และอีกข้อหนึ่งคือ เมลจะส่งออกไปไม่ได้ ถ้าระบบของคุณไม่ได้เซ็ตไว้ให้รับ-ส่งเมล (ซึ่งเป็นเหตุผลที่คุณใช้ web mail)

Topic: 

ใครที่ใช้ sid อยู่ คงได้เห็นแล้วว่า GNOME 2.20 ได้ทยอยเข้า sid มาตั้งแต่วัน tarballs due (ก่อนประกาศออกรุ่นอย่างเป็นทางการ 3 วัน) ของ GNOME ทีเดียว ซึ่งกระบวนการ upload ของเดเบียนจะค่อยเป็นค่อยไปทีละขั้น เพื่อให้ผ่านขั้นตอนการ build บนสถาปัตยกรรมต่าง ๆ แบบอัตโนมัติด้วย ซึ่งนับถึงวันที่เขียนนี้ ส่วนหลัก ๆ ของตัวเดสก์ท็อปก็มาเกือบครบแล้ว (สถานะ)

Topic: 

เช่นเดียวกับโครงการซอฟต์แวร์เสรีทั่วไป คุณสามารถรายงานบั๊กที่พบขณะใช้เดเบียน เพื่อช่วยให้นักพัฒนาสามารถปรับปรุงแก้ไขข้อบกพร่องได้

ระบบติดตามบั๊กของเดเบียน จะทำงานผ่านเมลเป็นหลัก โดยมี web archive ให้ติดตามแต่ละบั๊กได้ ทุกสิ่งทุกอย่างที่คุณจะสั่งการบั๊ก ไม่ว่าจะเป็นการรายงาน การแสดงความเห็นเพิ่มเติม การติดแท็กหรือเปลี่ยนสถานะของบั๊ก จะสั่งการผ่านอีเมลทั้งหมด แต่ในขั้นตอนที่สำคัญและผู้ใช้อย่างคุณจะเกี่ยวข้องมากที่สุด คือการรายงานบั๊กนั้น มีเครื่องมือช่วยเหลือ ชื่อว่า reportbug

ถ้าระบบของคุณยังไม่มีแพกเกจนี้ ก็ติดตั้งก่อน

# apt-get install reportbug
Topic: 

หมายเหตุ: นี่คงเป็นรายการสุดท้ายสำหรับการกู้บทความเก่าของผม เขียนครั้งหน้าจะเป็นเนื้อหาใหม่แล้วครับ

เราได้พูดถึงคำสั่งสำหรับ build debian package ไปแล้วสองตัว คือ dpkg-buildpackage และ debuild ซึ่งตัวแรกจะใช้สร้าง .deb ส่วนตัวหลังจะเรียกตัวแรก ตามด้วยการตรวจสอบคุณภาพด้วย lintian/linda พร้อมทั้งเซ็นกำกับ (ถ้าระบุ) ..ครบทุกขั้นตอน

Topic: 

คล้าย ๆ กับที่ภาษาซีมี lint เป็นเครื่องมือตรวจสอบปัญหาในซอร์สโค้ด เดเบียนก็มีเครื่องมือที่ล้อชื่อกัน สำหรับตรวจสอบปัญหาในแพกเกจ คือ lintian แล้วก็มีเครื่องมือใหม่อีกชุดหนึ่งที่เกิดขึ้นทีหลัง คือ linda ถ้าคุณจะสร้างแพกเกจที่ใช้เผยแพร่ล่ะก็ คุณต้องไม่พลาดเครื่องมือทั้งสองนี้เด็ดขาด

นอกจากนี้ ในช่วงท้ายของตอนนี้ จะได้กล่าวถึง debuild ซึ่งเป็นเครื่องมือสร้างแพกเกจที่รวมทุกขั้นตอนไว้ให้คุณสั่งได้ง่าย ๆ

เมื่อคุณสร้างแพกเกจด้วยคำสั่ง dpkg-buildpackage แล้ว ก็สามารถตรวจสอบปัญหาด้วย lintian หรือ linda ได้โดยสั่งแบบนี้:

$ lintian -i package_version-release_arch.changes
$ linda -i package_version-release_arch.changes
Topic: 

เดเบียนมีระบบแพกเกจที่ค่อนข้างครบเครื่อง และการ build แพกเกจ ก็มีเครื่องมืออำนวยความสะดวกหลายตัว ใครสนใจหัด build deb ก็อ่าน Debian New Maintainers' Guide ได้ครับ เนื้อหาค่อนข้างครบครัน ในบทความนี้ เราจะมาดูเครื่องมือ build deb กันคร่าว ๆ ก่อน

ก่อนอื่น มาดูส่วนประกอบของ source สำหรับ debian package กันก่อน โดยลองดึง source ของแพกเกจสักตัวมาดู:

$ apt-get source package

Topic: 

แต่เดิมนั้น ผู้ใช้ที่จะติดตั้ง debian จากแผ่นจะต้องรู้เอง ว่าต้องบูตเครื่องจากซีดี โดยบางครั้งต้องเซ็ต BIOS จัดลำดับการบูตก่อนด้วย เชื่อว่าหลายคนเคยโดนถามจากปัญหาทำนองนี้มาแล้ว เพราะมันเป็นเรื่องปกติที่ผู้ใช้วินโดวส์จะติดตั้งโปรแกรมโดยไม่ผ่านการบูต

ข่าวดีก็คือ ใน debian-installer รุ่นที่กำลังพัฒนาอยู่นี้ ได้เพิ่มมอดูลใหม่คือ win32-loader ซึ่งจะเป็นโปรแกรม autorun เล็ก ๆ นำผู้ใช้เข้าสู่ระบบติดตั้งของ debian โดยเตรียมการบูตเข้า Debian Installer ผ่านบูตโหลดเดอร์ของวินโดวส์ (กล่าวคือ ไม่ต้องเซ็ต boot sequence ใน BIOS เลย ไม่ว่ากรณีใด ๆ) แล้วขึ้นข้อความให้รีบูตเครื่อง (แปลไทยแล้ว)

ดูคลิปขั้นตอนการลงได้:

    Topic: 

    เคยได้ยินเสียงบ่นจากผู้ใช้ที่คุ้นกับวินโดวส์บ่อย ๆ ว่าเวลาบูตลินุกซ์แล้วเจอข้อความเต็มไปหมด บังเกิดความกลัว หรือไม่ก็รำคาญที่อ่านไม่รู้เรื่อง ทั้งที่อันที่จริง ผมเองรู้สึกสบายใจที่ได้เห็นขั้นตอนต่าง ๆ โดยละเอียด ดีกว่าเอาฉากสวย ๆ มาบัง พอค้างแล้วก็ค้างเลย หาสาเหตุไม่ได้ สุดท้ายก็สูตรเดิม คือฟอร์แมต ลงใหม่

    แต่ถ้ามองว่าเขาคือ end-user จริง ๆ ยังไงก็ไม่สนใจจะดูขั้นตอนการบูตแน่ ๆ ก็ตั้งฉากกั้นให้เขาสบายใจขึ้นได้ หรือจะตั้งเล่น ๆ เพื่อความสวยงามเฉย ๆ ก็ไม่ว่ากัน ใน debian มี 3 วิธี คือใช้ bootsplash หรือใช้ usplash ของ ubuntu หรือ splashy ที่พัฒนาโดย debian เอง

    Topic: 

    ตามที่ติดค้างไว้ใน ตอนที่แล้ว เกี่ยวกับการทำ internet gateway ด้วย ipmasq ว่าจะพูดถึงการทำ transparent proxy นะครับ ซึ่งก็ไม่ยากอย่างที่คิด

    หลักการคือ ให้ส่งต่อแพ็กเก็ตจากเครื่องภายในที่ติดต่อไปยังพอร์ต 80 ให้ไปที่พอร์ตของ HTTP proxy (เช่น 3128 หรือพอร์ตอื่นตามแต่กำหนดขณะติดตั้งพร็อกซี) เพื่อที่การติดต่อเว็บจากเครื่องในเครือข่ายภายใน จะได้ผ่านพร็อกซีเสมอ โดยไม่ต้องตั้งค่าพร็อกซีอีก

    เริ่มจากติดตั้ง squid proxy ก่อน

    # aptitude install squid
    

    แล้วตั้งค่า squid ตามปกติ อาจจะทดสอบการทำงานของพร็อกซี โดยเปิดเว็บเบราว์เซอร์ในเครื่องลูก แล้วตั้งค่าพร็อกซีก่อนเปิดเว็บต่าง ๆ ดูก่อน แล้วดู access log ของ squid ที่ /var/log/squid/access.log ว่ามี request เข้ามา

    การตั้ง internet gateway ภายในบ้าน หรือในองค์กร เพื่อใช้หมายเลขไอพีหมายเลขเดียวที่ได้มาเป็นทางผ่านสู่อินเทอร์เน็ตให้กับเครื่องลูกข่าย ทำได้ด้วยเทคนิคที่เรียกว่า IP Masquerade และสามารถเขียนกฎ firewall ในการกรองแพ็กเก็ตต่างๆ ได้ด้วย ทั้งหมดนี้ อาศัยกลไกในเคอร์เนลลินุกซ์ที่เรียกว่า netfilter (สำหรับเคอร์เนล 2.4 ขึ้นไป ถ้าเป็นรุ่นเก่ากว่านั้นจะเป็น ipchain และ ipfwadm) คำสั่งที่ใช้ตั้งกฎก็คือ iptables

    ฟังดูยุ่งยาก แต่ในเดเบียนมีแพกเกจที่ช่วยให้ตั้งเกตเวย์ได้อย่างรวดเร็ว คือ ipmasq ซึ่งจะมีคำสั่งช่วยตรวจสอบ route table แยกแยะ interface ที่เป็น public IP และเครือข่ายภายใน แล้วสร้างกฎ iptables เพื่อให้ทำ IP masquerade จากภายในสู่ภายนอก พร้อมทั้งทำ firewall กันแพ็กเก็ตจากภายนอกโดยอัตโนมัติ

    Pages

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