build กันเสร็จแล้ว ก็มาเริ่มใช้โปรแกรมที่ build กันนะครับ
ก่อนจะเริ่มใช้ มีประเด็นเรื่อง DBus ที่เราวางแผนไว้ว่าจะใช้ของระบบ ปัญหาก็คือ โดยปกติ DBus จะรู้จัก service เฉพาะของระบบเท่านั้น ถ้าบังเอิญ GNOME รุ่นใหม่ที่เรา build มีการสร้าง service ใหม่โดยไม่ได้ register กับ DBus โปรแกรมบางโปรแกรมที่เรา build ก็จะเรียกไม่ขึ้น หรือไม่ก็ crash ไปดื้อ ๆ
เราทำให้ DBus รู้จัก service ของเราได้โดยเพิ่มแฟ้ม /etc/dbus-1/session-local.conf และ /etc/dbus-1/system-local.conf โดยมีเนื้อหาดังนี้:
ติดตั้ง 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+ เอง
ตอนที่แล้ว วางแผนกันแล้ว คราวนี้มาเริ่มติดตั้ง JHBuild กัน
JHBuild รุ่นล่าสุดสำหรับ GNOME สามารถ check out ได้จาก GNOME SVN:
$ svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild
คุณสามารถใช้โพรโทคอล svn:// ก็ได้ ถ้า http:// ใช้ไม่ได้ในเครือข่ายของคุณ:
$ svn co svn://svn.gnome.org/svn/jhbuild/trunk jhbuild
(สำหรับคนที่มี svn account กับ GNOME ก็ใช้ svn+ssh:// นะครับ)
เมื่อ check out มาแล้ว สำรวจดูจะเห็น autogen.sh และ configure.ac ดูเหมือนต้องใช้ autotools แต่ไม่ต้องครับ กรณีนั้นใช้กับการ build พวกเอกสารเท่านั้น ถ้าคุณเพียงแต่จะใช้ build โปรแกรมอย่างเดียว ก็นี่เลย:
$ make -f Makefile.plain install
จะติดตั้ง jhbuild ไว้ที่ $HOME/bin ของคุณ แถมติดตั้งเมนูเรียก jhbuild แบบ GUI ไว้ที่เมนู Applications > Programming อีกต่างหาก.. แต่เอาเข้าจริง ผมไม่ได้ใช้ GUI หรอก เพราะส่วนมากจะสั่ง build แบบ background มากกว่า ดังจะกล่าวต่อไป
ค่า config ของ jhbuild กำหนดที่ ~/.jhbuildrc เป็นแฟ้มภาษา python โดยจะมีตัวอย่างของแฟ้มนี้อยู่ในแฟ้ม sample.jhbuildrc ใน source tree ของ jhbuild คัดลอกไปแก้ได้เลย ค่าสำคัญที่น่าสนใจได้แก่:
svnroots['svn.gnome.org'] svn+ssh://... URL จะได้ commit ได้ด้วย แต่สำหรับ anonymous user ก็ไม่จำเป็นต้องตั้งค่านี้ ยกเว้นกรณีที่ค่าปริยายใช้ไม่ได้ในเครือข่ายของคุณ moduleset จัดให้ตามคำขอครับ สำหรับผู้สนใจใช้ GNOME แบบ bleeding edge ซึ่งมีหลายวิธี ตามดีกรีความเป็น geek ของคุณ:
บทความนี้จะอธิบายวิธีที่ใช้ JHBuild นะครับ