ติดตั้ง JHBuild พร้อม config ไปแล้วก็ลงมือ build กัน
วิธีที่จะสั่ง build แพกเกจทั้งหมดที่ config ไว้ โดยเริ่มตั้งแต่ check out, configure, make, install ก็คือ:
$ jhbuild build
JHBuild จะตรวจสอบ dependency ของ module ที่กำหนด แล้วไล่ build ตั้งแต่ปลายสุดขึ้นมาตามลำดับ
แต่คุณก็เลือก build เฉพาะสิ่งที่ต้องการ แทนที่จะ build GNOME desktop ทั้งตัวได้เหมือนกัน:
$ jhbuild build gtk+
จะ build สิ่งที่ gtk+ ต้องการตามลำดับขึ้นมาจนถึงตัว gtk+ เอง
ในกรณีที่ build ไม่ผ่านที่บาง module จะมีตัวเลือกขึ้นมาถาม เช่น:
*** error during stage build of ORBit2: ########## Error running make *** [1/1] [1] rerun stage build [2] ignore error and continue to install [3] give up on module [4] start shell [5] go to stage force_checkout [6] go to stage configure choice: _
คุณสามารถเลือกตัวเลือกต่าง ๆ ได้ ตามปกติถ้าไม่มีเวลาดู ผมก็อาจจะเลือกข้อ 2 เพื่อฝืนให้มันทำต่อไป แล้ว module ต่อ ๆ ไปก็จะใช้รุ่นเก่าที่ผม build ไว้ครั้งก่อน แต่ถ้าเป็นการ build ครั้งแรก คุณคงเลือกข้อ 3 จะดีกว่า แพกเกจไหนที่ต้องใช้แพกเกจนี้ก็จะไม่ถูก build
ถ้าคิดอยากจะลองแก้บั๊กด้วยตัวเอง ก็เลือกข้อ 4 เพื่อเข้าเชลล์ไปตรวจสอบและแก้บั๊ก แล้ว exit กลับออกมาที่ prompt เดิมนี้ แล้วเลือกข้อ 1 ให้มันพยายาม build ใหม่
คำตอบสำหรับคำถามนี้ คงไม่มีหลักตายตัว อาศัย programming sense ของคุณละกัน :-)
มีวิธี build แบบ non-interactive ด้วย เช่น คุณอาจจะไปสั่ง build แบบ remote ที่เครื่องอื่นในแบบ daemon หรือ cron job ก็ได้ โดยสั่ง:
$ jhbuild tinderbox -o output-dir
โดยมันจะเก็บ build log ในรูป HTML page ลงใน output-dir (ตัวอย่าง) และเลือกตัวเลือก "give up on module" โดยอัตโนมัติสำหรับ module ที่ไม่ผ่าน
ผมชอบใช้แบบ tinderbox มาก เพราะประหยัดเวลาดี ผมสามารถสั่งให้มัน build แบบ background ไว้ แล้วก็ไปทำงานอื่นได้ สักพักก็กลับมาเช็กว่ามี error ที่ module ไหนบ้าง แล้วก็ตามซ่อมเป็นตัว ๆ ไป
การสั่ง build เพียง module เดียวเท่านั้น โดยไม่ต้อง build dependency ของมัน (เช่น ในกรณีที่จะกลับมาซ่อม module ที่ build ไม่ผ่าน) ก็ใช้คำสั่ง:
$ jhbuild buildone module
การใช้งานอีกลักษณะหนึ่งที่หลายคนอาจสนใจ คือการแยกขั้นตอน check out กับการ build ออกจากกัน อาจจะดีสำหรับคนที่ build ในเครื่องที่ไม่ได้ต่อเน็ตตลอดเวลา (คนหิ้วโน้ตบุ๊กอาจจะนึกออก) ก็อาจจะ check out ให้เสร็จทีเดียว แล้วค่อย build แบบ off-line ทีหลัง
สั่ง check out source ทั้งหมดโดยไม่ build ได้โดย:
$ jhbuild update
และ build แบบ off-line ได้โดยเพิ่มตัวเลือก -n หลังคำสั่งของ JHBuild เช่น:
$ jhbuild tinderbox -n -o output-dir
build กันไปก่อนนะครับ คราวหน้ามาดูวิธีเรียกโปรแกรมแบบแบ่งภาคกัน