ทำดิสโทรใช้เองด้วย remastersys ตอนสุดท้าย

ตอนสุดท้ายกับการทำดิสโทรใช้เองด้วย remastersys

สำหรับตอนที่ 1 อ่านได้ที่ http://www.ubuntuclub.com/node/1549
สำหรับตอนที่ 2 อ่านได้ที่ http://www.ubuntuclub.com/node/1551

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

โดยตอนนี้จะกล่าวถึง

  • สิ่งที่ควรรู้ก่อนปรับแต่ง
  • การปรับแต่งอย่างง่ายด้วยการคัดลอกไฟล์ไว้ใน /etc/skel
  • ตัวอย่างการปรับแต่งระดับค่าคอนฟิค

1.สิ่งที่ควรรู้ก่อนปรับแต่ง

1.1 โฟลเดอร์ CDFS ที่ Remastersys สร้างไว้ยู่ที่ไหน
ดูจากส่วนที่กำหนดไว้ใน Remastersys > Modify > Working Directory
เข้าไปยังโฟลเดอร์ที่กำหนดไว้ให้เป็น Working Directory และหาโฟลเดอร์ที่ชื่อ ISOTMP

ไฟล์ระบบซึ่ง Remastersys ทำการสำรองจะอยู่ที่นั่น


1.2 รู้จักที่อยู่ของไฟล์ระบบที่สำคัญๆ ที่เกี่ยวกับการปรับแต่ง
แม้ว่าจะไม่จำเป็นต้องรู้ถึงระบบทั้งหมดถึงจะปรับแต่งได้ หากมีเวลาศึกษาก็สามารถลงรายละเอียดได้ว่าจะปรับแต่งอะไรบ้างก็จะเป็นประโยชน์ครับ

/etc
/etc/skel

/usr/share

ตัวอย่างกลุ่มโฟลเดอร์ที่เก็บข้อมูลเกี่ยวกับรูปลักษณ์
/usr/share/icons
/usr/share/themes
/usr/share/backgrounds
/usr/share/fonts

โฟลเดอร์ที่เกี่ยวกับค่ารีจิสทรีของโปรแกรมต่างๆ

/usr/share/gconf

**ข้อควรจำ หากต้องแก้ไขไฟล์หรือโฟลเดอร์ใดๆ ที่อยู่ในที่นอกเหนือจาก /home ของเราแล้วนั้น จะต้องใช้สิทธิผู้ดูแลระบบเสมอ**

1.3.วิธีตรวสอบว่าแต่ละแพกเกจมีโครงสร้างอยู่ตรงไหนในไฟล์ระบบ

dpkg -L ชื่อแพกเกจ

การใช้ dpkg -L มีประโยชน์ในการหาที่อยู่ของไฟล์ต่างๆ ซึ่งเป็นของแพกเกจนั้นๆ นำมาซึ่งการคอนฟิคได้อย่างถูกที่

2.การปรับแต่งอย่างง่ายด้วยการคัดลอกไฟล์ไว้ใน /etc/skel

เมื่อทำดิสโทรหรือแบคอัพด้วย remastersys จะพบปัญหาหนึ่ง คือ live CD/DVD ที่ทำไว้ไม่จำค่าคอนฟิคเดิม ปัญหานี้เกิดขึ้นเพราะ ค่าคอนฟิคต่างๆ ของ Ubuntu จะคืนสู่ค่าปริยายทั้งหมด

การปรับแต่งค่าโดยปรับแต่งจาก /etc หรือ /usr/share ทั้งหมดอาจเป็นเรื่องยาก แต่เราสามารถเขียนทับค่าปริยายคอนฟิคต่างๆ ที่เราทำกับเครื่องต้นฉบับไปสู่ live CD/DVD ที่เราสร้างขึ้นอย่างง่ายๆ ด้วยการคัดลอกค่าคอนฟิคที่เกิดขึ้นภายใน /home/ยูสเซอร์/.โฟลเดอร์ หรือ .ไฟล์คอนฟิค ไปไว้อยู่ใน /etc/skel

ให้ลองเปิด nautilus file manager ขึ้นมาดู แล้วเข้าสู่ Home folder ของเรา กด Ctrl+H จะพบว่ามีโฟล์เดอร์ และไฟล์ที่ขึ้นต้นด้วย "." อยู่ โฟลเดอร์และไฟล์เหล่านี้เป็นไฟล์ที่ถูกซ่อนไว้จากการมองเห็น ซึ่งมักจะเป็นที่เก็บค่าคอนฟิคของโปรแกรมต่างๆ เฃ่น

.conf
.local
.ชื่อโปรแกรม

การคัดลอก ทำโดยเปิด nautilus ด้วยสิทธิผู้ดูแลระบบ หรือจะใช้ terminal คัดลอกไฟล์หรือโฟลเดอร์เหล่านั้นไปยัง > ไฟล์ระบบที่ remastersys สร้าง/etc/skel

หลักการทำงานของ /etc/skel มีดังนี้คือ เมื่อมีการ add user ใหม่ ไม่ว่าจะเป็นระบบ live หรือระบบที่ติดตั้งใช้อยู่ โปรแกรม adduser จะคัดลอกข้อมูลจาก /etc/skel ไปสู่โฟลเดอร์ใหม่นั้นด้วย

เท่านี้ค่าคอนฟิคที่ต้องการจะอยู่ในโฟลเดอร์ของเรา ระบบจะอ่านจากค่าเหล่านี้เป็นลำดับแรก แต่การปรับแต่งระดับ /etc/skel อาจจะหายไปหากเผลอทำการลบข้อมูลที่อยู่ใน "." โดยไม่ตั้งใจ ถ้าเป็นไปได้การปรับแต่งจากที่อยู่จริงของค่าคอนฟิคจะแก้ปัญหานี้

**tricks: หากยังไม่เข้าใจระบบดีนัก ให้ใช้การปรับแต่งแบบคัดลอกค่าคอนฟิคลงใน /etc/skel เป็นวิธีที่ง่ายสุดครับ**

3.ตัวอย่างการปรับแต่งระดับค่าคอนฟิค

3.1. /usr/share/gconf/defaults/
ค่าคอนฟิคของ panel อยู่ที่ 05_panel-default-setup.entries
ค่าทั่วไปของ gnome desktop อยู่ที่ 10_libgnome2-common

ในนี้สามารถปรับแต่งรูปลักษณ์ได้ทุกอย่างให้เป็นค่าตั้งต้น

3.2. /usr/share/gnome-background-properties
ชุด wallpapers ที่เห็นนั้น ถูกควบคุมไฟล์ XML ที่อยู่ในนี้ เราสามารถสร้างเพิ่มและเลียนแบบเพื่อสร้างชุด wallpapers ในแบบของเราได้

3.3. chroot เข้ายัง CDFS เพื่อปรับแต่งบางด้านที่ใช้การคอนฟิคแบบธรรมดาไม่ได้

sudo mount --bind /dev/pts /path/to/CDFS /dev/pts
sudo chroot /path/to/CDFS

<chroot prompt>

#เซ็ตค่าปริยายเกี่ยวกับการสลับภาษาแต่กำเนิด

dpkg-reconfigure console-setup

#ทำให้ gedit อ่านภาษาไทยที่เข้ารหัส TIS-620 ได้เลย

gconftool-2 --direct \
    --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
    --type list --list-type string \
    --set /apps/gedit-2/preferences/encodings/auto_detected [UTF-8,TIS-620,CURRENT,ISO-8859-15,UTF-16]

#แสดงธงชาติเวลาสลับภาษา แต่ต้องไปแก้ค่า panel ให้แสดง KeyboardApplet ด้วย

gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
    --type bool --set /desktop/gnome/peripherals/keyboard/indicator/showFlags true

#หากอยากจะติดตั้ง/ถอดถอนโปรแกรมใน chroot

aptitude

<การออกจาก chroot>
umount -l /proc
umount -l /dev/pts
exit

.....

ส่งท้าย: PE/XE/PB ไม่ได้มีความลับอะไรเลย นอกจากการปรับแต่งจาก Ubuntu ดังนั้นถ้ารู้จักปรับแต่ง ก็จะได้ดิสโทรตามวัตถุประสงค์ในรูปลักษณ์ที่ต้องการ เพื่อคุณจะได้ดิสโทร "ใช้ที่ชอบ" เริ่มจากการปรับแต่งในแบบของคุณเอง ไม่ต้องรอใคร

Teddy

Comments

uchaitu's picture

<p>ขอบคุณครับ</p>
poohja's picture

<p>ขอบคุณครับท่าน เดี๋ยวลองดูแล้วกันครับ ขอบคุณมากๆเลยครับ</p>
minstrel's picture

<p>ขอบคุณครับแต่ผมคงไม่ลองหรอก อิอิ ไม่ค่อยมีฝีมือ</p><p>รอใช้ของคุณ TrendyTeddy สบายกว่า เอา 9.10 ไปลงของตัวเองและของลูกชาย (7 ขวบ) ตอนนี้ติดเกมส์งอมแงม</p>
dahoba's picture

<p>&nbsp;&nbsp;&nbsp; ผมพยายามทำ distro สำหรับ office ผมอยู่พอดีเลยครับ</p><p>ลองเล่น remastersys เอาออกมาเป็น iso บู๊ตแล้วค้างเลย T_T มาเจอบทความคุณ Teddy ก็ตอนนี้ปาเข้าไปตอนที่สามแล้ว&nbsp; ตามอ่านแล้วเข้าใจ remastersys ขึ้นอีกเยอะเลย รวมถึงการ build from scratch ด้วย</p><p>แท้งกิ้วหลายๆคับคุณ Teddy</p><p>&nbsp;</p>