ติดตั้ง ThunderBird 3 บน Ubuntu

บังเอิญคิดเล่นๆ ว่าทำไมเวลาติดตั้งโปรแกรมยังต้องหาแพคเกจ .deb ซึ่งมีอีกหลากหลายวิธีในการติดตั้งโปรแกรมไม่ว่าจะเอา binary มาใช้งานตรงๆ หรือเอา source code มาคอมไพล์ ฯลฯ แต่นึกขึ้นได้ว่าทำไมเวลาของใหม่ๆ มันออกมา Ubuntu มักจะล้าหลังเสมอไม่ยอมเข้า repository สักที ทั้งๆที่มี package maintainer อยู่แล้ว เอาเป็นว่าค้นหาได้จาก ppa ครับ 😛 ใน personal package archive มีโครงการ ubuntu-mozilla อยู่เราเรียกใช้ branch ppa ที่ชื่อ ubuntu-mozilla-daily รับรองได้ของสดใหม่อย่างแน่นอน
เอาล่ะมาติดตั้ง Thunderbird กัน

  • เพื่ม repo ลงใน source.list และเพิ่ม key ในการเรียกใช้ ppa
    sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa
  • จากนั้นก็ update cache repo แล้วติดตั้งได้เลย
    sudo aptitude update && sudo aptitude install thunderbird-3.0 thunderbird-3.0-gnome-support

เท่านี้ก็ได้ thunderbird 3 มาใช้กันแล้ว

ผลทดสอบประสิทภาพ Ubuntu 8.10, Linux Mint 6 และ gOS 3.1

gOS และ Linux Mint เป็นดิสทริบิวชั่นที่เป็นที่จับตามองซึ่งทั้งคู่พัฒนามาจาก Ubuntu โดยทั้งคู่พัฒนาสิ่งใหม่ๆ เพิ่มเติมเข้าไปเพื่อตอบสนองการใช้งานของผู้ใช้ gOS มาพร้อมกับ WINE และ Google Grear ซึ่งเน้นความง่ายในการใช้งานเชื่อมโยงกับ Web 2.0 ในขณะที่ Linux Mint มาพร้อมกับชุดปรับแต่งพร้อมใช้เน้นความง่ายในการใช้งานทางด้านเดสท็อป โดยใช้ user interface ที่เหมือนกันทั้งชุด แถม driver, plug-ins, media codec และ package อื่นๆ หากถามเรื่อง performance ก้ออาจจะสงสัยกันอยู่ว่าลินุกซ์ 2 ตัวนี้เมื่อเปรียบเทียบกับ ubuntu ต้นฉบับแล้วตัวไหนดีกว่ากัน มาลองดู performance test ของ Ubuntu 8.10, gOS 3.1 และ Linux Mint 6 กันครับ

สำหรับการทดสอบ เราใช้โน๊ตบุค Lenovo ThinkPad T400 ใช้ CPU Intel Core 2 Duo T9600 ความเร็ว 2.80GHz ฮาร์ดดิสก์ความจุ 160GB ใช้ชิบประมวลผลกราฟิก Intel GMA 4500 แสดงผลความละเอียดหน้าจอที่ 1440×900 pixels มาดู Linux ที่ใช้ทดสอบแต่ละตัวกันบ้างครับเริ่มที่ Ubuntu 8.10 ใช้ Kernel เวอร์ชั่น 2.6.27, X Server 1.5.2, xf86-video-intel 2.4.1, Mesa 7.2 และ GCC 4.3.2 ใน gOS 3.1 Gadgets ใช้ Kernel เวอร์ชั่น 2.6.24 , GNOME 2.22.2, X Server 1.4.0.90, xf86-video-intel 2.2.1, Mesa 7.0.3-rc2, and GCC 4.2.4. และ Linux Mint 6 ใช้ package จาก Ubuntu 8.10 ซึ่งข้อมูลพื้นฐานเหมือนกันกับ Ubuntu 8.10 Continue reading ผลทดสอบประสิทภาพ Ubuntu 8.10, Linux Mint 6 และ gOS 3.1

สร้าง Meta Package สำหรับ Debian/Ubuntu กัน

ได้อานิสงฆ์มาจากการไปเรียน Training 11 คุณครูหมีเท็ดดี้บอกแว๊บๆ ว่ามีเครื่องมือในการสร้าง Meta Package ได้ง่ายๆ ผมเองก้อไม่ได้สนใจอะไรเพราะชอบ build deb แบบดุ้นๆ เพิ่งจะมาได้ดูเมื่อ 2 วันที่แล้วนี่เอง ลองเล่นดูก้อพบว่า เอ๊ะมันง่ายเกินไปหรือเปล่า เอาล่ะโปรแกรมที่ช่วยเราทำ Meta Package แบบง่ายๆ นี้ชื่อว่า equivs ใครยังไม่มีก้อติดตั้งได้เลยครับ

sudo apt-get install equivs

สำหรับ การใช้งานก้อไม่ยากครับ equivs จะมีเครื่องมือสร้าง control file คล้ายๆ กับการสร้างไฟล์ spec ไฟล์ของแพคเกจแบบ RPM แต่ไฟล์ที่ได้นี้จะ compile ได้ด้วย equivs ไม่ได้ครับ เรามาลองสร้าง control ไฟล์กันก่อนครับ สั่งสร้าง control ไฟล์โดยใช้คำสั่ง

equivs-control package-thai-setup.ctl

ลืมบอกไปว่าเราจะสร้างแพคเกจติดตั้งภาษาไทย ฟอนต์ และอื่นๆ ในไฟล์ package-thai-setup.ctl ที่เราได้ก้อจะมีหน้าตาอย่างนี้ครับ

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2
Package: <package name; defaults to equivs-dummy>
# Version: <enter version here; defaults to 1.0>
# Maintainer: Your Name <yourname@example.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: <short description; defaults to some wise words>
long description and info
.
second paragraph

ซึ่ง เป็น template ง่ายๆ ให้เราแก้ไขได้ เอาล่ะสิ่งที่เราต้องทำคือใส่ชื่อแพคเกจ เวอร์ชั่น ใครเป็นคนดูแล เพคเกจนี้ต้องมีแพคเกจอะไรบ้าง (ในส่วน depends) กำหนด Architecture, Copyright และใส่รายละเอียดว่าแพคเกจที่เราสร้างคือแพคเกจเกี่ยวกับอะไร ผมใส่รายละเอียดได้แบบนี้ครับ

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2
Package: package-thai-setup
Version: 1.0ubuntu1
Maintainer: Anuchit Chalothorn <anoochit@gmail.com>
# Pre-Depends: <comma-separated list of packages>
Depends: language-pack-th-base, language-pack-th, language-pack-gnome-th-base, language-pack-gnome-th, language-support-fonts-th, language-support-input-th, language-support-translations-th, language-support-writing-th
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: i386
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: setup for Thai language package
This package for Thai language package setup for all Thai locale, input method and display.

จากนั้นก้อ สั่ง compile package กันได้เลยโดยใช้คำสั่ง

equivs-build package-thai-setup.ctl

เรา ก้อจะได้ไฟล์ package-thai-setup_1.0ubuntu1_i386.deb ออกมาแล้ว หากเราสั่งติดตั้งแพคเกจนี้ ตัวติดตั้งก้อจะดาวน์โหลดแพคเกจที่เป็น depends มาให้เรา ซึ่งถือว่าเป็นการสร้างแพคเกจ .deb แบบง่ายสุดๆ ซึ่งสามารถใช้งานได้กับ debian และ ubuntu เลยล่ะ 🙂

ทำ Ubuntu Repository ใช้เองแบบดูดีหน่อย

สืบเนื่องมาจากโครงการพัฒนาลีนุกซ์ฉบับกระเป๋า เมื่อปีที่แล้ว เขียนโครงการไว้นานทำออกมาได้ 2 release แล้วเลิกทำครับ เพราะเข้าใจว่าการ remaster มาผิดทาง เอาเป็นว่าไม่ต้องพูดถึงมันก้อแล้วกันครับ หลายเดือนที่ผ่านมาได้ทดลองประกอบ Ubuntu จนพอเข้าใจบ้างแล้วว่าจะทำ ลีนุกซ์ในแบบฉบับของผมทำได้ยังไง เอาละมาถึงข้อใหญ่ในการทำ repository เพื่อการสนับสนุนซอฟต์แวร์ใหม่ๆ ใน โครงการพัฒนาลีนุกซ์ฉบับกระเป๋า กันครับ จากโครงร่างของ repositry ของ Advance Packaging Tool (APT) ทำให้ทราบว่าการแบ่ง รุ่นในแต่ละเวอร์ชั่นทำโดยการสร้างฐานข้อมูลของ Package ในไดเรคทอรี dists ซึ่งใน dists นี้ก้อจะมี ไดเรคทอรีที่เป็นชื่อแต่ละเวอร์ชั่นอยู่ ในนั้นก้อจะมีไฟล์ฐานข้อมูล Package อยู่ เอาล่ะ คราวนี้ผมก้อแก้ปัญหาในเรื่อง repository กลาง และ การซัพพอร์ทในแต่ละเวอร์ชั่นของโครงการพัฒนาลีนุกซ์ฉบับกระเป๋าได้แล้ว
แนวความคิดในการทำ repository แบบนี้สามารถประยุกต์ใช้ในองค์กรได้ เช่น ฝ่าย IT สามารถทำ repository เล็กๆ เก็ยไฟล์โปรแกรมใหม่ๆ ที่ผ่านการทดสอบแล้วว่าใช้ได้ดี หรือ จัดทำ แก้ไข ใหม่ แล้วเอาไปใส่ไว้ให้เพื่อนๆ พนักงานได้ apt-get ไปใช้กันได้ในสำนักงาน ขั้นตอนง่ายๆ ในการทำ repository มีไม่ยากครับ คือ เอา .deb ของเรานี่แหละไปใส่เอาไว้ที่ไดเรคทอรีที่เก็บไฟล์ deb เอาไว้ ยกตัวอย่างเช่น pool/main เป็นต้น แล้วสร้างฐานข้อมูล Package ออกมาให้เก็บไว้ในไดเรคทอรีในแต่ละเวอร์ชั่น Continue reading ทำ Ubuntu Repository ใช้เองแบบดูดีหน่อย