ติดตั้งฟอนต์ไทยให้ครบชุดจากคลังซอฟต์แวร์ของ Suriyan

ทีมพัฒนา Suriyan ได้เปิดคลังซอฟต์แวร์ให้บริการนักพัฒนาและผู้ที่สนใจมาระยะหนึ่ง ซึ่งได้รับการตอบรับอย่างมาก ไม่ว่าจะเป็นผู้ใช้จาก Suriyan, Ubuntu หรือแม้กระทั่ง Debian สำหรับในรุ่นใหม่นี้ ผู้ที่ใช้งาน Ubuntu 10.04 Lucid Lynx สามารถติดตั้งซอฟต์แวร์และแพคเกจต่างๆ ที่มีอยู่ใน Suriyan ได้ วันนี้มีชุดฟอนต์ภาษาไทยมานำเสนอครับ ฟอนต์ภาษาไทยใน Suriyan รวบรวมมาจากหลายแหล่ง จากชุมชน สมาคม และจากซิป้าเอง ทำให้ Suriyan ได้เปรียบเรื่องฟอนต์ภาษาไทยเมื่อเทียบกับ Linux Distribution อื่นๆ แต่ทางทีมพัฒนาเองได้แบ่งปันคลังซอฟต์แวร์ให้ได้เรียกใช้กันง่ายๆ ติดตั้งกันได้ง่ายๆ ใครอยากได้ฟอนต์สวยๆ เพิ่มเติม มาติดตั้งกันเลย
ใครยังไม่ได้ติดตั้ง suriyan-repository ให้ติดตั้งก่อนครับ ใครติดตั้งแล้วข้ามขั้นตอนต่อไปได้เลย

wget http://www.suriyan.in.th/repo/pool/main/s/suriyan-repository/suriyan-repository_1.0-8_all.deb
sudo gdebi suriyan-repository_1.0-8_all.deb
sudo apt-get update

จากนั้นติดตั้งฟอนต์กันได้เลยครับ

sudo apt-get suriyan-thai-fonts

เท่านี้ก็ได้ฟอนต์ภาษาไทยใน collection ของ Suriyan กันแล้ว 🙂 ง่ายมั๊ย

การใช้งาน Suriyan Repository สำหรับ Ubuntu 10.04 Lucid Lynx

Suriyan 53.04 ใช้ Ubuntu 10.04 เป็นดิสโตรตั้งต้นในการพัฒนา ซึ่งการพัฒนาหลักๆ คือการเพิ่มและปะในส่วนที่ขาดเพื่อเสริมให้ Ubuntu เหมาะสมกับการใช้งานภาษาไทยมากขึ้น ดังนั้นคลังซอฟต์แวร์หรือ Software Repository สามารถเรียกใช้ข้ามกันได้ ทางทีมพัฒนาไม่ได้ปิดกั้นแต่อย่างใด วิธีการก็เหมือนกับการเรียกใช้งานก็เหมือนกับการเรียกใช้งาน Repository อื่นๆ วิธีง่ายที่สุดคือการติดตั้ง package ที่ชื่อ suriyan-repository เพื่อติดตั้ง key และข้อมูลคลังซอฟต์แวร์ วิธีการติดตั้งมีดังนี้
ดาวน์โหลดไฟล์แพคเกจ suriyan-repository มาก่อนครับ

wget http://www.suriyan.in.th/repo/pool/main/s/suriyan-repository/suriyan-repository_1.0-8_all.deb

จากนั้นสั่งติดตั้งโดยใช้คำสั่ง

sudo gdebi suriyan-repository_1.0-8_all.deb

จากนั้นก็ Update cache

sudo apt-get update

มาลองติดตั้ง package ของ Suriyan กันเลย ตัวอย่างเช่น suriyan-wallpaper-extra

sudo apt-get install suriyan-wallpaper-extra

สำหรับรายการ package ดูรายชื่อได้ที่ Suriyan Development Wiki

สร้าง Ubuntu/Debian Repository ใช้เองภาค reprepro ตอนที่ 2

จากตอนที่แล้วเราได้ repo เพื่อเตรียมเอาไว้ใช้บริการผู้ที่ต้องการติดตั้งโปรแกรมจาก repo เราไปแล้ว ในตอนที่ 2 นี้จะเกี่ยวกับเรื่องของการจัดการ package โดยที่นักพัฒนาหรือผู้ดูแล package ต้องการอัพโหลดขึ้น repo server ด้วยตัวเอง ไม่ต้องสั่ง include package เป็นครั้งๆ ไป Debian มีเครื่องมือให้เราใช้เช่นกันครับ เราจะมาใช้เครื่องมือที่ชื่อ dupload
dupload เป็นเครื่องมือที่ออกแบบมาเพื่อใช้ในการอัพโหลด package ไปยัง repo ต่างกันได้ ซึ่งจะทำให้ง่ายในการ contribute package ของนักพัฒนาและผู้ดูแล apckage นั้นๆ เอาล่ะเรามาเริ่มติดตั้งและ config เจ้า dupload กันดีกว่าครับ เริ่มแรก ติดตั้งกันก่อน ใช้คำสั่ง

sudo apt-get install dupload

จากนั้นเราต้องไป config ค่า repo ให้กับ dupload กันก่อน ที่ ~/.dupload.conf หรือที่ /etc/dupload.conf ก็ได้ การ config นั้เราจะกำหนด repo server ปลายทางที่เราต้องการจะ upload package ขึ้นไป เช่น

$cfg{'example'} = {
fqdn => "example.com",
login => "steve",
method => "scpb",
incoming => "/incoming/",
# The dinstall on ftp-master sends emails itself
dinstall_runs => 1,
};

อธิบายกันก่อน config ข้างบนเป็นการบอกว่าเรามี repo server ชื่อเล่นว่า example โดยมี domain ชื่อเต็มๆ ว่า example.com ใช้ login ว่า steve ใช้ scpd เป็น protocal ในการ upload ไฟล์ มีไดเรคทอรี /incoming เป็นไดเรอทอรีปลายทางของ package ที่เร upload ขึ้นไป
หากต้องการปรับปรุงให้เข้ากับความต้องการของคุณก็เพียงแค่แก้ไข hostname, login, incoming dir แค่นี้ก็ได้แล้วครับ อ้อ หากคุณต้องการให้ upload package โดยใช้ anonymous FTP ก็สามารถแก้ไขได้ครับ เอาล่ะ วิธีการ upload ก็ง่ายๆ ครับ ใช้คำสั่ง dupload แบบนี้

dupload --to <reponame> <.change file>

ตัวอย่างเช่น

dupload --to example suriyan-wallpaper_1.0_i386.change

เท่านี้ก็ upload package ขึ้นไปยัง repo ได้แล้ว แต่ว่า dupload ทำหน้าที่ upload package ไปกองไว้ที่ incoming dir เท่านั้นครับ ไม่ได้ build และบรรจุลงใน repo ของเราจริงๆ ดังนั้นต้องเขียน script เพิ่มอีกหน่อยเพื่อให้ reprepro ทำงานต่อให้เรา อ่ะดาวน์โหลด script ไปละกันนะครับ เมื่อได้ script กันแล้ว บันทึกลงในที่น่าจะจำได้ แล้วก็ใส่ลงใน crontab ครับแบบนี้

*/5 * * * * /usr/local/import-new-packages.sh

สร้าง Ubuntu/Debian Repository ใช้เองภาค reprepro ตอนที่ 1

มีเรื่องให้ได้จัดการในอีกโครงการหนึ่งคือ Suriyan ซึ่งเป็นโครงการ Linux ที่อยู่ดีๆ ก็ฟื้นขึ้นมาแบบงงๆ จนกลายเป็นหน้าที่ที่ได้รับในส่วนการพัฒนาเพิ่มเติมของ Suriyan นั่นคือส่วนที่ไม่มีอยู่ในดิสทริบิวชันต้นน้ำ (Ubuntu) ซึ่งก็ติดปัญหาเดิมคือการบริหารจัดการ repository นั่นเอง แหม หาทาง build deb source ได้แต่การจัดการ repo แทบกระอักเลือด หากจำกันได้ผมเขียนเขียนวิธีการจัดการ repo ไว้ 2 แบบ คือ

  1. trivial archive
  2. official archive

ซึ่งวิธีการจัดการ repo 2 แบบนี้คล้ายกัน ต่างกันเพียงส่วนของ apt-pinning และเครื่องมือในการจัดการเท่านั้น หากนึกไม่ออกลองไปหาอ่านที่ blog เก่าๆ ได้ครับ ซึ่งปัญหาในการจัดการ repo และ package ที่ต้องการโดยแบ่ง version ออกเป็นส่วนๆ เพื่อการ maintain นั้นยุ่งยากมากกว่ากันหลายเท่า เพราะนอกจาก maintain เวอร์ชั่นปัจจุบันยังต้องเตรียมในรุ่นก่อนหน้าก็ถือว่ายุ่งพอสมควร แต่การสร้างและจัดการ repo มีหลายวิธีด้วยกัน วันนี้จะมาแนะนำการสร้าง repo แบบ official archive แต่ใช้เครื่องมือชื่อ reprepro กันครับ
ก่อน การทำ repo เรามาวางแผนสักสักนิด ผมตั้งใจจะให้ apt ใช้ url ประมาณนี้ครับ http://suriyan.in.th/repo นั่นหมายความว่าผมจะต้องสร้าง repo ภายใต้ document root (หรือไม่ก็ได้ หากสร้างใน directory อื่นสามารถใช้ aliase ชี้ได้) สมมุติว่าผมสร้างที่ /var/www/repo ก็แล้วกันะครับ
ก่อนอื่นติดตั้ง reprepro กันก่อน

aptitude install reprepro

จากนั้นสร้าง dir repo ขึ้นมา

mkdir -p /var/www/repo/conf

ให้สร้างไฟล์ ที่กำหนด distribution ขึ้นมาชื่อ distributions ใน /var/www/repo/conf ใส่ข้อมูลลงไปดังนี้

Origin: Your Name
Label: Your own label
Suite: ubuntu
Codename: karmic
Version: 9.10
Architectures: i386 source
Components: main restricted
Description: Your description
SignWith: yes

เท่านี้ก็เรียบร้อยครับ เอา deb source มาใส่ใน repo ของเราได้เลย โดยใช้คำสั่ง

reprepro -Vb . include <codename> <.change file>

หรือ

reprepro -Vb . includedeb <codename> <.deb file>

ตัวอย่าง เช่น

reprepro -Vb . include karmic suriyan-wallpaper_1.0_i386.change

reprepro ก็จะค้นหาไฟล์ dsc, source และ deb ที่ build เสร็จแล้วให้เรา พร้อมสร้าง dir ใน pool จากนั้นก็ใส่ dsc, source และ deb ลงใน pool ให้อัตโนมัติ แถม sign repo ให้เราด้วย สำหรับการเอา package ออกก็ไม่ได้ยากอะไร เพียงแค่ใช้คำสั่ง reprepro ดังนี้

reprepro -Vb . remove <codename> <package name>

เท่านี้คุณก็จัดการ repo ได้ง่ายๆ แล้ว