คมบจ#44:ทำ .deb ใน 5 นาที มือใหม่ก็ทำได้
Posted in:
อย่าเอาอะไรมากนะครับ พี่ๆ นักพัฒนา
ถ้าวันนี้ผมจะนำเสนอวิธีการทำ .deb ในแนวเถื่อนๆ ไปสักนิด
เปรียบการทำ .deb มันก็เหมือนกับทำสุรา (ผมไม่ดื่มนะครับ)
ถ้าทำสุราชั้นดี V.S.O.P - มันย่อมาจากอะไรช่างเหอะ แต่ก็ต้องพิถีพิถันอย่างดี
หรือในระดับรองๆ แบ่งเกรดกันไป การทำ .deb ก็คล้ายกัน
ตั้งแต่ระดับเนียบแป๊ะ จนถึง "จัสท์เวิร์ค" ยากง่ายจึงต่างกัน
ผมเปรียบการทำ .deb ของผมตอนนี้เหมือน "เหล้าเถื่อน"
ต้มสุราจากชานอ้อย-ข้าวหมัก ก็ง่ายหน่อย พอใช้ดื่มในครัวเรือนได้
.deb ในวันนี้ เราสามารถ DIY ได้-มาทำด้วยกันเลยครับ
.....
ทำ icons pack ไว้ใช้เอง
ที่มา:
ผมรู้สึกว่า icons ที่มากับ repository ของ ubuntu นั้น ทั้งมีน้อยและไม่ถูกใจเสียทีเดียว
เวลาจะติดตั้งแต่ละทีก็ยุ่งยากนิดหน่อย จะถอดถอนก็เหมือนกัน เพราะอยู่ในโฟลเดอร์ /usr/share/icons
ซึ่งต้องใช้สิทธิ์รูท หรือต้องเปิด Interface มานั่ง Browse กันเอง"ถ้าทำเป็น .deb ก็คงดี" นั่นแหล่ะที่มา
ที่เลือกทำ icons pack เป็น .deb น่าจะเป็นการทำ .deb ที่ง่ายที่สุดที่ทุกคนสามารถลองทำได้ (อย่างแน่นอน)
เพราะส่วนประกอบของ icons pack คงจะไม่มีอะไรมากไปกว่า icons และไม่ต้องยุ่งอะไรกับ scripts หรือ binary เลย
นาทีที่ 1. Download Icons ที่ชอบ
ถ้าใช้ Gnome ก็ลองเข้าที่ www.gnome-look.org ในหมวด Icons
ถ้าใช้ KDE ก็ลองเข้าที่ www.kde-look.org ในหมวด Icons
เลือกโหลด icons ที่มี license GPL น่าจะดีที่สุด
ไฟล์ที่ได้จะได้ในรูปแบบ icons.tar.gz หรือ icons.tar.bz2 คือ ไฟล์บีบอัด
เช่น ผมได้ไฟล์ชื่อ osx.tar.gz (ถ้าจะโหลดได้ใน 1 นาที แสดงว่า net ต้องแรงหน่อย)
นาทีที่ 2. สร้างโฟลเดอร์ที่ใช้ทำงาน และแตกไฟล์ที่ดาวน์โหลด ย้ายโฟลเดอร์ไปที่นั่น
2.1 สร้างโฟลเดอร์ที่ใช้ทำงาน ชื่อ debian และ โฟลเดอร์ที่เกี่ยวข้องเช่น ~/teddy/debian โดยที่ ~/teddy/ คือ $HOME folder ของผม ถ้าเป็นของคุณคงต้องต่างจากนี้ เป็น /home/<user>/
เปิด terminal (ขอใช้แต่ terminal นะครับ เพราะสะดวกกว่า และจะได้ฝึกมือใหม่ให้ลองใช้)
$ mkdir -p debian debian/DEBIAN debian/usr/share/icons
2.2 แตกไฟล์ที่ดาวน์โหลดมาสมมุติว่าอยู่ใน home folder ละกัน
$ tar xfvz icons.tar.gz (ถ้าเป็นไฟล์นามสกุล .tar.gz)
หรือ
$ tar xfvj icons.tar.bz2 (ถ้าเป็นไฟล์นามสกุล .tar.bz2)
*ถ้าติดมีข้อความว่า Permission Denied แสดงว่าติดเรื่อง Permissions ต้องใส่ sudo หน้าคำสั่ง
$ sudo tar xfvz icons.tar.gz (ถ้าเป็นไฟล์นามสกุล .tar.gz)
หรือ
$ sudo tar xfvj icons.tar.bz2 (ถ้าเป็นไฟล์นามสกุล .tar.bz2)
จะได้โฟลเดอร์ไอคอนมา เช่น $ tar xfvz osx.tar.gz ผมได้โฟลเดอร์ osx มา
2.3 ย้ายโฟลเดอร์ไปที่ใช้ทำงาน
$ mv -t <ที่ไหน> <โฟลเดอร์ที่ต้องการย้าย>
เช่น $ mv -t debian/usr/share/icons osx
*ที่ต้องย้ายไป debian/usr/share/icons เพราะเวลาติดตั้งจริงโฟลเดอร์ icons จะอยู่ใน /usr/share/icons
นาทีที่ 3. สร้างไฟล์ที่จะเป็นต่อระบบ .deb
จริงๆ แล้วในโครงสร้าง .deb จะมีหลายไฟล์ที่เกี่ยวข้องที่ทำให้ .deb มีมาตรฐานสมบูรณ์
เช่นต้องมี control, changelog, README.debian, copyright, md5sum, postinst, prerm, man pages เป็นต้น
ไม่ต้องกลัวไป วันนี้ผมสอนวิธีลัด แค่นำไปใช้ได้ ไฟล์ที่เกี่ยวข้องจึงมีแค่ control เท่านั้น
3.1 ไปโฟลเดอร์ที่สร้างไว้แล้วที่ชื่อ DEBIAN ตามข้อ 2.1
$ cd ./debian/DEBIAN
3.2 สร้างไฟล์ control
$ nano control
ให้สร้างไฟล์ที่มีเนื้อหาดังต่อไปนี้
Package: <ชื่อ icons pack>
Section: x11
Priority: optional
Maintainer: Yourname <yourmail@site.com>
Architecture: all
Depends:
Description: This is my icons pack.
Use this under GPL license na krub.
จะใส่ Description อย่างไรก็ตามแต่ จากนั้นกด ctl+o เพื่อ save และ ctl+x เพื่อออกจาก nano
**สำคัญ ในตรง Descriptiton บรรทัดแรกใส่ได้ 60 ตัวอักษร และท้ายประโยคต้องใส่ . ด้วยนะีครับ
บรรทัดต่อมาต้อง เคาะหนึ่งทีก่อนจะใส่ description อื่นๆ
นาที่ที่ 4 สำคัญนะจ๊ะ เปลี่ยน User/Group และ Permisions จากนั้นก็ทำ .deb
ในกฎการสร้าง .deb โปรแกรมจะบังคับให้ Folder มี Permisions = rwxr-xr-x หรือตีเป็นเลขได้ว่า 755
จำไว้นะครับ 755 r=4 w=2 x=1 -=0 เช่น rwx = 4+2+1 หรือ r-x = 4+0+1
ตอนนี้เราอยู่ใน Folder DEBIAN อยู่ ถอยหลังตั้งหลักเพื่อพร้อมสร้างโปรแกรม
$ cd ../../
$ sudo chmod 755 debian
$ find ./debian -type d | sudo xargs chmod 755
$ find ./debian -type d | sudo xargs chown root:root
$ find ./debian -type f | sudo xargs chmod 755
$ find ./debian -type f | sudo xargs chown root:root
จากนั้นก็สั่งแพกแพกเกจซะ
$ sudo dpkg-deb --build debian <ชื่อ+เวอร์ชั่น.deb>
เช่น $ sudo dpkg-deb --build debian osx_0.1.deb
เสร็จเรียบร้อย
นาทีที่ 5 ตรวจสอบและติดตั้ง
$ ls -l จะเห็นว่า package ที่ได้อยู่ในระดับเดียวกับโฟลเดอร์ที่เราอยู่
$ dpkg -f <ชื่อ .deb ที่ได้-พิมพ์ตัวอักษรสองสามตัวแล้วกด tab เพื่อให้ fill in เอง>
เช่น $ dpkg -f osx_0.1.deb จะแสดง control ที่เราสร้างขึ้นมา ใช้คำสั่งนี้กับทุก .deb ได้
ติดตั้งโดยใช้คำสั่ง $ sudo dpkg -i osx_0.1.deb ตรวจสอบการติดตั้ง
$ dpkg -l osx (ไม่ต้องใส่เวอร์ชั่น ใส่แค่ชื่อ ควรตั้งชื่อ .deb ให้สื่อความหมาย)
$ dpkg -L osx | less ตรวจสอบว่า Icons ที่ติดตั้งไปอยู่ path ที่ตั้งใจหรือเปล่า ซึ่งควรอยู่ใน /usr/share/icons
ถ้าไม่พอใจก็ remove ซะ
$ sudo dpkg -r osx
ก็เป็นดังนี้แล ใน 5 นาทีจริงๆ ผมจับเวลาแล้ว...
การประยุกต์ใช้
1. ผมทำ icons pack มี icons หลายชุด ติดตั้งทีเดียว (ประมาณ 8 ชุด แพกลง .deb เดียว)
2. อันนี้ดัดแปลงกับการติดตั้ง font ก็ได้ ลองดูโครงสร้าง .deb ของ font และการเรียกใช้ defomaแต่จะไม่อธิบายนะ
ครับ ทีนี้จะได้มี font ใช้กันว่าเล่นแล้วล่ะ
3. ลองทำกับ Wallpapers ดู วิธีการเหมือนกัน path /usr/share/backgrounds เป็นต้น
ปล. ถ้าเป็น 15 นาที 50 นาที หรือ 5 ชั่วโมง ก็ขึ้นอยู่กับชั่วโมงบินล่ะคร๊าบ
Trendy Teddy


Very Thank you!
ได้ความรู้ใหม่อีกแล้ว ชอบมากๆครับ WillWill จะมาเสนอแนะเพิ่มเติมก็ดีนะครับ เห็นว่าใช้ checkinstall ทำ deb ลักษณะนี้ได้เหมือนกัน ...
ขอบคุณนะตัวเอง ^^
เดียวไปลอ
เดียวไปลองทำเล่นๆบางดีกว่า หุหุ
--------------------------
You'll never walk alone!!!
http://snappy.bloggoo.com
บอกได้คำเ
บอกได้คำเดียวว่า เยี่ยม!! ครับ
จะรอคอยตอนต่อไปนะครับ :)
มีแก้ไข
มีส่วนที่ผมแก้ไขเนื้อหาด้วย ถ้าลองทำดู ก็ขอให้อ่านที่ ** ไว้
อีกข้อนะครับ ควรจะ build package ที่พาร์ทิชั่นแบบของ linux (ext2, ext3)
เพราะผมลองบน ntfs แล้วไม่ได้ ย้ายมาทำบน $HOME หรือ /tmp จะดีกว่า
ปล.ทำเยอะๆ แล้วชักคล่อง คราวนี้ 4 นาทีก็ได้แล้ว นี่ถ้าเขียน script เป็น
และใส่ agrument ไปทีเดียว 15 วินาทีก็ได้ ใครลองเขียน script หน่อยได้ไหมครับ
เล่น checkinstall
เล่น checkinstall สิครับ
http://www.ubuntuclub.com/node/693 :P
Post new comment